diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 42dc386a5c..28572318e3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,18 +24,18 @@ repos: hooks: - id: isort - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: "v0.4.4" + rev: "v0.4.10" hooks: - id: ruff - repo: https://github.com/PyCQA/bandit - rev: "1.7.8" + rev: "1.7.9" hooks: - id: bandit additional_dependencies: - "bandit[toml]" args: ["-c", "pyproject.toml"] - repo: https://github.com/pre-commit/mirrors-mypy - rev: "v1.10.0" + rev: "v1.10.1" hooks: - id: mypy additional_dependencies: diff --git a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json index d55d3b8ace..6c90b80e40 100644 --- a/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/123ba181485ae293d5bd09722af0c19d5a0d14c62111ff864923fc7b7960dda6.meta.json @@ -1 +1 @@ -{"etag": "\"b658285000afc83f21ab25b390d22e7f\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9afc60ca795ea9f3bd3399d820201ffb\"", "url": "https://schema.cloudformation.eu-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json index 3f58a487c8..daaad6cb7d 100644 --- a/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/18624fcc4a1c571691d10b2508e6be565e4752bbc10d9552de8df8f81348c42b.meta.json @@ -1 +1 @@ -{"etag": "\"58cb8abae39cb16173d1dcfb5774b930\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"b026f401ac1698c34da9505b2687c666\"", "url": "https://schema.cloudformation.us-gov-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json index 6162f22ef2..1666735d6e 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"0834cac6bee64373374bfedf13a291bc\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cab7c18393919e17ef44d9fca8c62008\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json index 422224d6d5..1d985d8b3f 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"834f790a8008964e76e447e2a8432aea\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9cae6b551468d4777291165964ac439d\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json index 519401e869..0eac7df533 100644 --- a/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/276cecfeb1ec5e608e2aaa06925a2da57e9907e4a512c10ddae70b98b4dada43.meta.json @@ -1 +1 @@ -{"etag": "\"9d74a5b82b6011e69a3f13ef657ffb01\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"ff2d86966614e2da2818a06627b839b4\"", "url": "https://schema.cloudformation.eu-west-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json b/src/cfnlint/data/DownloadsMetadata/42155835f382d82337be3d2bf832bada376aa3fe15197e3bb0e9290ff8719b4e.meta.json index 401cdadb31..f51cb22405 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": "\"a210789fcdc1212f1d633d75df1a5b69\"", "url": "https://schema.cloudformation.af-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json index e91bcb45b1..988e6a4e92 100644 --- a/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/56584c7d00e444de640bef01fc2c630804470222e5e4c690bacef5312891581d.meta.json @@ -1 +1 @@ -{"etag": "\"87dbe8d72b114f79fbc608c98806364a\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"66934d611a2eb3f5c8878ea30df0351d\"", "url": "https://schema.cloudformation.ap-south-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json index 619587966b..8d90b961e7 100644 --- a/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/583721567eccd1d5855daa623819df1a646b563d773e34b020d0ddeab2fe195b.meta.json @@ -1 +1 @@ -{"etag": "\"fc2de0a27081580b398d58c00348446e\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"5292e9a834f0c72f512ff815414232f0\"", "url": "https://schema.cloudformation.ap-southeast-4.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json index cd7e6855e1..78b1b8c877 100644 --- a/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/d24ce9a45a014b1ff04d479422ea956e92030ae5c03d7451980a15735e557edb.meta.json @@ -1 +1 @@ -{"etag": "\"20bd1097ea12df81de72376235c6670e\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"cf0cf4bff0da3e45998eaea296e3ca27\"", "url": "https://schema.cloudformation.ap-southeast-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json index 62c69b08a0..8fdf519e9b 100644 --- a/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/dd98171253ebc36f5b78e247f3132b5f25c8d66a1f84939600616bab42579541.meta.json @@ -1 +1 @@ -{"etag": "\"8ad868ec672f842b68b05600b5a5d103\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"d34ccc2ac672aba8821b3afc1cc7a6bc\"", "url": "https://schema.cloudformation.eu-north-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json index 8ffb362859..e1c3b687d7 100644 --- a/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/df4945435575c690a2651bb31e7a9b48972142778e1ff452383ede2ad4bac3d7.meta.json @@ -1 +1 @@ -{"etag": "\"fa0b097f427f0f923400285b256dfafb\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"eb993b3a9009cdf11b131cb1ad6c9d7d\"", "url": "https://schema.cloudformation.eu-south-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json index 0ece6471d4..2b80b5aad8 100644 --- a/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/ea0f7b8f144feb225afe73a24dfdf993318c41c71c21b0a17d4f68d82c5aee21.meta.json @@ -1 +1 @@ -{"etag": "\"55e291fbd1d194744195d829488aaf0b\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"330741cbbbacf1fc399fd4b5c32210b5\"", "url": "https://schema.cloudformation.ap-northeast-3.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json index bc1e798bc4..37ce1713c6 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"241e75fbdd254447d51e3e9e7991d11f\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"458423c371125738648c161b14c0c8e9\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json index 22ab0eb61d..02e905933d 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"a48bf3fc3f1917a864d583600f4bf38d\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"8bedc60ccb57f9f836f1f576c107b12d\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json index eb6465234a..38b3a812e1 100644 --- a/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/fa657351d8e89c40ba6b82c4b1f5e1b5e50a1638ffe0a5dba0d8805c190a05f8.meta.json @@ -1 +1 @@ -{"etag": "\"9d35728649cd2bfeac7fbcdd355cab1b\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"955fdade794e290a83d37778bf3c44e6\"", "url": "https://schema.cloudformation.eu-west-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/schemas/patches/providers/all/alexa_ask_skill/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/alexa_ask_skill/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/alexa_ask_skill/overrides_manifest.json b/src/cfnlint/data/schemas/patches/providers/all/alexa_ask_skill/overrides_manifest.json new file mode 100644 index 0000000000..68e35e8255 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/alexa_ask_skill/overrides_manifest.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Overrides/properties/Manifest", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Overrides/properties/Manifest", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_model/schema.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_model/schema.json index 0bbbe3b4a0..ccc768cc6e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_model/schema.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_model/schema.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/Schema", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Schema", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/Schema", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Schema", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_restapi/body.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_restapi/body.json index 49d995db12..6c3439340d 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_restapi/body.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_restapi/body.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/Body", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Body", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/Body", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Body", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_restapi/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_restapi/policy.json index f2cd485f7a..3a5c0890fb 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_restapi/policy.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigateway_restapi/policy.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/Policy", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Policy", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_api/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_api/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_api/body.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_api/body.json new file mode 100644 index 0000000000..6c3439340d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_api/body.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Body", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Body", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_api/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_api/tags.json new file mode 100644 index 0000000000..0703765854 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_api/tags.json @@ -0,0 +1,22 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_apigatewaymanagedoverrides/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_apigatewaymanagedoverrides/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_apigatewaymanagedoverrides/stageoverrides_routesettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_apigatewaymanagedoverrides/stageoverrides_routesettings.json new file mode 100644 index 0000000000..6be1ccaa71 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_apigatewaymanagedoverrides/stageoverrides_routesettings.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/StageOverrides/properties/RouteSettings", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/StageOverrides/properties/RouteSettings", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_apigatewaymanagedoverrides/stageoverrides_stagevariables.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_apigatewaymanagedoverrides/stageoverrides_stagevariables.json new file mode 100644 index 0000000000..40d84521f8 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_apigatewaymanagedoverrides/stageoverrides_stagevariables.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/StageOverrides/properties/StageVariables", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/StageOverrides/properties/StageVariables", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_domainname/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_domainname/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_domainname/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_domainname/tags.json new file mode 100644 index 0000000000..0703765854 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_domainname/tags.json @@ -0,0 +1,22 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/requestparameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/requestparameters.json new file mode 100644 index 0000000000..decea77672 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/requestparameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/RequestParameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/RequestParameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/requesttemplates.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/requesttemplates.json new file mode 100644 index 0000000000..3eca768b9c --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/requesttemplates.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/RequestTemplates", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/RequestTemplates", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/responseparameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/responseparameters.json new file mode 100644 index 0000000000..8afea75161 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integration/responseparameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ResponseParameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ResponseParameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integrationresponse/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integrationresponse/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integrationresponse/responseparameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integrationresponse/responseparameters.json new file mode 100644 index 0000000000..8afea75161 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integrationresponse/responseparameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ResponseParameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ResponseParameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integrationresponse/responsetemplates.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integrationresponse/responsetemplates.json new file mode 100644 index 0000000000..a83b08a8c0 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_integrationresponse/responsetemplates.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ResponseTemplates", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ResponseTemplates", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_model/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_model/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_model/schema.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_model/schema.json new file mode 100644 index 0000000000..ccc768cc6e --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_model/schema.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Schema", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Schema", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_route/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_route/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_route/requestmodels.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_route/requestmodels.json new file mode 100644 index 0000000000..e80bbcbf3d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_route/requestmodels.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/RequestModels", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/RequestModels", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_route/requestparameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_route/requestparameters.json new file mode 100644 index 0000000000..decea77672 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_route/requestparameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/RequestParameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/RequestParameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_routeresponse/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_routeresponse/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_routeresponse/responsemodels.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_routeresponse/responsemodels.json new file mode 100644 index 0000000000..70da992bc0 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_routeresponse/responsemodels.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ResponseModels", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ResponseModels", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_routeresponse/responseparameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_routeresponse/responseparameters.json new file mode 100644 index 0000000000..8afea75161 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_routeresponse/responseparameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ResponseParameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ResponseParameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/routesettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/routesettings.json new file mode 100644 index 0000000000..13e14c1c45 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/routesettings.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/RouteSettings", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/RouteSettings", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/stagevariables.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/stagevariables.json new file mode 100644 index 0000000000..326572eb18 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/stagevariables.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/StageVariables", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/StageVariables", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_stage/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_vpclink/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_vpclink/tags.json index 79cd834d08..0703765854 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_vpclink/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_apigatewayv2_vpclink/tags.json @@ -10,10 +10,13 @@ "op": "replace", "path": "/properties/Tags", "value": { - "type": [ - "object", - "string" - ] + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" } } ] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_appsync_graphqlapi/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_appsync_graphqlapi/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_appsync_graphqlapi/environmentvariables.json b/src/cfnlint/data/schemas/patches/providers/all/aws_appsync_graphqlapi/environmentvariables.json new file mode 100644 index 0000000000..4a6225e374 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_appsync_graphqlapi/environmentvariables.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/EnvironmentVariables", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/EnvironmentVariables", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_backup_backupplan/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_backup_backupplan/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_backup_backupplan/advancedbackupsettingresourcetype_backupoptions.json b/src/cfnlint/data/schemas/patches/providers/all/aws_backup_backupplan/advancedbackupsettingresourcetype_backupoptions.json new file mode 100644 index 0000000000..f3895f32ef --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_backup_backupplan/advancedbackupsettingresourcetype_backupoptions.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/AdvancedBackupSettingResourceType/properties/BackupOptions", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/AdvancedBackupSettingResourceType/properties/BackupOptions", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/ekscontainerresourcerequirements_limits.json b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/ekscontainerresourcerequirements_limits.json new file mode 100644 index 0000000000..4576848bd2 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/ekscontainerresourcerequirements_limits.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/EksContainerResourceRequirements/properties/Limits", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/EksContainerResourceRequirements/properties/Limits", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/ekscontainerresourcerequirements_requests.json b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/ekscontainerresourcerequirements_requests.json new file mode 100644 index 0000000000..5c73a0dafd --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/ekscontainerresourcerequirements_requests.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/EksContainerResourceRequirements/properties/Requests", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/EksContainerResourceRequirements/properties/Requests", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/logconfiguration_options.json b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/logconfiguration_options.json new file mode 100644 index 0000000000..949cb1eca5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/logconfiguration_options.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/LogConfiguration/properties/Options", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/LogConfiguration/properties/Options", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/metadata_labels.json b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/metadata_labels.json new file mode 100644 index 0000000000..8a0c16c376 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/metadata_labels.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Metadata/properties/Labels", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Metadata/properties/Labels", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/parameters.json new file mode 100644 index 0000000000..e8d370a2b3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_batch_jobdefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_budgets_budget/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_budgets_budget/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_budgets_budget/budgetdata_costfilters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_budgets_budget/budgetdata_costfilters.json new file mode 100644 index 0000000000..d4f5238c54 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_budgets_budget/budgetdata_costfilters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/BudgetData/properties/CostFilters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/BudgetData/properties/CostFilters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_budgets_budget/budgetdata_plannedbudgetlimits.json b/src/cfnlint/data/schemas/patches/providers/all/aws_budgets_budget/budgetdata_plannedbudgetlimits.json new file mode 100644 index 0000000000..f4021fcdd8 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_budgets_budget/budgetdata_plannedbudgetlimits.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/BudgetData/properties/PlannedBudgetLimits", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/BudgetData/properties/PlannedBudgetLimits", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cloudformation_waitcondition/data.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cloudformation_waitcondition/data.json index ad3de7cd12..9a9a96652f 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_cloudformation_waitcondition/data.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cloudformation_waitcondition/data.json @@ -1,17 +1,18 @@ [ - { - "op": "test", - "path": "/properties/Data", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Data", - "value": { - "type": - ["object"] - } - } + { + "op": "test", + "path": "/properties/Data", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Data", + "value": { + "type": [ + "object" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_codepipeline_pipeline/actiondeclaration_configuration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_codepipeline_pipeline/actiondeclaration_configuration.json index 0d08353b70..4d25a016b7 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_codepipeline_pipeline/actiondeclaration_configuration.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_codepipeline_pipeline/actiondeclaration_configuration.json @@ -10,6 +10,7 @@ "op": "replace", "path": "/definitions/ActionDeclaration/properties/Configuration", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypool/cognitoevents.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypool/cognitoevents.json index a5461445cc..a00cf8f5da 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypool/cognitoevents.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypool/cognitoevents.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/CognitoEvents", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/CognitoEvents", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/CognitoEvents", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/CognitoEvents", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypool/supportedloginproviders.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypool/supportedloginproviders.json index 238bfacf6f..e525f5e785 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypool/supportedloginproviders.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypool/supportedloginproviders.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/SupportedLoginProviders", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/SupportedLoginProviders", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/SupportedLoginProviders", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/SupportedLoginProviders", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolprincipaltag/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolprincipaltag/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolprincipaltag/principaltags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolprincipaltag/principaltags.json new file mode 100644 index 0000000000..6ada3c79d3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolprincipaltag/principaltags.json @@ -0,0 +1,18 @@ +[ + { + "op": "test", + "path": "/properties/PrincipalTags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PrincipalTags", + "value": { + "type": [ + "object" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolroleattachment/rolemappings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolroleattachment/rolemappings.json index 4a156d3f7e..511da03795 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolroleattachment/rolemappings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolroleattachment/rolemappings.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/RoleMappings", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/RoleMappings", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/RoleMappings", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/RoleMappings", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolroleattachment/roles.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolroleattachment/roles.json index 46eb95f2e6..8633f59ccd 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolroleattachment/roles.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_identitypoolroleattachment/roles.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/Roles", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Roles", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/Roles", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Roles", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpool/userpooltags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpool/userpooltags.json index 5f655cb107..89a4d9453b 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpool/userpooltags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpool/userpooltags.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/UserPoolTags", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/UserPoolTags", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/UserPoolTags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/UserPoolTags", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpoolidentityprovider/attributemapping.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpoolidentityprovider/attributemapping.json new file mode 100644 index 0000000000..b340165c4f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpoolidentityprovider/attributemapping.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/AttributeMapping", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/AttributeMapping", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpoolidentityprovider/providerdetails.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpoolidentityprovider/providerdetails.json new file mode 100644 index 0000000000..0f36459411 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpoolidentityprovider/providerdetails.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ProviderDetails", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ProviderDetails", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpooluser/clientmetadata.json b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpooluser/clientmetadata.json index 5a8b08ddad..7ebbe530b1 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpooluser/clientmetadata.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_cognito_userpooluser/clientmetadata.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/ClientMetadata", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/ClientMetadata", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/ClientMetadata", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ClientMetadata", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_config_configrule/inputparameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_config_configrule/inputparameters.json new file mode 100644 index 0000000000..0835d1de1c --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_config_configrule/inputparameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/InputParameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/InputParameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_config_remediationconfiguration/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_config_remediationconfiguration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_config_remediationconfiguration/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_config_remediationconfiguration/parameters.json new file mode 100644 index 0000000000..e8d370a2b3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_config_remediationconfiguration/parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/assigncontactcategoryaction.json b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/assigncontactcategoryaction.json new file mode 100644 index 0000000000..0f5d429a6a --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/assigncontactcategoryaction.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/AssignContactCategoryAction", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/AssignContactCategoryAction", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/endassociatedtasksaction.json b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/endassociatedtasksaction.json new file mode 100644 index 0000000000..9584032660 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/endassociatedtasksaction.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/EndAssociatedTasksAction", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/EndAssociatedTasksAction", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/fieldvalue_emptyvalue.json b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/fieldvalue_emptyvalue.json new file mode 100644 index 0000000000..122994c6d4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_rule/fieldvalue_emptyvalue.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldValue/properties/EmptyValue", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldValue/properties/EmptyValue", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_connect_view/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_view/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_connect_view/template.json b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_view/template.json new file mode 100644 index 0000000000..40fb7057b3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_connect_view/template.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Template", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Template", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_enabledbaseline/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_enabledbaseline/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_enabledbaseline/anytype.json b/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_enabledbaseline/anytype.json new file mode 100644 index 0000000000..b208098049 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_enabledbaseline/anytype.json @@ -0,0 +1,24 @@ +[ + { + "op": "replace", + "path": "/definitions/AnyType", + "value": { + "insertionOrder": false, + "items": { + "type": [ + "string", + "number", + "object", + "boolean" + ] + }, + "type": [ + "array", + "string", + "number", + "object", + "boolean" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_landingzone/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_landingzone/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_landingzone/manifest.json b/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_landingzone/manifest.json new file mode 100644 index 0000000000..068884735c --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_controltower_landingzone/manifest.json @@ -0,0 +1,18 @@ +[ + { + "op": "test", + "path": "/properties/Manifest", + "value": {} + }, + { + "op": "replace", + "path": "/properties/Manifest", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dax_cluster/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_dax_cluster/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dax_cluster/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dax_cluster/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dax_cluster/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dax_parametergroup/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_dax_parametergroup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dax_parametergroup/parametersnamevalues.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dax_parametergroup/parametersnamevalues.json new file mode 100644 index 0000000000..95c500ce2f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dax_parametergroup/parametersnamevalues.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ParameterNameValues", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ParameterNameValues", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/crossregioncopytargets.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/crossregioncopytargets.json index f65d6b73a0..8e201fd913 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/crossregioncopytargets.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/crossregioncopytargets.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/CrossRegionCopyTargets", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/excludetags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/excludetags.json index 9ed778b141..cf2e3b9a49 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/excludetags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/excludetags.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/ExcludeTags", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/excludevolumetypeslist.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/excludevolumetypeslist.json index 6e686fd120..f82a8cb458 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/excludevolumetypeslist.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dlm_lifecyclepolicy/excludevolumetypeslist.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/ExcludeVolumeTypesList", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/replicationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/replicationsettings.json new file mode 100644 index 0000000000..a087dfc1c3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/replicationsettings.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ReplicationSettings", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ReplicationSettings", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/supplementalsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/supplementalsettings.json new file mode 100644 index 0000000000..ba497f5814 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/supplementalsettings.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/SupplementalSettings", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/SupplementalSettings", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/tablmappings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/tablmappings.json new file mode 100644 index 0000000000..c6b2c9ad1a --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dms_replicationconfig/tablmappings.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/TableMappings", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/TableMappings", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_docdb_dbclusterparametergroup/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_docdb_dbclusterparametergroup/parameters.json index f97b35b36c..e8d370a2b3 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_docdb_dbclusterparametergroup/parameters.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_docdb_dbclusterparametergroup/parameters.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/Parameters", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Parameters", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_globaltable/resourcepolicy_policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_globaltable/resourcepolicy_policydocument.json new file mode 100644 index 0000000000..45747ecd61 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_globaltable/resourcepolicy_policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/ResourcePolicy/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/ResourcePolicy/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_table/keyschema_2.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_table/keyschema_2.json new file mode 100644 index 0000000000..ebd61b22a5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_table/keyschema_2.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/KeySchema/oneOf/1", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/KeySchema/oneOf/1", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_table/resourcepolicy_policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_table/resourcepolicy_policydocument.json new file mode 100644 index 0000000000..45747ecd61 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_dynamodb_table/resourcepolicy_policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/ResourcePolicy/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/ResourcePolicy/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ec2_vpcendpoint/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_ec2_vpcendpoint/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ec2_vpcendpoint/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_ec2_vpcendpoint/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_ec2_vpcendpoint/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ecr_registrypolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_ecr_registrypolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ecr_registrypolicy/policytext.json b/src/cfnlint/data/schemas/patches/providers/all/aws_ecr_registrypolicy/policytext.json new file mode 100644 index 0000000000..4037a5716d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_ecr_registrypolicy/policytext.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyText", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyText", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_efs_filesystem/filesystempolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_efs_filesystem/filesystempolicy.json new file mode 100644 index 0000000000..c3f5eaa548 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_efs_filesystem/filesystempolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/FileSystemPolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/FileSystemPolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_elasticloadbalancing_loadbalancer/policies_attributes.json b/src/cfnlint/data/schemas/patches/providers/all/aws_elasticloadbalancing_loadbalancer/policies_attributes.json new file mode 100644 index 0000000000..04596a7c2e --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_elasticloadbalancing_loadbalancer/policies_attributes.json @@ -0,0 +1,18 @@ +[ + { + "op": "test", + "path": "/definitions/Policies/properties/Attributes/items", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Policies/properties/Attributes/items", + "value": { + "type": [ + "object" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_elasticsearch_domain/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_elasticsearch_domain/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_elasticsearch_domain/accesspolicies.json b/src/cfnlint/data/schemas/patches/providers/all/aws_elasticsearch_domain/accesspolicies.json new file mode 100644 index 0000000000..555546309e --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_elasticsearch_domain/accesspolicies.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/AccessPolicies", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/AccessPolicies", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_emr_cluster/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_emr_cluster/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_emr_cluster/additionalinfo.json b/src/cfnlint/data/schemas/patches/providers/all/aws_emr_cluster/additionalinfo.json new file mode 100644 index 0000000000..d329692cfd --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_emr_cluster/additionalinfo.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/AdditionalInfo", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/AdditionalInfo", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_emr_securityconfiguration/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_emr_securityconfiguration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_emr_securityconfiguration/securityconfiguration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_emr_securityconfiguration/securityconfiguration.json new file mode 100644 index 0000000000..0126ce1fe5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_emr_securityconfiguration/securityconfiguration.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/SecurityConfiguration", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/SecurityConfiguration", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_events_archive/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_events_archive/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_events_archive/eventpattern.json b/src/cfnlint/data/schemas/patches/providers/all/aws_events_archive/eventpattern.json new file mode 100644 index 0000000000..4dbbdfc146 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_events_archive/eventpattern.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/EventPattern", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/EventPattern", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_events_eventbuspolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_events_eventbuspolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_events_eventbuspolicy/statement.json b/src/cfnlint/data/schemas/patches/providers/all/aws_events_eventbuspolicy/statement.json new file mode 100644 index 0000000000..bcd642f3d8 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_events_eventbuspolicy/statement.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Statement", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Statement", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_events_rule/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_events_rule/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_events_rule/eventpattern.json b/src/cfnlint/data/schemas/patches/providers/all/aws_events_rule/eventpattern.json new file mode 100644 index 0000000000..4dbbdfc146 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_events_rule/eventpattern.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/EventPattern", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/EventPattern", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_eventschemas_registrypolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_eventschemas_registrypolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_eventschemas_registrypolicy/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_eventschemas_registrypolicy/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_eventschemas_registrypolicy/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/ekscontainerresourcerequirements_limits.json b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/ekscontainerresourcerequirements_limits.json new file mode 100644 index 0000000000..4576848bd2 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/ekscontainerresourcerequirements_limits.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/EksContainerResourceRequirements/properties/Limits", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/EksContainerResourceRequirements/properties/Limits", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/ekscontainerresourcerequirements_requests.json b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/ekscontainerresourcerequirements_requests.json new file mode 100644 index 0000000000..5c73a0dafd --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/ekscontainerresourcerequirements_requests.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/EksContainerResourceRequirements/properties/Requests", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/EksContainerResourceRequirements/properties/Requests", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/logconfiguration_options.json b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/logconfiguration_options.json new file mode 100644 index 0000000000..949cb1eca5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/logconfiguration_options.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/LogConfiguration/properties/Options", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/LogConfiguration/properties/Options", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/metadata_labels.json b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/metadata_labels.json new file mode 100644 index 0000000000..8a0c16c376 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/metadata_labels.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Metadata/properties/Labels", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Metadata/properties/Labels", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/parameteres.json b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/parameteres.json new file mode 100644 index 0000000000..e8d370a2b3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/parameteres.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_gammadilithium_jobdefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_connection/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_connection/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_connection/connectioninput_connectionproperties.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_connection/connectioninput_connectionproperties.json new file mode 100644 index 0000000000..e9660a5d25 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_connection/connectioninput_connectionproperties.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/ConnectionInput/properties/ConnectionProperties", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/ConnectionInput/properties/ConnectionProperties", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_crawler/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_crawler/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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 new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_crawler/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_customentitytype/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_customentitytype/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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 new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_customentitytype/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_database/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_database/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_database/databaseinput_parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_database/databaseinput_parameters.json new file mode 100644 index 0000000000..85bcf39a29 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_database/databaseinput_parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/DatabaseInput/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/DatabaseInput/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_dataqualityruleset/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_dataqualityruleset/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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 new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_dataqualityruleset/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/arguments.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/arguments.json new file mode 100644 index 0000000000..1fcbcbcec5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/arguments.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Arguments", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Arguments", + "value": { + "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 new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_devendpoint/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/defaultarguments.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/defaultarguments.json new file mode 100644 index 0000000000..5bd9c2ab34 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/defaultarguments.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/DefaultArguments", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/DefaultArguments", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/nonoverridablearguments.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/nonoverridablearguments.json new file mode 100644 index 0000000000..61f3122415 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/nonoverridablearguments.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/NonOverridableArguments", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/NonOverridableArguments", + "value": { + "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 new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_job/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_mltransform/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_mltransform/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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 new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_mltransform/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/partitioninput_parameter.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/partitioninput_parameter.json new file mode 100644 index 0000000000..c85f7fae75 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/partitioninput_parameter.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/PartitionInput/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/PartitionInput/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/serdeinfo_parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/serdeinfo_parameters.json new file mode 100644 index 0000000000..6b24bacad3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/serdeinfo_parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/SerdeInfo/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/SerdeInfo/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/skewedinfo_skewedcolumnvaluelocationmaps.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/skewedinfo_skewedcolumnvaluelocationmaps.json new file mode 100644 index 0000000000..835c872407 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/skewedinfo_skewedcolumnvaluelocationmaps.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/SkewedInfo/properties/SkewedColumnValueLocationMaps", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/SkewedInfo/properties/SkewedColumnValueLocationMaps", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/storagedescriptor_parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/storagedescriptor_parameters.json new file mode 100644 index 0000000000..ed6c29fda6 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_partition/storagedescriptor_parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/StorageDescriptor/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/StorageDescriptor/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/serdeinfo_parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/serdeinfo_parameters.json new file mode 100644 index 0000000000..6b24bacad3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/serdeinfo_parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/SerdeInfo/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/SerdeInfo/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/skewedinfo_skewedcolumnvaluelocationmaps.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/skewedinfo_skewedcolumnvaluelocationmaps.json new file mode 100644 index 0000000000..835c872407 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/skewedinfo_skewedcolumnvaluelocationmaps.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/SkewedInfo/properties/SkewedColumnValueLocationMaps", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/SkewedInfo/properties/SkewedColumnValueLocationMaps", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/storagedescriptor_parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/storagedescriptor_parameters.json new file mode 100644 index 0000000000..ed6c29fda6 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/storagedescriptor_parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/StorageDescriptor/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/StorageDescriptor/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/tableinput_parameter.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/tableinput_parameter.json new file mode 100644 index 0000000000..a384786f6d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_table/tableinput_parameter.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/TableInput/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/TableInput/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/action_arguments.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/action_arguments.json new file mode 100644 index 0000000000..32c1c5def9 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/action_arguments.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Action/properties/Arguments", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Action/properties/Arguments", + "value": { + "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 new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_trigger/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/defaultrunproperties.json b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/defaultrunproperties.json new file mode 100644 index 0000000000..8c35d56845 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/defaultrunproperties.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/DefaultRunProperties", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/DefaultRunProperties", + "value": { + "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 new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_glue_workflow/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinition/connector_parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinition/connector_parameters.json new file mode 100644 index 0000000000..9463f336ff --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinition/connector_parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Connector/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Connector/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinitionversion/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinitionversion/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinitionversion/connector_parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinitionversion/connector_parameters.json new file mode 100644 index 0000000000..9463f336ff --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_connectordefinitionversion/connector_parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Connector/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Connector/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_coredefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_coredefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_coredefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_coredefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_coredefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_devicedefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_devicedefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_devicedefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_devicedefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_devicedefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinition/environment_variables.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinition/environment_variables.json new file mode 100644 index 0000000000..c1c7c4ac9d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinition/environment_variables.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Environment/properties/Variables", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Environment/properties/Variables", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinitionversion/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinitionversion/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinitionversion/environment_variables.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinitionversion/environment_variables.json new file mode 100644 index 0000000000..c1c7c4ac9d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_functiondefinitionversion/environment_variables.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Environment/properties/Variables", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Environment/properties/Variables", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_group/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_group/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_group/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_group/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_group/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_loggerdefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_loggerdefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_loggerdefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_loggerdefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_loggerdefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_resourcedefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_resourcedefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_resourcedefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_resourcedefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_resourcedefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_subscriptiondefinition/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_subscriptiondefinition/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_subscriptiondefinition/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_subscriptiondefinition/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_greengrass_subscriptiondefinition/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_group/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_group/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_group/policy_policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_group/policy_policydocument.json new file mode 100644 index 0000000000..0d822c83b9 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_group/policy_policydocument.json @@ -0,0 +1,18 @@ +[ + { + "op": "test", + "path": "/definitions/Policy/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Policy/properties/PolicyDocument", + "value": { + "type": [ + "object" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_grouppolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_grouppolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_grouppolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_grouppolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_grouppolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_policy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_policy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_policy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_policy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_policy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_role/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_role/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_role/policy_policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_role/policy_policydocument.json new file mode 100644 index 0000000000..0d822c83b9 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_role/policy_policydocument.json @@ -0,0 +1,18 @@ +[ + { + "op": "test", + "path": "/definitions/Policy/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Policy/properties/PolicyDocument", + "value": { + "type": [ + "object" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_rolepolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_rolepolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_rolepolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_rolepolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_rolepolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_user/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_user/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_user/policy_policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_user/policy_policydocument.json new file mode 100644 index 0000000000..0d822c83b9 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_user/policy_policydocument.json @@ -0,0 +1,18 @@ +[ + { + "op": "test", + "path": "/definitions/Policy/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Policy/properties/PolicyDocument", + "value": { + "type": [ + "object" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_userpolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_userpolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iam_userpolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_userpolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iam_userpolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_inspectorv2_cisscanconfiguration/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_inspectorv2_cisscanconfiguration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_inspectorv2_cisscanconfiguration/onetimeschedule.json b/src/cfnlint/data/schemas/patches/providers/all/aws_inspectorv2_cisscanconfiguration/onetimeschedule.json new file mode 100644 index 0000000000..5849e786aa --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_inspectorv2_cisscanconfiguration/onetimeschedule.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/OneTimeSchedule", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/OneTimeSchedule", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_placement/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_placement/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_placement/associateddevices.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_placement/associateddevices.json new file mode 100644 index 0000000000..6592ad5a02 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_placement/associateddevices.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/AssociatedDevices", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/AssociatedDevices", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_placement/attributes.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_placement/attributes.json new file mode 100644 index 0000000000..4f0dda5e00 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_placement/attributes.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Attributes", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Attributes", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_project/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_project/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_project/placementtemplate_defaultattributes.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_project/placementtemplate_defaultattributes.json new file mode 100644 index 0000000000..fc3f29f129 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_project/placementtemplate_defaultattributes.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/PlacementTemplate/properties/DefaultAttributes", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/PlacementTemplate/properties/DefaultAttributes", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_project/placementtemplate_devicetemplates.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_project/placementtemplate_devicetemplates.json new file mode 100644 index 0000000000..0c861896e2 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iot1click_project/placementtemplate_devicetemplates.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/PlacementTemplate/properties/DeviceTemplates", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/PlacementTemplate/properties/DeviceTemplates", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iot_policy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iot_policy/policydocument.json index a7cdf439ed..49f2e9a8cf 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_iot_policy/policydocument.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iot_policy/policydocument.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/PolicyDocument", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/PolicyDocument", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_channel/servicemanageds3.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_channel/servicemanageds3.json index 475cbdc7a8..6bb6b262b4 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_channel/servicemanageds3.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_channel/servicemanageds3.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/ServiceManagedS3", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_datastore/jsonconfiguration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_datastore/jsonconfiguration.json index 97142b2b3c..7414a27130 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_datastore/jsonconfiguration.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_datastore/jsonconfiguration.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/JsonConfiguration", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_datastore/servicemanageds3.json b/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_datastore/servicemanageds3.json index 475cbdc7a8..6bb6b262b4 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_datastore/servicemanageds3.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_iotanalytics_datastore/servicemanageds3.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/ServiceManagedS3", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_datalakesettings/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_datalakesettings/parameters.json new file mode 100644 index 0000000000..e8d370a2b3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_datalakesettings/parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_permissions/tablewildcard.json b/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_permissions/tablewildcard.json index 0dd3a737c1..5cc68a1988 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_permissions/tablewildcard.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_permissions/tablewildcard.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/TableWildcard", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_principalpermissions/tablewildcard.json b/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_principalpermissions/tablewildcard.json index 0dd3a737c1..5cc68a1988 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_principalpermissions/tablewildcard.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_principalpermissions/tablewildcard.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/TableWildcard", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_tagassociation/tablewildcard.json b/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_tagassociation/tablewildcard.json index 0dd3a737c1..5cc68a1988 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_tagassociation/tablewildcard.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_lakeformation_tagassociation/tablewildcard.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/TableWildcard", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_lambda_version/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_lambda_version/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_lambda_version/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_lambda_version/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_lambda_version/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_lex_resourcepolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_lex_resourcepolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_lex_resourcepolicy/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_lex_resourcepolicy/policy.json new file mode 100644 index 0000000000..6f3d9cfa08 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_lex_resourcepolicy/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_logs_loggroup/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_logs_loggroup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_logs_loggroup/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_logs_loggroup/policy.json new file mode 100644 index 0000000000..762f513f78 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_logs_loggroup/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/DataProtectionPolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/DataProtectionPolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_jobtemplate/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_jobtemplate/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_jobtemplate/settingsjson.json b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_jobtemplate/settingsjson.json new file mode 100644 index 0000000000..08c20ef9d6 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_jobtemplate/settingsjson.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/SettingsJson", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/SettingsJson", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_jobtemplate/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_jobtemplate/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_jobtemplate/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_preset/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_preset/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_preset/settingsjson.json b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_preset/settingsjson.json new file mode 100644 index 0000000000..08c20ef9d6 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_preset/settingsjson.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/SettingsJson", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/SettingsJson", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_preset/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_preset/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_preset/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_queue/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_queue/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_queue/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_queue/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_mediaconvert_queue/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/aribdestinationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/aribdestinationsettings.json index 6ad78796f1..53833f04da 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/aribdestinationsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/aribdestinationsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/AribDestinationSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/aribsourcesettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/aribsourcesettings.json index f28a05dba4..0a9ce813b8 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/aribsourcesettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/aribsourcesettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/AribSourceSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/colorspacepassthroughsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/colorspacepassthroughsettings.json index 2e2fde5d35..5c1ea31789 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/colorspacepassthroughsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/colorspacepassthroughsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/ColorSpacePassthroughSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/dolbyvision81settings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/dolbyvision81settings.json index ac973fc357..8afb94df16 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/dolbyvision81settings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/dolbyvision81settings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/DolbyVision81Settings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/embeddeddestinationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/embeddeddestinationsettings.json index 159504f848..45801eb71f 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/embeddeddestinationsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/embeddeddestinationsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/EmbeddedDestinationSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/embeddedplusscte20destinationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/embeddedplusscte20destinationsettings.json index 2b11ff0fa4..32b6ed5e03 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/embeddedplusscte20destinationsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/embeddedplusscte20destinationsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/EmbeddedPlusScte20DestinationSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/framecapturehlssettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/framecapturehlssettings.json index f952e952a5..9b7186c812 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/framecapturehlssettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/framecapturehlssettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/FrameCaptureHlsSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/htmlmotiongraphicssettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/htmlmotiongraphicssettings.json index e33adf1881..aec5ff7910 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/htmlmotiongraphicssettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/htmlmotiongraphicssettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/HtmlMotionGraphicsSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/mediapackageoutputsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/mediapackageoutputsettings.json index 94d03d9568..2dceaabb92 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/mediapackageoutputsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/mediapackageoutputsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/MediaPackageOutputSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/multiplexgroupsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/multiplexgroupsettings.json index 9cc959cc1a..2feedf97e3 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/multiplexgroupsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/multiplexgroupsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/MultiplexGroupSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/passthroughsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/passthroughsettings.json index 0a53a0418c..f8e0c11f7f 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/passthroughsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/passthroughsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/PassThroughSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/pipelinelockingsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/pipelinelockingsettings.json index 963f39df07..65d5a48799 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/pipelinelockingsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/pipelinelockingsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/PipelineLockingSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rawsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rawsettings.json index abe943cd35..88cf7f038d 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rawsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rawsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/RawSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rec601settings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rec601settings.json index 7f8c79ecfa..22bf536394 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rec601settings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rec601settings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/Rec601Settings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rec709settings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rec709settings.json index 777510999d..4bf56b9b65 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rec709settings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rec709settings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/Rec709Settings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rtmpcaptioninfodestinationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rtmpcaptioninfodestinationsettings.json index 8fc979665b..a8a8ccde93 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rtmpcaptioninfodestinationsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/rtmpcaptioninfodestinationsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/RtmpCaptionInfoDestinationSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/scte20plusembeddeddestinationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/scte20plusembeddeddestinationsettings.json index 56aadd675d..b2ad37178e 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/scte20plusembeddeddestinationsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/scte20plusembeddeddestinationsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/Scte20PlusEmbeddedDestinationSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/scte27destinationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/scte27destinationsettings.json index d59f580943..cd5de44ad1 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/scte27destinationsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/scte27destinationsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/Scte27DestinationSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/smptettdestinationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/smptettdestinationsettings.json index 5200368a2c..0ac987d7fa 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/smptettdestinationsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/smptettdestinationsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/SmpteTtDestinationSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/teletextdestinationsettings.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/teletextdestinationsettings.json index 250a00424d..8b43408ee6 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/teletextdestinationsettings.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_channel/teletextdestinationsettings.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/TeletextDestinationSettings", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_input/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_input/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_input/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_input/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_input/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_inputsecuritygroup/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_inputsecuritygroup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_inputsecuritygroup/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_inputsecuritygroup/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_medialive_inputsecuritygroup/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediatailor_playbackconfiguration/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_mediatailor_playbackconfiguration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mediatailor_playbackconfiguration/configurationaliases_patternproperties.json b/src/cfnlint/data/schemas/patches/providers/all/aws_mediatailor_playbackconfiguration/configurationaliases_patternproperties.json new file mode 100644 index 0000000000..9b88dfae6a --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_mediatailor_playbackconfiguration/configurationaliases_patternproperties.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/ConfigurationAliases/patternProperties/player_params\\.\\w+\\Z", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/ConfigurationAliases/patternProperties/player_params\\.\\w+\\Z", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_memorydb_parametergroup/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_memorydb_parametergroup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_memorydb_parametergroup/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_memorydb_parametergroup/parameters.json new file mode 100644 index 0000000000..e8d370a2b3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_memorydb_parametergroup/parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_msk_clusterpolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_msk_clusterpolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_msk_clusterpolicy/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_msk_clusterpolicy/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_msk_clusterpolicy/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mwaa_environment/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_mwaa_environment/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mwaa_environment/airflowconfigurationoptions.json b/src/cfnlint/data/schemas/patches/providers/all/aws_mwaa_environment/airflowconfigurationoptions.json new file mode 100644 index 0000000000..b2b206d7d7 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_mwaa_environment/airflowconfigurationoptions.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/AirflowConfigurationOptions", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/AirflowConfigurationOptions", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_mwaa_environment/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_mwaa_environment/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_mwaa_environment/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_neptune_dbclusterparametergroup/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_neptune_dbclusterparametergroup/parameters.json index f97b35b36c..e8d370a2b3 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_neptune_dbclusterparametergroup/parameters.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_neptune_dbclusterparametergroup/parameters.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/Parameters", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Parameters", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_neptune_dbparametergroup/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_neptune_dbparametergroup/parameters.json index f97b35b36c..e8d370a2b3 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_neptune_dbparametergroup/parameters.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_neptune_dbparametergroup/parameters.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/properties/Parameters", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Parameters", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_networkmanager_corenetwork/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_networkmanager_corenetwork/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_networkmanager_corenetwork/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_networkmanager_corenetwork/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_networkmanager_corenetwork/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_oam_sink/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_oam_sink/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_oam_sink/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_oam_sink/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_oam_sink/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_opensearchservice_domain/accesspolicies.json b/src/cfnlint/data/schemas/patches/providers/all/aws_opensearchservice_domain/accesspolicies.json new file mode 100644 index 0000000000..555546309e --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_opensearchservice_domain/accesspolicies.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/AccessPolicies", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/AccessPolicies", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_opsworks_layer/customjson.json b/src/cfnlint/data/schemas/patches/providers/all/aws_opsworks_layer/customjson.json index 75b0ded446..c6d820a37b 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_opsworks_layer/customjson.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_opsworks_layer/customjson.json @@ -10,6 +10,7 @@ "op": "replace", "path": "/properties/CustomJson", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_opsworks_stack/customjson.json b/src/cfnlint/data/schemas/patches/providers/all/aws_opsworks_stack/customjson.json index 75b0ded446..c6d820a37b 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_opsworks_stack/customjson.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_opsworks_stack/customjson.json @@ -10,6 +10,7 @@ "op": "replace", "path": "/properties/CustomJson", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_app/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_app/tags.json index 227239c2d5..d2747fbfd4 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_app/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_app/tags.json @@ -1,18 +1,32 @@ [ - { - "op": "test", - "path": "/properties/Tags", - "value": { - "type": "object" + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" } }, - { - "op": "replace", - "path": "/properties/Tags", - "value": { - "type": [ - "object" - ] - } - } - ] + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/campaigninappmessage_customconfig.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/campaigninappmessage_customconfig.json new file mode 100644 index 0000000000..e8c37fb0a5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/campaigninappmessage_customconfig.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/CampaignInAppMessage/properties/CustomConfig", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/CampaignInAppMessage/properties/CustomConfig", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/eventdimensions_attributes.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/eventdimensions_attributes.json new file mode 100644 index 0000000000..a472162445 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/eventdimensions_attributes.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/EventDimensions/properties/Attributes", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/EventDimensions/properties/Attributes", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/eventdimensions_metrics.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/eventdimensions_metrics.json new file mode 100644 index 0000000000..322570d3f9 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/eventdimensions_metrics.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/EventDimensions/properties/Metrics", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/EventDimensions/properties/Metrics", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_campaign/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_emailtemplate/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_emailtemplate/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_emailtemplate/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_emailtemplate/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_emailtemplate/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_inapptemplate/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_inapptemplate/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_inapptemplate/customconfig.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_inapptemplate/customconfig.json new file mode 100644 index 0000000000..2bc7554901 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_inapptemplate/customconfig.json @@ -0,0 +1,18 @@ +[ + { + "op": "test", + "path": "/properties/CustomConfig", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/CustomConfig", + "value": { + "type": [ + "object" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_inapptemplate/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_inapptemplate/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_inapptemplate/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_pushtemplate/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_pushtemplate/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_pushtemplate/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_pushtemplate/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_pushtemplate/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_attributes.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_attributes.json index 83924f38ea..dacd038152 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_attributes.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_attributes.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/definitions/SegmentDimensions/properties/Attributes", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/definitions/SegmentDimensions/properties/Attributes", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/definitions/SegmentDimensions/properties/Attributes", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/SegmentDimensions/properties/Attributes", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_metrics.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_metrics.json index 2b14453147..a78c859c2c 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_metrics.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_metrics.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/definitions/SegmentDimensions/properties/Metrics", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/definitions/SegmentDimensions/properties/Metrics", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/definitions/SegmentDimensions/properties/Metrics", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/SegmentDimensions/properties/Metrics", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_userattributes.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_userattributes.json index 4598921388..af861b7a42 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_userattributes.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/segmentdimensions_userattributes.json @@ -1,19 +1,20 @@ [ - { - "op": "test", - "path": "/definitions/SegmentDimensions/properties/UserAttributes", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/definitions/SegmentDimensions/properties/UserAttributes", - "value": { - "type": [ - "object", - "string" - ] - } - } + { + "op": "test", + "path": "/definitions/SegmentDimensions/properties/UserAttributes", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/SegmentDimensions/properties/UserAttributes", + "value": { + "format": "json", + "type": [ + "object", + "string" ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/tags.json index 227239c2d5..d2747fbfd4 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_segment/tags.json @@ -1,18 +1,32 @@ [ - { - "op": "test", - "path": "/properties/Tags", - "value": { - "type": "object" + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" } }, - { - "op": "replace", - "path": "/properties/Tags", - "value": { - "type": [ - "object" - ] - } - } - ] + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_smstemplate/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_smstemplate/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_smstemplate/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_smstemplate/tags.json new file mode 100644 index 0000000000..d2747fbfd4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_pinpoint_smstemplate/tags.json @@ -0,0 +1,32 @@ +[ + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_datasource/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_datasource/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_datasource/configuration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_datasource/configuration.json new file mode 100644 index 0000000000..2832bd266d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_datasource/configuration.json @@ -0,0 +1,18 @@ +[ + { + "op": "test", + "path": "/properties/Configuration", + "value": {} + }, + { + "op": "replace", + "path": "/properties/Configuration", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_plugin/noauthconfiguration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_plugin/noauthconfiguration.json index deebe0930b..210e0b3f70 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_plugin/noauthconfiguration.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_qbusiness_plugin/noauthconfiguration.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/NoAuthConfiguration", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_analysis/allsheetsfilterscopeconfiguration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_analysis/allsheetsfilterscopeconfiguration.json index acc94eae1c..c50f5b6352 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_analysis/allsheetsfilterscopeconfiguration.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_analysis/allsheetsfilterscopeconfiguration.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/AllSheetsFilterScopeConfiguration", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_analysis/axisdisplaydatadrivenrange.json b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_analysis/axisdisplaydatadrivenrange.json index 10ff80f06c..1d479e0eea 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_analysis/axisdisplaydatadrivenrange.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_analysis/axisdisplaydatadrivenrange.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/AxisDisplayDataDrivenRange", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_dashboard/allsheetsfilterscopeconfiguration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_dashboard/allsheetsfilterscopeconfiguration.json index acc94eae1c..c50f5b6352 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_dashboard/allsheetsfilterscopeconfiguration.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_dashboard/allsheetsfilterscopeconfiguration.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/AllSheetsFilterScopeConfiguration", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_dashboard/axisdisplaydatadrivenrange.json b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_dashboard/axisdisplaydatadrivenrange.json index 10ff80f06c..1d479e0eea 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_dashboard/axisdisplaydatadrivenrange.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_dashboard/axisdisplaydatadrivenrange.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/AxisDisplayDataDrivenRange", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_template/allsheetsfilterscopeconfiguration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_template/allsheetsfilterscopeconfiguration.json index acc94eae1c..c50f5b6352 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_template/allsheetsfilterscopeconfiguration.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_template/allsheetsfilterscopeconfiguration.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/AllSheetsFilterScopeConfiguration", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_template/axisdisplaydatadrivenrange.json b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_template/axisdisplaydatadrivenrange.json index 10ff80f06c..1d479e0eea 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_template/axisdisplaydatadrivenrange.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_quicksight_template/axisdisplaydatadrivenrange.json @@ -11,6 +11,7 @@ "op": "replace", "path": "/definitions/AxisDisplayDataDrivenRange", "value": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ram_permission/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_ram_permission/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ram_permission/policytemplate.json b/src/cfnlint/data/schemas/patches/providers/all/aws_ram_permission/policytemplate.json new file mode 100644 index 0000000000..219eea9253 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_ram_permission/policytemplate.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyTemplate", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyTemplate", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbclusterparametergroup/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbclusterparametergroup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbclusterparametergroup/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbclusterparametergroup/parameters.json new file mode 100644 index 0000000000..e8d370a2b3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbclusterparametergroup/parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbparametergroup/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbparametergroup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbparametergroup/parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbparametergroup/parameters.json new file mode 100644 index 0000000000..e8d370a2b3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_rds_dbparametergroup/parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_redshift_cluster/nameresourcepolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_redshift_cluster/nameresourcepolicy.json new file mode 100644 index 0000000000..3fdcda3d75 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_redshift_cluster/nameresourcepolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/NamespaceResourcePolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/NamespaceResourcePolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_redshiftserverless_namespace/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_redshiftserverless_namespace/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_redshiftserverless_namespace/nameresourcepolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_redshiftserverless_namespace/nameresourcepolicy.json new file mode 100644 index 0000000000..3fdcda3d75 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_redshiftserverless_namespace/nameresourcepolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/NamespaceResourcePolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/NamespaceResourcePolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_fleet/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_fleet/tags.json index 227239c2d5..cd8ee123e9 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_fleet/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_fleet/tags.json @@ -1,18 +1,24 @@ [ - { - "op": "test", - "path": "/properties/Tags", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Tags", - "value": { - "type": [ - "object" - ] - } + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" } - ] + }, + "type": "object" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_robot/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_robot/tags.json index 227239c2d5..cd8ee123e9 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_robot/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_robot/tags.json @@ -1,18 +1,24 @@ [ - { - "op": "test", - "path": "/properties/Tags", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Tags", - "value": { - "type": [ - "object" - ] - } + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" } - ] + }, + "type": "object" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_robotapplication/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_robotapplication/tags.json index 227239c2d5..cd8ee123e9 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_robotapplication/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_robotapplication/tags.json @@ -1,18 +1,24 @@ [ - { - "op": "test", - "path": "/properties/Tags", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Tags", - "value": { - "type": [ - "object" - ] - } + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" } - ] + }, + "type": "object" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_simulationapplication/tags.json b/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_simulationapplication/tags.json index 227239c2d5..cd8ee123e9 100644 --- a/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_simulationapplication/tags.json +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_robomaker_simulationapplication/tags.json @@ -1,18 +1,24 @@ [ - { - "op": "test", - "path": "/properties/Tags", - "value": { - "type": "object" - } - }, - { - "op": "replace", - "path": "/properties/Tags", - "value": { - "type": [ - "object" - ] - } + { + "op": "test", + "path": "/properties/Tags", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Tags", + "value": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" } - ] + }, + "type": "object" + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3_accesspoint/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_s3_accesspoint/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3_accesspoint/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_s3_accesspoint/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_s3_accesspoint/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3_multiregionaccesspointpolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_s3_multiregionaccesspointpolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3_multiregionaccesspointpolicy/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_s3_multiregionaccesspointpolicy/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_s3_multiregionaccesspointpolicy/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3objectlambda_accesspointpolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_s3objectlambda_accesspointpolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3objectlambda_accesspointpolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_s3objectlambda_accesspointpolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_s3objectlambda_accesspointpolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_accesspoint/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_accesspoint/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_accesspoint/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_accesspoint/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_accesspoint/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_bucketpolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_bucketpolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_bucketpolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_bucketpolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_s3outposts_bucketpolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sagemaker_model/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_sagemaker_model/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sagemaker_model/containerdefinition_environment.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sagemaker_model/containerdefinition_environment.json new file mode 100644 index 0000000000..67d0890b9a --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sagemaker_model/containerdefinition_environment.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/ContainerDefinition/properties/Environment", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/ContainerDefinition/properties/Environment", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_secretsmanager_resourcepolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_secretsmanager_resourcepolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_secretsmanager_resourcepolicy/resourcepolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_secretsmanager_resourcepolicy/resourcepolicy.json new file mode 100644 index 0000000000..d890122c6c --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_secretsmanager_resourcepolicy/resourcepolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ResourcePolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ResourcePolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_securitylake_subscribernotification/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_securitylake_subscribernotification/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_securitylake_subscribernotification/sqsnotificationconfiguration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_securitylake_subscribernotification/sqsnotificationconfiguration.json new file mode 100644 index 0000000000..4cabd30ab8 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_securitylake_subscribernotification/sqsnotificationconfiguration.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/SqsNotificationConfiguration", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/SqsNotificationConfiguration", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalog_cloudformationproduct/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalog_cloudformationproduct/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalog_cloudformationproduct/provisioningartifactproperties_info.json b/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalog_cloudformationproduct/provisioningartifactproperties_info.json new file mode 100644 index 0000000000..df628810fc --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalog_cloudformationproduct/provisioningartifactproperties_info.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/ProvisioningArtifactProperties/properties/Info", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/ProvisioningArtifactProperties/properties/Info", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalogappregistry_attributegroup/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalogappregistry_attributegroup/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalogappregistry_attributegroup/attributes.json b/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalogappregistry_attributegroup/attributes.json new file mode 100644 index 0000000000..4f0dda5e00 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_servicecatalogappregistry_attributegroup/attributes.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Attributes", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Attributes", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_servicediscovery_instance/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_servicediscovery_instance/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_servicediscovery_instance/instanceattributes.json b/src/cfnlint/data/schemas/patches/providers/all/aws_servicediscovery_instance/instanceattributes.json new file mode 100644 index 0000000000..a9995898e1 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_servicediscovery_instance/instanceattributes.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/InstanceAttributes", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/InstanceAttributes", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/deliverypolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/deliverypolicy.json new file mode 100644 index 0000000000..eb41f0b7ea --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/deliverypolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/DeliveryPolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/DeliveryPolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/filterpolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/filterpolicy.json new file mode 100644 index 0000000000..9049731992 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/filterpolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/FilterPolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/FilterPolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/redrivepolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/redrivepolicy.json new file mode 100644 index 0000000000..69d563e083 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/redrivepolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/RedrivePolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/RedrivePolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/replaypolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/replaypolicy.json new file mode 100644 index 0000000000..5436f922ae --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_subscription/replaypolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ReplayPolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ReplayPolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topic/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topic/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topic/archivepolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topic/archivepolicy.json new file mode 100644 index 0000000000..c726b6d37c --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topic/archivepolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/ArchivePolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/ArchivePolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topic/dataprotectionpolicy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topic/dataprotectionpolicy.json new file mode 100644 index 0000000000..762f513f78 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topic/dataprotectionpolicy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/DataProtectionPolicy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/DataProtectionPolicy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicinlinepolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicinlinepolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicinlinepolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicinlinepolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicinlinepolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicpolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicpolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicpolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicpolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sns_topicpolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queueinlinepolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queueinlinepolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queueinlinepolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queueinlinepolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queueinlinepolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queuepolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queuepolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queuepolicy/policydocument.json b/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queuepolicy/policydocument.json new file mode 100644 index 0000000000..49f2e9a8cf --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_sqs_queuepolicy/policydocument.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/PolicyDocument", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/PolicyDocument", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/maintenancewindowautomationparameters_parameteres.json b/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/maintenancewindowautomationparameters_parameteres.json new file mode 100644 index 0000000000..0515413b7b --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/maintenancewindowautomationparameters_parameteres.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/MaintenanceWindowAutomationParameters/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/MaintenanceWindowAutomationParameters/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/maintenancewindowruncommandparameters_parameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/maintenancewindowruncommandparameters_parameters.json new file mode 100644 index 0000000000..612fd9256f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/maintenancewindowruncommandparameters_parameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/MaintenanceWindowRunCommandParameters/properties/Parameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/MaintenanceWindowRunCommandParameters/properties/Parameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/taskparameters.json b/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/taskparameters.json new file mode 100644 index 0000000000..0f06f1dfd3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_ssm_maintenancewindowtask/taskparameters.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/TaskParameters", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/TaskParameters", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_authpolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_authpolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_authpolicy/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_authpolicy/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_authpolicy/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_resourcepolicy/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_resourcepolicy/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_resourcepolicy/policy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_resourcepolicy/policy.json new file mode 100644 index 0000000000..3a5c0890fb --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_vpclattice_resourcepolicy/policy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/properties/Policy", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/properties/Policy", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_method.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_method.json new file mode 100644 index 0000000000..4f4b2d571a --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_method.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/Method", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/Method", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_querystring.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_querystring.json new file mode 100644 index 0000000000..00aa374929 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_querystring.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/QueryString", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/QueryString", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_uripath.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_uripath.json new file mode 100644 index 0000000000..4672f2c294 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_loggingconfiguration/fieldtomatch_uripath.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/UriPath", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/UriPath", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/cookiematchpattern_all.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/cookiematchpattern_all.json new file mode 100644 index 0000000000..33539fdcee --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/cookiematchpattern_all.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/CookieMatchPattern/properties/All", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/CookieMatchPattern/properties/All", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_allqueryarguments.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_allqueryarguments.json new file mode 100644 index 0000000000..8922f4c8ed --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_allqueryarguments.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/AllQueryArguments", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/AllQueryArguments", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_method.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_method.json new file mode 100644 index 0000000000..4f4b2d571a --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_method.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/Method", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/Method", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_querystring.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_querystring.json new file mode 100644 index 0000000000..00aa374929 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_querystring.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/QueryString", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/QueryString", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_uripath.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_uripath.json new file mode 100644 index 0000000000..4672f2c294 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/fieldtomatch_uripath.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/UriPath", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/UriPath", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/headermatchpattern_all.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/headermatchpattern_all.json new file mode 100644 index 0000000000..7cc788fa70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/headermatchpattern_all.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/HeaderMatchPattern/properties/All", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/HeaderMatchPattern/properties/All", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/jsonmatchpattern_all.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/jsonmatchpattern_all.json new file mode 100644 index 0000000000..bc690c1e80 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/jsonmatchpattern_all.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/JsonMatchPattern/properties/All", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/JsonMatchPattern/properties/All", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimitforwardedip.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimitforwardedip.json new file mode 100644 index 0000000000..0518a40682 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimitforwardedip.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/RateLimitForwardedIP", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/RateLimitForwardedIP", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimithttpmethod.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimithttpmethod.json new file mode 100644 index 0000000000..8557be516f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimithttpmethod.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/RateLimitHTTPMethod", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/RateLimitHTTPMethod", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimitip.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimitip.json new file mode 100644 index 0000000000..13867c4043 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_rulegroup/ratelimitip.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/RateLimitIP", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/RateLimitIP", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/cookiematchpattern_all.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/cookiematchpattern_all.json new file mode 100644 index 0000000000..33539fdcee --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/cookiematchpattern_all.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/CookieMatchPattern/properties/All", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/CookieMatchPattern/properties/All", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_allqueryarguments.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_allqueryarguments.json new file mode 100644 index 0000000000..8922f4c8ed --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_allqueryarguments.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/AllQueryArguments", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/AllQueryArguments", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_method.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_method.json new file mode 100644 index 0000000000..4f4b2d571a --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_method.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/Method", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/Method", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_querystring.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_querystring.json new file mode 100644 index 0000000000..00aa374929 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_querystring.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/QueryString", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/QueryString", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_uripath.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_uripath.json new file mode 100644 index 0000000000..4672f2c294 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/fieldtomatch_uripath.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/FieldToMatch/properties/UriPath", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/FieldToMatch/properties/UriPath", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/headermatchpattern_all copy.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/headermatchpattern_all copy.json new file mode 100644 index 0000000000..7cc788fa70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/headermatchpattern_all copy.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/HeaderMatchPattern/properties/All", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/HeaderMatchPattern/properties/All", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/headermatchpattern_all.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/headermatchpattern_all.json new file mode 100644 index 0000000000..7cc788fa70 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/headermatchpattern_all.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/HeaderMatchPattern/properties/All", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/HeaderMatchPattern/properties/All", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/jsonmatchpattern_all.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/jsonmatchpattern_all.json new file mode 100644 index 0000000000..bc690c1e80 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/jsonmatchpattern_all.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/JsonMatchPattern/properties/All", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/JsonMatchPattern/properties/All", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/overrideaction_count.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/overrideaction_count.json new file mode 100644 index 0000000000..78429b6bb7 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/overrideaction_count.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/OverrideAction/properties/Count", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/OverrideAction/properties/Count", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/overrideaction_none.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/overrideaction_none.json new file mode 100644 index 0000000000..5ad0a236e7 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/overrideaction_none.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/OverrideAction/properties/None", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/OverrideAction/properties/None", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/querystring.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/querystring.json new file mode 100644 index 0000000000..c8f6e46eba --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/querystring.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/QueryString", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/QueryString", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimitforwardedip.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimitforwardedip.json new file mode 100644 index 0000000000..0518a40682 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimitforwardedip.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/RateLimitForwardedIP", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/RateLimitForwardedIP", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimithttpmethod.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimithttpmethod.json new file mode 100644 index 0000000000..8557be516f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimithttpmethod.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/RateLimitHTTPMethod", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/RateLimitHTTPMethod", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimitip.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimitip.json new file mode 100644 index 0000000000..13867c4043 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/ratelimitip.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/RateLimitIP", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/RateLimitIP", + "value": { + "format": "json", + "type": [ + "object", + "string" + ] + } + } +] diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/uripath.json b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/uripath.json new file mode 100644 index 0000000000..059b08f749 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_wafv2_webacl/uripath.json @@ -0,0 +1,20 @@ +[ + { + "op": "test", + "path": "/definitions/UriPath", + "value": { + "type": "object" + } + }, + { + "op": "replace", + "path": "/definitions/UriPath", + "value": { + "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 9158bd55bf..e57d48c387 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -1025,7 +1025,6 @@ "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", @@ -1190,7 +1189,6 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-apigatewayv2-vpclink.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-apigatewayv2-vpclink.json index 7e1ebb78bc..6122cf0cee 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-apigatewayv2-vpclink.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-apigatewayv2-vpclink.json @@ -31,10 +31,13 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object", - "string" - ] + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-codepipeline-pipeline.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-codepipeline-pipeline.json index 4575c69e2a..2b41420f66 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-codepipeline-pipeline.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-codepipeline-pipeline.json @@ -11,6 +11,7 @@ "$ref": "#/definitions/ActionTypeId" }, "Configuration": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-policy.json index 2fe7a81560..a329acfc74 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-mediaconnect-gateway.json index 283caabff1..3cab25d209 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-mediaconnect-gateway.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-mediaconnect-gateway.json @@ -3,7 +3,9 @@ "createOnlyProperties": [ "/properties/Name", "/properties/EgressCidrBlocks", - "/properties/Networks" + "/properties/Networks", + "/properties/Networks/*/Name", + "/properties/Networks/*/CidrBlock" ], "definitions": { "GatewayNetwork": { diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-opsworks-layer.json index 2713480ea1..9c1034b219 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-opsworks-layer.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-opsworks-layer.json @@ -181,6 +181,7 @@ "type": "string" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/af_south_1/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-opsworks-stack.json index a70f0a1a62..c091181181 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/aws-opsworks-stack.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-opsworks-stack.json @@ -148,6 +148,7 @@ "$ref": "#/definitions/Source" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-resiliencehub-app.json similarity index 100% rename from src/cfnlint/data/schemas/providers/ap_south_1/aws-resiliencehub-app.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-resiliencehub-app.json diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-rolesanywhere-profile.json similarity index 95% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-rolesanywhere-profile.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-rolesanywhere-profile.json index 8303473193..9781637c58 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-rolesanywhere-profile.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-rolesanywhere-profile.json @@ -173,12 +173,5 @@ "Name", "RoleArns" ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, "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 a30a0fc914..66218c54df 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -1008,7 +1008,6 @@ "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", @@ -1169,7 +1168,6 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-vpclink.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-vpclink.json index 7e1ebb78bc..6122cf0cee 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-vpclink.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-apigatewayv2-vpclink.json @@ -31,10 +31,13 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object", - "string" - ] + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-identitypool.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-identitypool.json index 46ac1fba2e..b511032158 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-identitypool.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-identitypool.json @@ -59,6 +59,7 @@ "type": "boolean" }, "CognitoEvents": { + "format": "json", "type": [ "object", "string" @@ -104,6 +105,7 @@ "uniqueItems": false }, "SupportedLoginProviders": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-identitypoolroleattachment.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-identitypoolroleattachment.json index a988ab33e8..ca2e8a5a88 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-identitypoolroleattachment.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-identitypoolroleattachment.json @@ -14,12 +14,14 @@ "type": "string" }, "RoleMappings": { + "format": "json", "type": [ "object", "string" ] }, "Roles": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-userpool.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-userpool.json index ee04e1224c..ad6a681586 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-userpool.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-userpool.json @@ -361,6 +361,7 @@ "type": "string" }, "UserPoolTags": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-userpooluser.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-userpooluser.json index d6d1bec9ff..4f48fd800f 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-userpooluser.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-cognito-userpooluser.json @@ -29,6 +29,7 @@ ], "properties": { "ClientMetadata": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-docdb-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-docdb-dbclusterparametergroup.json index b3e75356b1..53704a93eb 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-docdb-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-docdb-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-mediaconnect-gateway.json similarity index 94% rename from src/cfnlint/data/schemas/providers/sa_east_1/aws-mediaconnect-gateway.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-mediaconnect-gateway.json index 283caabff1..3cab25d209 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/aws-mediaconnect-gateway.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-mediaconnect-gateway.json @@ -3,7 +3,9 @@ "createOnlyProperties": [ "/properties/Name", "/properties/EgressCidrBlocks", - "/properties/Networks" + "/properties/Networks", + "/properties/Networks/*/Name", + "/properties/Networks/*/CidrBlock" ], "definitions": { "GatewayNetwork": { diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rolesanywhere-profile.json similarity index 95% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-rolesanywhere-profile.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-rolesanywhere-profile.json index 8303473193..9781637c58 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-rolesanywhere-profile.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-rolesanywhere-profile.json @@ -173,12 +173,5 @@ "Name", "RoleArns" ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, "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 b5e4dca803..5647c66fd2 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -1556,7 +1556,6 @@ "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", @@ -1821,6 +1820,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", @@ -2318,6 +2318,7 @@ "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", "aws-connect-queue.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-supportapp-slackchannelconfiguration.json", "aws-iotwireless-fuotatask.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecr-repositorycreationtemplate.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecr-repositorycreationtemplate.json deleted file mode 100644 index 57b0b79095..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ecr-repositorycreationtemplate.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Prefix" - ], - "definitions": { - "AppliedForItem": { - "enum": [ - "REPLICATION", - "PULL_THROUGH_CACHE" - ], - "type": "string" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "properties": { - "EncryptionType": { - "$ref": "#/definitions/EncryptionType" - }, - "KmsKey": { - "$ref": "#/definitions/KmsKey" - } - }, - "required": [ - "EncryptionType" - ], - "type": "object" - }, - "EncryptionType": { - "enum": [ - "AES256", - "KMS" - ], - "type": "string" - }, - "KmsKey": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ecr:CreateRepositoryCreationTemplate", - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "ecr:DeleteRepositoryCreationTemplate" - ] - }, - "list": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates" - ] - }, - "read": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates" - ] - }, - "update": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates", - "ecr:UpdateRepositoryCreationTemplate", - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Prefix" - ], - "properties": { - "AppliedFor": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AppliedForItem" - }, - "type": "array", - "uniqueItems": true - }, - "CreatedAt": { - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "ImageTagMutability": { - "enum": [ - "MUTABLE", - "IMMUTABLE" - ], - "type": "string" - }, - "LifecyclePolicy": { - "maxLength": 30720, - "minLength": 100, - "type": "string" - }, - "Prefix": { - "maxLength": 256, - "minLength": 1, - "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", - "type": "string" - }, - "RepositoryPolicy": { - "type": "string" - }, - "ResourceTags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "UpdatedAt": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CreatedAt", - "/properties/UpdatedAt" - ], - "required": [ - "Prefix", - "AppliedFor" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ECR::RepositoryCreationTemplate" -} diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-app.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-app.json index 444ed27dd6..3ab5d4845a 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-app.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-app.json @@ -17,9 +17,23 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-segment.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-segment.json index 3763227d9e..f39742ce10 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-segment.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-pinpoint-segment.json @@ -127,6 +127,7 @@ "additionalProperties": false, "properties": { "Attributes": { + "format": "json", "type": [ "object", "string" @@ -142,12 +143,14 @@ "$ref": "#/definitions/Location" }, "Metrics": { + "format": "json", "type": [ "object", "string" ] }, "UserAttributes": { + "format": "json", "type": [ "object", "string" @@ -227,9 +230,23 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rolesanywhere-profile.json similarity index 95% rename from src/cfnlint/data/schemas/providers/cn_north_1/aws-rolesanywhere-profile.json rename to src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rolesanywhere-profile.json index 8303473193..9781637c58 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-rolesanywhere-profile.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-rolesanywhere-profile.json @@ -173,12 +173,5 @@ "Name", "RoleArns" ], - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, "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 91b5622b19..21605666d6 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1422,7 +1422,6 @@ "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", @@ -1663,7 +1662,6 @@ "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-securityhub-standard.json", diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-mediaconnect-gateway.json similarity index 94% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediaconnect-gateway.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-mediaconnect-gateway.json index 283caabff1..3cab25d209 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-mediaconnect-gateway.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-mediaconnect-gateway.json @@ -3,7 +3,9 @@ "createOnlyProperties": [ "/properties/Name", "/properties/EgressCidrBlocks", - "/properties/Networks" + "/properties/Networks", + "/properties/Networks/*/Name", + "/properties/Networks/*/CidrBlock" ], "definitions": { "GatewayNetwork": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-app.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-app.json index 444ed27dd6..3ab5d4845a 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-app.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-app.json @@ -17,9 +17,23 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-segment.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-segment.json index 3763227d9e..f39742ce10 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-segment.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-pinpoint-segment.json @@ -127,6 +127,7 @@ "additionalProperties": false, "properties": { "Attributes": { + "format": "json", "type": [ "object", "string" @@ -142,12 +143,14 @@ "$ref": "#/definitions/Location" }, "Metrics": { + "format": "json", "type": [ "object", "string" ] }, "UserAttributes": { + "format": "json", "type": [ "object", "string" @@ -227,9 +230,23 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-fleet.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-fleet.json index 42078134c3..345d0f72a1 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-fleet.json @@ -17,9 +17,15 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robot.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robot.json index 4422ddb81d..eabddd02a1 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robot.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robot.json @@ -26,9 +26,15 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplication.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplication.json index 4d4d4fe72c..9c6315e679 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-robotapplication.json @@ -69,9 +69,15 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplication.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplication.json index aaf8f117ee..88d9afd816 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-robomaker-simulationapplication.json @@ -109,9 +109,15 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py index 22c51b5762..42b1febcf0 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -721,6 +721,7 @@ "AWS::EC2::IPAM", "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", "AWS::RDS::DBSubnetGroup", @@ -846,6 +847,7 @@ "aws-eks-fargateprofile.json", "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", + "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", @@ -988,7 +990,6 @@ "aws-ec2-route.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", - "aws-rolesanywhere-profile.json", "aws-refactorspaces-environment.json", "aws-xray-resourcepolicy.json", "aws-servicecatalog-launchtemplateconstraint.json", @@ -1137,7 +1138,6 @@ "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-securityhub-standard.json", @@ -1441,6 +1441,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/ap_northeast_3/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigateway-model.json index 8122317a63..00901c8b84 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigateway-model.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigateway-model.json @@ -25,6 +25,7 @@ "type": "string" }, "Schema": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigateway-restapi.json index 26d3794e3b..d08152f085 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigateway-restapi.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigateway-restapi.json @@ -75,6 +75,7 @@ "uniqueItems": true }, "Body": { + "format": "json", "type": [ "object", "string" @@ -119,6 +120,7 @@ "type": "object" }, "Policy": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigatewayv2-vpclink.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigatewayv2-vpclink.json index 7e1ebb78bc..6122cf0cee 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigatewayv2-vpclink.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-apigatewayv2-vpclink.json @@ -31,10 +31,13 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object", - "string" - ] + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_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_northeast_3/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-policy.json index d874b4bb99..b9b73c32c5 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-mediaconnect-gateway.json similarity index 94% rename from src/cfnlint/data/schemas/providers/eu_west_1/aws-mediaconnect-gateway.json rename to src/cfnlint/data/schemas/providers/ap_northeast_3/aws-mediaconnect-gateway.json index 283caabff1..3cab25d209 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-mediaconnect-gateway.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-mediaconnect-gateway.json @@ -3,7 +3,9 @@ "createOnlyProperties": [ "/properties/Name", "/properties/EgressCidrBlocks", - "/properties/Networks" + "/properties/Networks", + "/properties/Networks/*/Name", + "/properties/Networks/*/CidrBlock" ], "definitions": { "GatewayNetwork": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_3/aws-servicecatalogappregistry-attributegroup.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-servicecatalogappregistry-attributegroup.json index 3a1d1853e2..6eb74ead77 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-servicecatalogappregistry-attributegroup.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-servicecatalogappregistry-attributegroup.json @@ -59,7 +59,11 @@ "type": "string" }, "Attributes": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "Description": { "maxLength": 1024, diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py index 9fef80a40d..ead46bf177 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -1222,6 +1222,7 @@ "aws-route53-dnssec.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", @@ -1426,7 +1427,6 @@ "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", @@ -1670,9 +1670,9 @@ "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-sns-topicinlinepolicy.json", diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_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/eu_west_3/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-mediaconnect-gateway.json similarity index 94% rename from src/cfnlint/data/schemas/providers/eu_west_3/aws-mediaconnect-gateway.json rename to src/cfnlint/data/schemas/providers/ap_south_1/aws-mediaconnect-gateway.json index 283caabff1..3cab25d209 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-mediaconnect-gateway.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-mediaconnect-gateway.json @@ -3,7 +3,9 @@ "createOnlyProperties": [ "/properties/Name", "/properties/EgressCidrBlocks", - "/properties/Networks" + "/properties/Networks", + "/properties/Networks/*/Name", + "/properties/Networks/*/CidrBlock" ], "definitions": { "GatewayNetwork": { diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-fleet.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-fleet.json index 42078134c3..345d0f72a1 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-fleet.json @@ -17,9 +17,15 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robot.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robot.json index 4422ddb81d..eabddd02a1 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robot.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robot.json @@ -26,9 +26,15 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplication.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplication.json index 4d4d4fe72c..9c6315e679 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-robotapplication.json @@ -69,9 +69,15 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplication.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplication.json index aaf8f117ee..88d9afd816 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-robomaker-simulationapplication.json @@ -109,9 +109,15 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_south_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py index 948cc70de7..dabc28d775 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -757,7 +757,6 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-model.json index 5086400724..9504a897a5 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-model.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-model.json @@ -25,6 +25,7 @@ "type": "string" }, "Schema": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-restapi.json index 26d3794e3b..d08152f085 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-restapi.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-apigateway-restapi.json @@ -75,6 +75,7 @@ "uniqueItems": true }, "Body": { + "format": "json", "type": [ "object", "string" @@ -119,6 +120,7 @@ "type": "object" }, "Policy": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-docdb-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-docdb-dbclusterparametergroup.json index b3e75356b1..53704a93eb 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-docdb-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-docdb-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpcendpoint.json index 0581d10d25..cc6c13dfbc 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpcendpoint.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-ec2-vpcendpoint.json @@ -12,7 +12,11 @@ "type": "string" }, "PolicyDocument": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "PrivateDnsEnabled": { "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-emr-securityconfiguration.json index 5860195c67..69af968123 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-emr-securityconfiguration.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-emr-securityconfiguration.json @@ -15,7 +15,11 @@ "type": "string" }, "SecurityConfiguration": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json index 2fe7a81560..a329acfc74 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-mediatailor-playbackconfiguration.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-mediatailor-playbackconfiguration.json index e4853b3487..1ac2fa8338 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-mediatailor-playbackconfiguration.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-mediatailor-playbackconfiguration.json @@ -57,7 +57,11 @@ "additionalProperties": false, "patternProperties": { "player_params\\.\\w+\\Z": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } } }, diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-layer.json index 2713480ea1..9c1034b219 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-layer.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-layer.json @@ -181,6 +181,7 @@ "type": "string" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-stack.json index a70f0a1a62..c091181181 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-stack.json +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-opsworks-stack.json @@ -148,6 +148,7 @@ "$ref": "#/definitions/Source" }, "CustomJson": { + "format": "json", "type": [ "object", "string" 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 new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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 51c40558b9..fd6af703f7 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -1521,7 +1521,6 @@ "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", @@ -1785,7 +1784,6 @@ "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", @@ -2267,6 +2265,7 @@ "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", "aws-connect-queue.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-supportapp-slackchannelconfiguration.json", "aws-cloudfront-cachepolicy.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-docdb-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-docdb-dbclusterparametergroup.json index b3e75356b1..53704a93eb 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-docdb-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-docdb-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecr-repositorycreationtemplate.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecr-repositorycreationtemplate.json deleted file mode 100644 index 57b0b79095..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ecr-repositorycreationtemplate.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Prefix" - ], - "definitions": { - "AppliedForItem": { - "enum": [ - "REPLICATION", - "PULL_THROUGH_CACHE" - ], - "type": "string" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "properties": { - "EncryptionType": { - "$ref": "#/definitions/EncryptionType" - }, - "KmsKey": { - "$ref": "#/definitions/KmsKey" - } - }, - "required": [ - "EncryptionType" - ], - "type": "object" - }, - "EncryptionType": { - "enum": [ - "AES256", - "KMS" - ], - "type": "string" - }, - "KmsKey": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ecr:CreateRepositoryCreationTemplate", - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "ecr:DeleteRepositoryCreationTemplate" - ] - }, - "list": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates" - ] - }, - "read": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates" - ] - }, - "update": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates", - "ecr:UpdateRepositoryCreationTemplate", - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Prefix" - ], - "properties": { - "AppliedFor": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AppliedForItem" - }, - "type": "array", - "uniqueItems": true - }, - "CreatedAt": { - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "ImageTagMutability": { - "enum": [ - "MUTABLE", - "IMMUTABLE" - ], - "type": "string" - }, - "LifecyclePolicy": { - "maxLength": 30720, - "minLength": 100, - "type": "string" - }, - "Prefix": { - "maxLength": 256, - "minLength": 1, - "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", - "type": "string" - }, - "RepositoryPolicy": { - "type": "string" - }, - "ResourceTags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "UpdatedAt": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CreatedAt", - "/properties/UpdatedAt" - ], - "required": [ - "Prefix", - "AppliedFor" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ECR::RepositoryCreationTemplate" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-gammadilithium-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-gammadilithium-jobdefinition.json index 349bfa79f7..2917648238 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-gammadilithium-jobdefinition.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-gammadilithium-jobdefinition.json @@ -297,10 +297,18 @@ "additionalProperties": false, "properties": { "Limits": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "Requests": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "type": "object" @@ -515,7 +523,11 @@ "type": "string" }, "Options": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "SecretOptions": { "items": { @@ -534,7 +546,11 @@ "additionalProperties": false, "properties": { "Labels": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "type": "object" @@ -930,7 +946,11 @@ "$ref": "#/definitions/NodeProperties" }, "Parameters": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "PlatformCapabilities": { "items": { @@ -949,7 +969,23 @@ "type": "integer" }, "Tags": { - "type": "object" + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" }, "Timeout": { "$ref": "#/definitions/Timeout" 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 new file mode 100644 index 0000000000..3cab25d209 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-mediaconnect-gateway.json @@ -0,0 +1,106 @@ +{ + "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-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-pinpoint-app.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-pinpoint-app.json index 444ed27dd6..3ab5d4845a 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-pinpoint-app.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-pinpoint-app.json @@ -17,9 +17,23 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-pinpoint-segment.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-pinpoint-segment.json index 3763227d9e..f39742ce10 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-pinpoint-segment.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-pinpoint-segment.json @@ -127,6 +127,7 @@ "additionalProperties": false, "properties": { "Attributes": { + "format": "json", "type": [ "object", "string" @@ -142,12 +143,14 @@ "$ref": "#/definitions/Location" }, "Metrics": { + "format": "json", "type": [ "object", "string" ] }, "UserAttributes": { + "format": "json", "type": [ "object", "string" @@ -227,9 +230,23 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" } }, "readOnlyProperties": [ 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 new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_2/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py index f84e2c1fe0..78d02c0ac6 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -1318,6 +1318,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", @@ -1542,7 +1543,6 @@ "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", @@ -1809,6 +1809,7 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_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_southeast_2/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-resiliencehub-app.json deleted file mode 100644 index 0c20764ed8..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_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_southeast_2/aws-robomaker-fleet.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-fleet.json index 42078134c3..345d0f72a1 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-fleet.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-fleet.json @@ -17,9 +17,15 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robot.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robot.json index 4422ddb81d..eabddd02a1 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robot.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robot.json @@ -26,9 +26,15 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplication.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplication.json index 4d4d4fe72c..9c6315e679 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-robotapplication.json @@ -69,9 +69,15 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplication.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplication.json index aaf8f117ee..88d9afd816 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplication.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-robomaker-simulationapplication.json @@ -109,9 +109,15 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object" - ] + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9-]{1,128}$": { + "maxLength": 256, + "minLength": 1, + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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 79e5d34e58..d3184a6eb2 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -796,7 +796,6 @@ "aws-cloudformation-stackset.json", "aws-ec2-route.json", "aws-cloudformation-hookversion.json", - "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-wafv2-loggingconfiguration.json", "aws-dynamodb-globaltable.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigateway-model.json index 5086400724..9504a897a5 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigateway-model.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigateway-model.json @@ -25,6 +25,7 @@ "type": "string" }, "Schema": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigateway-restapi.json index 26d3794e3b..d08152f085 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigateway-restapi.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-apigateway-restapi.json @@ -75,6 +75,7 @@ "uniqueItems": true }, "Body": { + "format": "json", "type": [ "object", "string" @@ -119,6 +120,7 @@ "type": "object" }, "Policy": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-policy.json index 2fe7a81560..a329acfc74 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opsworks-layer.json index 2713480ea1..9c1034b219 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opsworks-layer.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opsworks-layer.json @@ -181,6 +181,7 @@ "type": "string" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opsworks-stack.json index a70f0a1a62..c091181181 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opsworks-stack.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-opsworks-stack.json @@ -148,6 +148,7 @@ "$ref": "#/definitions/Source" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_4/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py index 4ddc5e0e13..ba03965f1e 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -535,6 +535,7 @@ "AWS::EC2::IPAM", "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "AWS::EC2::TransitGatewayPeeringAttachment", + "AWS::ECR::RepositoryCreationTemplate", "AWS::CloudFront::CachePolicy", "AWS::IAM::AccessKey", "AWS::RDS::DBSubnetGroup", @@ -633,6 +634,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", @@ -679,6 +681,7 @@ "aws-s3objectlambda-accesspointpolicy.json", "aws-elasticache-replicationgroup.json", "aws-stepfunctions-statemachinealias.json", + "aws-rds-globalcluster.json", "aws-applicationsignals-servicelevelobjective.json", "aws-route53profiles-profileresourceassociation.json", "aws-sso-permissionset.json", @@ -721,7 +724,6 @@ "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", @@ -1042,6 +1044,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_southeast_4/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-model.json index 5086400724..9504a897a5 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-model.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-model.json @@ -25,6 +25,7 @@ "type": "string" }, "Schema": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-restapi.json index 26d3794e3b..d08152f085 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-restapi.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-apigateway-restapi.json @@ -75,6 +75,7 @@ "uniqueItems": true }, "Body": { + "format": "json", "type": [ "object", "string" @@ -119,6 +120,7 @@ "type": "object" }, "Policy": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-controltower-enabledcontrol.json deleted file mode 100644 index fcd9f3325b..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/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_4/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpcendpoint.json index 0581d10d25..cc6c13dfbc 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpcendpoint.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-ec2-vpcendpoint.json @@ -12,7 +12,11 @@ "type": "string" }, "PolicyDocument": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "PrivateDnsEnabled": { "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-emr-securityconfiguration.json index 5860195c67..69af968123 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-emr-securityconfiguration.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-emr-securityconfiguration.json @@ -15,7 +15,11 @@ "type": "string" }, "SecurityConfiguration": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gammadilithium-jobdefinition.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gammadilithium-jobdefinition.json index 1ac0462312..9810e78bc5 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gammadilithium-jobdefinition.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-gammadilithium-jobdefinition.json @@ -234,10 +234,18 @@ "additionalProperties": false, "properties": { "Limits": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "Requests": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "type": "object" @@ -437,7 +445,11 @@ "type": "string" }, "Options": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "SecretOptions": { "items": { @@ -456,7 +468,11 @@ "additionalProperties": false, "properties": { "Labels": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "type": "object" @@ -709,7 +725,11 @@ "$ref": "#/definitions/NodeProperties" }, "Parameters": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "PlatformCapabilities": { "items": { @@ -728,7 +748,23 @@ "type": "integer" }, "Tags": { - "type": "object" + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" }, "Timeout": { "$ref": "#/definitions/Timeout" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json index 2fe7a81560..a329acfc74 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-layer.json index 2713480ea1..9c1034b219 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-layer.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-layer.json @@ -181,6 +181,7 @@ "type": "string" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-stack.json index a70f0a1a62..c091181181 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-stack.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-opsworks-stack.json @@ -148,6 +148,7 @@ "$ref": "#/definitions/Source" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json index 62a3797fcd..e0756eb08e 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-dbcluster.json @@ -302,6 +302,9 @@ "EnableIAMDatabaseAuthentication": { "type": "boolean" }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, "Endpoint": { "$ref": "#/definitions/Endpoint" }, diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json deleted file mode 100644 index fccf366023..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rds-globalcluster.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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/ca_central_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py index ba63d823c0..06223488e2 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -1384,7 +1384,6 @@ "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", @@ -1620,7 +1619,6 @@ "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", @@ -2055,6 +2053,7 @@ "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", "aws-connect-queue.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-supportapp-slackchannelconfiguration.json", "aws-cloudfront-cachepolicy.json", diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-docdb-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-docdb-dbclusterparametergroup.json index b3e75356b1..53704a93eb 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-docdb-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-docdb-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecr-repositorycreationtemplate.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecr-repositorycreationtemplate.json deleted file mode 100644 index 57b0b79095..0000000000 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-ecr-repositorycreationtemplate.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Prefix" - ], - "definitions": { - "AppliedForItem": { - "enum": [ - "REPLICATION", - "PULL_THROUGH_CACHE" - ], - "type": "string" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "properties": { - "EncryptionType": { - "$ref": "#/definitions/EncryptionType" - }, - "KmsKey": { - "$ref": "#/definitions/KmsKey" - } - }, - "required": [ - "EncryptionType" - ], - "type": "object" - }, - "EncryptionType": { - "enum": [ - "AES256", - "KMS" - ], - "type": "string" - }, - "KmsKey": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ecr:CreateRepositoryCreationTemplate", - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "ecr:DeleteRepositoryCreationTemplate" - ] - }, - "list": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates" - ] - }, - "read": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates" - ] - }, - "update": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates", - "ecr:UpdateRepositoryCreationTemplate", - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Prefix" - ], - "properties": { - "AppliedFor": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AppliedForItem" - }, - "type": "array", - "uniqueItems": true - }, - "CreatedAt": { - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "ImageTagMutability": { - "enum": [ - "MUTABLE", - "IMMUTABLE" - ], - "type": "string" - }, - "LifecyclePolicy": { - "maxLength": 30720, - "minLength": 100, - "type": "string" - }, - "Prefix": { - "maxLength": 256, - "minLength": 1, - "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", - "type": "string" - }, - "RepositoryPolicy": { - "type": "string" - }, - "ResourceTags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "UpdatedAt": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CreatedAt", - "/properties/UpdatedAt" - ], - "required": [ - "Prefix", - "AppliedFor" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ECR::RepositoryCreationTemplate" -} 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 new file mode 100644 index 0000000000..3cab25d209 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-mediaconnect-gateway.json @@ -0,0 +1,106 @@ +{ + "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-pinpoint-app.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-app.json index 444ed27dd6..3ab5d4845a 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-app.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-app.json @@ -17,9 +17,23 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-segment.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-segment.json index 3763227d9e..f39742ce10 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-segment.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-pinpoint-segment.json @@ -127,6 +127,7 @@ "additionalProperties": false, "properties": { "Attributes": { + "format": "json", "type": [ "object", "string" @@ -142,12 +143,14 @@ "$ref": "#/definitions/Location" }, "Metrics": { + "format": "json", "type": [ "object", "string" ] }, "UserAttributes": { + "format": "json", "type": [ "object", "string" @@ -227,9 +230,23 @@ "type": "string" }, "Tags": { - "type": [ - "object" - ] + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" } }, "readOnlyProperties": [ 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 new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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/ca_west_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py index ac3c009626..085b153b34 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -626,7 +626,6 @@ "aws-cloudformation-stackset.json", "aws-ec2-route.json", "aws-cloudformation-hookversion.json", - "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-wafv2-loggingconfiguration.json", "aws-dynamodb-globaltable.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-model.json index 5086400724..9504a897a5 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-model.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-model.json @@ -25,6 +25,7 @@ "type": "string" }, "Schema": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-restapi.json index 26d3794e3b..d08152f085 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-restapi.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-apigateway-restapi.json @@ -75,6 +75,7 @@ "uniqueItems": true }, "Body": { + "format": "json", "type": [ "object", "string" @@ -119,6 +120,7 @@ "type": "object" }, "Policy": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-config-configrule.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-config-configrule.json index 1b77379213..931cf0bd8e 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-config-configrule.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-config-configrule.json @@ -150,7 +150,11 @@ "uniqueItems": true }, "InputParameters": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "MaximumExecutionFrequency": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcendpoint.json index 0581d10d25..cc6c13dfbc 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcendpoint.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-ec2-vpcendpoint.json @@ -12,7 +12,11 @@ "type": "string" }, "PolicyDocument": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "PrivateDnsEnabled": { "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-securityconfiguration.json index 5860195c67..69af968123 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-securityconfiguration.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-emr-securityconfiguration.json @@ -15,7 +15,11 @@ "type": "string" }, "SecurityConfiguration": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json index 88c91f2e09..0dcfb7d073 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-group.json @@ -8,7 +8,9 @@ "additionalProperties": false, "properties": { "PolicyDocument": { - "type": "object" + "type": [ + "object" + ] }, "PolicyName": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json index 774f60eaac..3ac680bbb5 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-policy.json @@ -32,7 +32,11 @@ "type": "string" }, "PolicyDocument": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "PolicyName": { "maxLength": 128, diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json index 97ecd54c13..a9f3d23252 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-role.json @@ -9,7 +9,9 @@ "additionalProperties": false, "properties": { "PolicyDocument": { - "type": "object" + "type": [ + "object" + ] }, "PolicyName": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json index 896f7efd04..e99187b0fb 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iam-user.json @@ -23,7 +23,9 @@ "additionalProperties": false, "properties": { "PolicyDocument": { - "type": "object" + "type": [ + "object" + ] }, "PolicyName": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json index 2fe7a81560..a329acfc74 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-layer.json index 2713480ea1..9c1034b219 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-layer.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-layer.json @@ -181,6 +181,7 @@ "type": "string" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-stack.json index a70f0a1a62..c091181181 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-stack.json +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-opsworks-stack.json @@ -148,6 +148,7 @@ "$ref": "#/definitions/Source" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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/cn_north_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py index 397f596c55..41a280d7cc 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -873,6 +873,7 @@ "aws-codedeploy-deploymentgroup.json", "aws-ec2-route.json", "aws-codecommit-repository.json", + "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", "aws-servicecatalog-launchtemplateconstraint.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-docdb-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-docdb-dbclusterparametergroup.json index b3e75356b1..53704a93eb 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-docdb-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-docdb-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-lakeformation-datalakesettings.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-lakeformation-datalakesettings.json index 87c5a06c6c..b89debb193 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-lakeformation-datalakesettings.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-lakeformation-datalakesettings.json @@ -69,7 +69,11 @@ "type": "string" }, "Parameters": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "TrustedResourceOwners": { "items": { diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py index bd2a6f1b8d..cf284ea8a1 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -817,7 +817,6 @@ "aws-cloudformation-stackset.json", "aws-ec2-route.json", "aws-codecommit-repository.json", - "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-iot-resourcespecificlogging.json", "aws-servicecatalog-launchtemplateconstraint.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-docdb-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-docdb-dbclusterparametergroup.json index b3e75356b1..53704a93eb 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-docdb-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-docdb-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lakeformation-datalakesettings.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lakeformation-datalakesettings.json index 87c5a06c6c..b89debb193 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lakeformation-datalakesettings.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-lakeformation-datalakesettings.json @@ -69,7 +69,11 @@ "type": "string" }, "Parameters": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "TrustedResourceOwners": { "items": { diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py index 7b4eaf746d..0b0beb3642 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py @@ -1565,6 +1565,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", @@ -1835,7 +1836,6 @@ "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", @@ -2332,6 +2332,7 @@ "aws-databrew-job.json", "aws-ec2-transitgatewaypeeringattachment.json", "aws-connect-queue.json", + "aws-ecr-repositorycreationtemplate.json", "aws-quicksight-template.json", "aws-supportapp-slackchannelconfiguration.json", "aws-iotwireless-fuotatask.json", diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecr-repositorycreationtemplate.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecr-repositorycreationtemplate.json deleted file mode 100644 index 57b0b79095..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ecr-repositorycreationtemplate.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Prefix" - ], - "definitions": { - "AppliedForItem": { - "enum": [ - "REPLICATION", - "PULL_THROUGH_CACHE" - ], - "type": "string" - }, - "EncryptionConfiguration": { - "additionalProperties": false, - "properties": { - "EncryptionType": { - "$ref": "#/definitions/EncryptionType" - }, - "KmsKey": { - "$ref": "#/definitions/KmsKey" - } - }, - "required": [ - "EncryptionType" - ], - "type": "object" - }, - "EncryptionType": { - "enum": [ - "AES256", - "KMS" - ], - "type": "string" - }, - "KmsKey": { - "maxLength": 2048, - "minLength": 1, - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ecr:CreateRepositoryCreationTemplate", - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" - ] - }, - "delete": { - "permissions": [ - "ecr:DeleteRepositoryCreationTemplate" - ] - }, - "list": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates" - ] - }, - "read": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates" - ] - }, - "update": { - "permissions": [ - "ecr:DescribeRepositoryCreationTemplates", - "ecr:UpdateRepositoryCreationTemplate", - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/Prefix" - ], - "properties": { - "AppliedFor": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AppliedForItem" - }, - "type": "array", - "uniqueItems": true - }, - "CreatedAt": { - "type": "string" - }, - "Description": { - "maxLength": 256, - "minLength": 0, - "type": "string" - }, - "EncryptionConfiguration": { - "$ref": "#/definitions/EncryptionConfiguration" - }, - "ImageTagMutability": { - "enum": [ - "MUTABLE", - "IMMUTABLE" - ], - "type": "string" - }, - "LifecyclePolicy": { - "maxLength": 30720, - "minLength": 100, - "type": "string" - }, - "Prefix": { - "maxLength": 256, - "minLength": 1, - "pattern": "^((?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*/?|ROOT)$", - "type": "string" - }, - "RepositoryPolicy": { - "type": "string" - }, - "ResourceTags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "type": "array", - "uniqueItems": true - }, - "UpdatedAt": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/CreatedAt", - "/properties/UpdatedAt" - ], - "required": [ - "Prefix", - "AppliedFor" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ecr.git", - "tagging": { - "taggable": false - }, - "typeName": "AWS::ECR::RepositoryCreationTemplate" -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediaconnect-gateway.json new file mode 100644 index 0000000000..3cab25d209 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_1/aws-mediaconnect-gateway.json @@ -0,0 +1,106 @@ +{ + "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/eu_central_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py index f843e0362d..91404292ed 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py @@ -724,7 +724,6 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-model.json index 5086400724..9504a897a5 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-model.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-model.json @@ -25,6 +25,7 @@ "type": "string" }, "Schema": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-restapi.json index 26d3794e3b..d08152f085 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-restapi.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-apigateway-restapi.json @@ -75,6 +75,7 @@ "uniqueItems": true }, "Body": { + "format": "json", "type": [ "object", "string" @@ -119,6 +120,7 @@ "type": "object" }, "Policy": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-pipeline.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-pipeline.json index 4575c69e2a..2b41420f66 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-pipeline.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-codepipeline-pipeline.json @@ -11,6 +11,7 @@ "$ref": "#/definitions/ActionTypeId" }, "Configuration": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpcendpoint.json index 0581d10d25..cc6c13dfbc 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpcendpoint.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-ec2-vpcendpoint.json @@ -12,7 +12,11 @@ "type": "string" }, "PolicyDocument": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "PrivateDnsEnabled": { "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-emr-securityconfiguration.json index 5860195c67..69af968123 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-emr-securityconfiguration.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-emr-securityconfiguration.json @@ -15,7 +15,11 @@ "type": "string" }, "SecurityConfiguration": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json index 2fe7a81560..a329acfc74 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-layer.json index 2713480ea1..9c1034b219 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-layer.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-layer.json @@ -181,6 +181,7 @@ "type": "string" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-stack.json index a70f0a1a62..c091181181 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-stack.json +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-opsworks-stack.json @@ -148,6 +148,7 @@ "$ref": "#/definitions/Source" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_north_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py index 73dad62484..f253fbb4f6 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py @@ -1013,6 +1013,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", @@ -1236,7 +1237,6 @@ "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", @@ -1436,9 +1436,9 @@ "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", @@ -1518,6 +1518,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", @@ -1852,6 +1853,7 @@ "aws-mediatailor-playbackconfiguration.json", "aws-pcaconnectorad-serviceprincipalname.json", "aws-datazone-projectmembership.json", + "aws-elasticbeanstalk-environment.json", "aws-cognito-userpoolclient.json", "aws-mediapackage-packaginggroup.json", "aws-wafregional-sqlinjectionmatchset.json", diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-elasticbeanstalk-environment.json deleted file mode 100644 index 2fa4fe9b33..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-elasticbeanstalk-environment.json +++ /dev/null @@ -1,183 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CNAMEPrefix", - "/properties/EnvironmentName", - "/properties/ApplicationName", - "/properties/SolutionStackName", - "/properties/Tier/Name", - "/properties/Tier/Type" - ], - "definitions": { - "OptionSetting": { - "additionalProperties": false, - "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { - "type": "string" - }, - "ResourceName": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Tier": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments", - "elasticbeanstalk:CreateEnvironment", - "iam:PassRole" - ], - "timeoutInMinutes": 120 - }, - "delete": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments", - "elasticbeanstalk:TerminateEnvironment" - ], - "timeoutInMinutes": 210 - }, - "list": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments" - ] - }, - "read": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments", - "elasticbeanstalk:DescribeConfigurationSettings", - "elasticbeanstalk:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments", - "elasticbeanstalk:UpdateEnvironment", - "elasticbeanstalk:UpdateTagsForResource", - "elasticbeanstalk:AssociateEnvironmentOperationsRole", - "elasticbeanstalk:DisassociateEnvironmentOperationsRole", - "iam:PassRole" - ], - "timeoutInMinutes": 300 - } - }, - "primaryIdentifier": [ - "/properties/EnvironmentName" - ], - "properties": { - "ApplicationName": { - "type": "string" - }, - "CNAMEPrefix": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "EndpointURL": { - "type": "string" - }, - "EnvironmentName": { - "type": "string" - }, - "OperationsRole": { - "type": "string" - }, - "OptionSettings": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/OptionSetting" - }, - "type": "array", - "uniqueItems": false - }, - "PlatformArn": { - "type": "string" - }, - "SolutionStackName": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TemplateName": { - "type": "string" - }, - "Tier": { - "$ref": "#/definitions/Tier" - }, - "VersionLabel": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/EndpointURL" - ], - "required": [ - "ApplicationName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ElasticBeanstalk::Environment", - "writeOnlyProperties": [ - "/properties/TemplateName", - "/properties/OptionSettings", - "/properties/OptionSettings/*/OptionName", - "/properties/OptionSettings/*/ResourceName", - "/properties/OptionSettings/*/Namespace", - "/properties/OptionSettings/*/Value" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-mediaconnect-gateway.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-mediaconnect-gateway.json new file mode 100644 index 0000000000..3cab25d209 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-mediaconnect-gateway.json @@ -0,0 +1,106 @@ +{ + "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/eu_north_1/aws-medialive-inputsecuritygroup.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-medialive-inputsecuritygroup.json index 34cbe5f1cf..1c6dcc4d8c 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-medialive-inputsecuritygroup.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-medialive-inputsecuritygroup.json @@ -22,7 +22,23 @@ "type": "string" }, "Tags": { - "type": "object" + "items": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "type": "array" }, "WhitelistRules": { "items": { diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbclusterparametergroup.json index 342bd6c0d3..196677fbf0 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbparametergroup.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbparametergroup.json index 682c0be2c3..40b22b45e5 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbparametergroup.json +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-neptune-dbparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbcluster.json deleted file mode 100644 index e0756eb08e..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_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/eu_north_1/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-rds-dbinstance.json deleted file mode 100644 index d92125d3b5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_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/eu_north_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-resiliencehub-app.json deleted file mode 100644 index 0c20764ed8..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_north_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/eu_north_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_south_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py index cc3848088a..0598068a55 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py @@ -811,7 +811,6 @@ "aws-apigateway-model.json", "aws-apigatewayv2-integrationresponse.json", "aws-ec2-networkacl.json", - "aws-lambda-eventsourcemapping.json", "aws-logs-resourcepolicy.json", "aws-servicecatalog-launchnotificationconstraint.json", "aws-dms-instanceprofile.json", @@ -833,6 +832,7 @@ "aws-config-storedquery.json", "aws-acmpca-permission.json", "aws-transfer-server.json", + "aws-apigateway-domainname.json", "aws-ecs-primarytaskset.json", "aws-fms-resourceset.json", "aws-autoscaling-autoscalinggroup.json", @@ -913,6 +913,7 @@ "aws-inspectorv2-filter.json", "aws-elasticache-replicationgroup.json", "aws-stepfunctions-statemachinealias.json", + "aws-rds-globalcluster.json", "aws-cloudformation-moduledefaultversion.json", "aws-applicationsignals-servicelevelobjective.json", "aws-route53profiles-profileresourceassociation.json", @@ -964,6 +965,7 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", + "aws-ses-configurationset.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-codedeploy-deploymentgroup.json", @@ -974,7 +976,6 @@ "aws-fis-experimenttemplate.json", "aws-codecommit-repository.json", "aws-cloudformation-hookversion.json", - "aws-rolesanywhere-profile.json", "aws-xray-resourcepolicy.json", "aws-servicecatalog-launchtemplateconstraint.json", "aws-wafv2-loggingconfiguration.json", @@ -1131,6 +1132,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", @@ -1448,6 +1450,7 @@ "aws-networkmanager-linkassociation.json", "aws-cognito-userpoolriskconfigurationattachment.json", "aws-pcaconnectorad-serviceprincipalname.json", + "aws-elasticbeanstalk-environment.json", "aws-cognito-userpoolclient.json", "aws-wafregional-sqlinjectionmatchset.json", "aws-lambda-version.json", diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigateway-domainname.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigateway-domainname.json deleted file mode 100644 index 1eb496645f..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigateway-domainname.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/DomainName" - ], - "definitions": { - "EndpointConfiguration": { - "additionalProperties": false, - "properties": { - "Types": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "MutualTlsAuthentication": { - "additionalProperties": false, - "properties": { - "TruststoreUri": { - "type": "string" - }, - "TruststoreVersion": { - "type": "string" - } - }, - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "apigateway:*" - ] - }, - "delete": { - "permissions": [ - "apigateway:*" - ] - }, - "list": { - "permissions": [ - "apigateway:*" - ] - }, - "read": { - "permissions": [ - "apigateway:*" - ] - }, - "update": { - "permissions": [ - "apigateway:*" - ] - } - }, - "primaryIdentifier": [ - "/properties/DomainName" - ], - "properties": { - "CertificateArn": { - "type": "string" - }, - "DistributionDomainName": { - "type": "string" - }, - "DistributionHostedZoneId": { - "type": "string" - }, - "DomainName": { - "type": "string" - }, - "EndpointConfiguration": { - "$ref": "#/definitions/EndpointConfiguration" - }, - "MutualTlsAuthentication": { - "$ref": "#/definitions/MutualTlsAuthentication" - }, - "OwnershipVerificationCertificateArn": { - "type": "string" - }, - "RegionalCertificateArn": { - "type": "string" - }, - "RegionalDomainName": { - "type": "string" - }, - "RegionalHostedZoneId": { - "type": "string" - }, - "SecurityPolicy": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array" - } - }, - "readOnlyProperties": [ - "/properties/RegionalHostedZoneId", - "/properties/DistributionDomainName", - "/properties/RegionalDomainName", - "/properties/DistributionHostedZoneId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "typeName": "AWS::ApiGateway::DomainName" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigatewayv2-vpclink.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigatewayv2-vpclink.json index 7e1ebb78bc..6122cf0cee 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigatewayv2-vpclink.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-apigatewayv2-vpclink.json @@ -31,10 +31,13 @@ "uniqueItems": false }, "Tags": { - "type": [ - "object", - "string" - ] + "additionalProperties": false, + "patternProperties": { + ".*": { + "type": "string" + } + }, + "type": "object" } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-docdb-dbclusterparametergroup.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-docdb-dbclusterparametergroup.json index b3e75356b1..53704a93eb 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-docdb-dbclusterparametergroup.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-docdb-dbclusterparametergroup.json @@ -40,6 +40,7 @@ "type": "string" }, "Parameters": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-elasticbeanstalk-environment.json deleted file mode 100644 index 2fa4fe9b33..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-elasticbeanstalk-environment.json +++ /dev/null @@ -1,183 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/CNAMEPrefix", - "/properties/EnvironmentName", - "/properties/ApplicationName", - "/properties/SolutionStackName", - "/properties/Tier/Name", - "/properties/Tier/Type" - ], - "definitions": { - "OptionSetting": { - "additionalProperties": false, - "properties": { - "Namespace": { - "type": "string" - }, - "OptionName": { - "type": "string" - }, - "ResourceName": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Namespace", - "OptionName" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ], - "type": "object" - }, - "Tier": { - "additionalProperties": false, - "properties": { - "Name": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Version": { - "type": "string" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments", - "elasticbeanstalk:CreateEnvironment", - "iam:PassRole" - ], - "timeoutInMinutes": 120 - }, - "delete": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments", - "elasticbeanstalk:TerminateEnvironment" - ], - "timeoutInMinutes": 210 - }, - "list": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments" - ] - }, - "read": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments", - "elasticbeanstalk:DescribeConfigurationSettings", - "elasticbeanstalk:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "elasticbeanstalk:DescribeEnvironments", - "elasticbeanstalk:UpdateEnvironment", - "elasticbeanstalk:UpdateTagsForResource", - "elasticbeanstalk:AssociateEnvironmentOperationsRole", - "elasticbeanstalk:DisassociateEnvironmentOperationsRole", - "iam:PassRole" - ], - "timeoutInMinutes": 300 - } - }, - "primaryIdentifier": [ - "/properties/EnvironmentName" - ], - "properties": { - "ApplicationName": { - "type": "string" - }, - "CNAMEPrefix": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "EndpointURL": { - "type": "string" - }, - "EnvironmentName": { - "type": "string" - }, - "OperationsRole": { - "type": "string" - }, - "OptionSettings": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/OptionSetting" - }, - "type": "array", - "uniqueItems": false - }, - "PlatformArn": { - "type": "string" - }, - "SolutionStackName": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "TemplateName": { - "type": "string" - }, - "Tier": { - "$ref": "#/definitions/Tier" - }, - "VersionLabel": { - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/EndpointURL" - ], - "required": [ - "ApplicationName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::ElasticBeanstalk::Environment", - "writeOnlyProperties": [ - "/properties/TemplateName", - "/properties/OptionSettings", - "/properties/OptionSettings/*/OptionName", - "/properties/OptionSettings/*/ResourceName", - "/properties/OptionSettings/*/Namespace", - "/properties/OptionSettings/*/Value" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-policy.json index 2fe7a81560..a329acfc74 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-eventsourcemapping.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-eventsourcemapping.json new file mode 100644 index 0000000000..fb00f52217 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-lambda-eventsourcemapping.json @@ -0,0 +1,365 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/EventSourceArn", + "/properties/StartingPosition", + "/properties/StartingPositionTimestamp", + "/properties/SelfManagedEventSource", + "/properties/AmazonManagedKafkaEventSourceConfig", + "/properties/SelfManagedKafkaEventSourceConfig" + ], + "definitions": { + "AmazonManagedKafkaEventSourceConfig": { + "additionalProperties": false, + "properties": { + "ConsumerGroupId": { + "$ref": "#/definitions/ConsumerGroupId" + } + }, + "type": "object" + }, + "ConsumerGroupId": { + "maxLength": 200, + "minLength": 1, + "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", + "type": "string" + }, + "DestinationConfig": { + "additionalProperties": false, + "properties": { + "OnFailure": { + "$ref": "#/definitions/OnFailure" + } + }, + "type": "object" + }, + "DocumentDBEventSourceConfig": { + "additionalProperties": false, + "properties": { + "CollectionName": { + "maxLength": 57, + "minLength": 1, + "type": "string" + }, + "DatabaseName": { + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "FullDocument": { + "enum": [ + "UpdateLookup", + "Default" + ], + "type": "string" + } + }, + "type": "object" + }, + "Endpoints": { + "additionalProperties": false, + "properties": { + "KafkaBootstrapServers": { + "items": { + "maxLength": 300, + "minLength": 1, + "pattern": "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}", + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "Filter": { + "additionalProperties": false, + "properties": { + "Pattern": { + "maxLength": 4096, + "minLength": 0, + "pattern": ".*", + "type": "string" + } + }, + "type": "object" + }, + "FilterCriteria": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/Filter" + }, + "maxItems": 20, + "minItems": 1, + "type": "array", + "uniqueItems": true + } + }, + "type": "object" + }, + "MaximumConcurrency": { + "maximum": 1000, + "minimum": 2, + "type": "integer" + }, + "OnFailure": { + "additionalProperties": false, + "properties": { + "Destination": { + "maxLength": 1024, + "minLength": 12, + "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", + "type": "string" + } + }, + "type": "object" + }, + "ScalingConfig": { + "additionalProperties": false, + "properties": { + "MaximumConcurrency": { + "$ref": "#/definitions/MaximumConcurrency" + } + }, + "type": "object" + }, + "SelfManagedEventSource": { + "additionalProperties": false, + "properties": { + "Endpoints": { + "$ref": "#/definitions/Endpoints" + } + }, + "type": "object" + }, + "SelfManagedKafkaEventSourceConfig": { + "additionalProperties": false, + "properties": { + "ConsumerGroupId": { + "$ref": "#/definitions/ConsumerGroupId" + } + }, + "type": "object" + }, + "SourceAccessConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "enum": [ + "BASIC_AUTH", + "VPC_SUBNET", + "VPC_SECURITY_GROUP", + "SASL_SCRAM_512_AUTH", + "SASL_SCRAM_256_AUTH", + "VIRTUAL_HOST", + "CLIENT_CERTIFICATE_TLS_AUTH", + "SERVER_ROOT_CA_CERTIFICATE" + ], + "type": "string" + }, + "URI": { + "maxLength": 200, + "minLength": 1, + "pattern": "[a-zA-Z0-9-\\/*:_+=.@-]*", + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "lambda:CreateEventSourceMapping", + "lambda:GetEventSourceMapping" + ] + }, + "delete": { + "permissions": [ + "lambda:DeleteEventSourceMapping", + "lambda:GetEventSourceMapping" + ] + }, + "list": { + "permissions": [ + "lambda:ListEventSourceMappings" + ] + }, + "read": { + "permissions": [ + "lambda:GetEventSourceMapping" + ] + }, + "update": { + "permissions": [ + "lambda:UpdateEventSourceMapping", + "lambda:GetEventSourceMapping" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "AmazonManagedKafkaEventSourceConfig": { + "$ref": "#/definitions/AmazonManagedKafkaEventSourceConfig" + }, + "BatchSize": { + "maximum": 10000, + "minimum": 1, + "type": "integer" + }, + "BisectBatchOnFunctionError": { + "type": "boolean" + }, + "DestinationConfig": { + "$ref": "#/definitions/DestinationConfig" + }, + "DocumentDBEventSourceConfig": { + "$ref": "#/definitions/DocumentDBEventSourceConfig" + }, + "Enabled": { + "type": "boolean" + }, + "EventSourceArn": { + "maxLength": 1024, + "minLength": 12, + "pattern": "arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-])+:([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)", + "type": "string" + }, + "FilterCriteria": { + "$ref": "#/definitions/FilterCriteria" + }, + "FunctionName": { + "maxLength": 140, + "minLength": 1, + "pattern": "(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?(-iso([a-z])?)?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?", + "type": "string" + }, + "FunctionResponseTypes": { + "items": { + "enum": [ + "ReportBatchItemFailures" + ], + "type": "string" + }, + "maxLength": 1, + "minLength": 0, + "type": "array", + "uniqueItems": true + }, + "Id": { + "maxLength": 36, + "minLength": 36, + "pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}", + "type": "string" + }, + "KmsKeyArn": { + "maxLength": 2048, + "minLength": 12, + "pattern": "(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()", + "type": "string" + }, + "MaximumBatchingWindowInSeconds": { + "maximum": 300, + "minimum": 0, + "type": "integer" + }, + "MaximumRecordAgeInSeconds": { + "maximum": 604800, + "minimum": -1, + "type": "integer" + }, + "MaximumRetryAttempts": { + "maximum": 10000, + "minimum": -1, + "type": "integer" + }, + "ParallelizationFactor": { + "maximum": 10, + "minimum": 1, + "type": "integer" + }, + "Queues": { + "items": { + "maxLength": 1000, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "ScalingConfig": { + "$ref": "#/definitions/ScalingConfig" + }, + "SelfManagedEventSource": { + "$ref": "#/definitions/SelfManagedEventSource" + }, + "SelfManagedKafkaEventSourceConfig": { + "$ref": "#/definitions/SelfManagedKafkaEventSourceConfig" + }, + "SourceAccessConfigurations": { + "items": { + "$ref": "#/definitions/SourceAccessConfiguration" + }, + "maxItems": 22, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "StartingPosition": { + "enum": [ + "AT_TIMESTAMP", + "LATEST", + "TRIM_HORIZON" + ], + "maxLength": 12, + "minLength": 6, + "pattern": "(LATEST|TRIM_HORIZON|AT_TIMESTAMP)+", + "type": "string" + }, + "StartingPositionTimestamp": { + "type": "number" + }, + "Topics": { + "items": { + "maxLength": 249, + "minLength": 1, + "pattern": "^[^.]([a-zA-Z0-9\\-_.]+)", + "type": "string" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "TumblingWindowInSeconds": { + "maximum": 900, + "minimum": 0, + "type": "integer" + } + }, + "propertyTransform": { + "/properties/StartingPositionTimestamp": "StartingPositionTimestamp * 1000" + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "required": [ + "FunctionName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": false, + "tagUpdatable": false, + "taggable": false + }, + "typeName": "AWS::Lambda::EventSourceMapping" +} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-opsworks-layer.json index 2713480ea1..9c1034b219 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-opsworks-layer.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-opsworks-layer.json @@ -181,6 +181,7 @@ "type": "string" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-opsworks-stack.json index a70f0a1a62..c091181181 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-opsworks-stack.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-opsworks-stack.json @@ -148,6 +148,7 @@ "$ref": "#/definitions/Source" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbcluster.json index 62a3797fcd..e0756eb08e 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbcluster.json +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-dbcluster.json @@ -302,6 +302,9 @@ "EnableIAMDatabaseAuthentication": { "type": "boolean" }, + "EnableLocalWriteForwarding": { + "type": "boolean" + }, "Endpoint": { "$ref": "#/definitions/Endpoint" }, diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-globalcluster.json deleted file mode 100644 index fccf366023..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-rds-globalcluster.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/GlobalClusterIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/StorageEncrypted", - "/properties/Engine" - ], - "handlers": { - "create": { - "permissions": [ - "rds:CreateGlobalCluster", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters" - ] - }, - "delete": { - "permissions": [ - "rds:DescribeGlobalClusters", - "rds:DeleteGlobalCluster", - "rds:RemoveFromGlobalCluster", - "rds:DescribeDBClusters" - ] - }, - "list": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "read": { - "permissions": [ - "rds:DescribeGlobalClusters" - ] - }, - "update": { - "permissions": [ - "rds:ModifyGlobalCluster", - "rds:DescribeGlobalClusters" - ] - } - }, - "oneOf": [ - { - "required": [ - "SourceDBClusterIdentifier" - ] - }, - { - "required": [ - "Engine" - ] - } - ], - "primaryIdentifier": [ - "/properties/GlobalClusterIdentifier" - ], - "properties": { - "DeletionProtection": { - "type": "boolean" - }, - "Engine": { - "enum": [ - "aurora", - "aurora-mysql", - "aurora-postgresql" - ], - "type": "string" - }, - "EngineVersion": { - "type": "string" - }, - "GlobalClusterIdentifier": { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "SourceDBClusterIdentifier": { - "oneOf": [ - { - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$" - }, - { - "pattern": "^(?=.{40,128}$)arn.*" - } - ], - "type": "string" - }, - "StorageEncrypted": { - "type": "boolean" - } - }, - "propertyTransform": { - "/properties/GlobalClusterIdentifier": "$lowercase(GlobalClusterIdentifier)" - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "typeName": "AWS::RDS::GlobalCluster" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-resiliencehub-app.json deleted file mode 100644 index 0c20764ed8..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_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/eu_south_1/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_south_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ses-configurationset.json deleted file mode 100644 index 7e6285d5ea..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_1/aws-ses-configurationset.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name" - ], - "definitions": { - "DashboardOptions": { - "additionalProperties": false, - "properties": { - "EngagementMetrics": { - "pattern": "ENABLED|DISABLED", - "type": "string" - } - }, - "required": [ - "EngagementMetrics" - ], - "type": "object" - }, - "DeliveryOptions": { - "additionalProperties": false, - "properties": { - "SendingPoolName": { - "type": "string" - }, - "TlsPolicy": { - "pattern": "REQUIRE|OPTIONAL", - "type": "string" - } - }, - "type": "object" - }, - "GuardianOptions": { - "additionalProperties": false, - "properties": { - "OptimizedSharedDelivery": { - "pattern": "ENABLED|DISABLED", - "type": "string" - } - }, - "required": [ - "OptimizedSharedDelivery" - ], - "type": "object" - }, - "ReputationOptions": { - "additionalProperties": false, - "properties": { - "ReputationMetricsEnabled": { - "pattern": "true|false", - "type": "boolean" - } - }, - "type": "object" - }, - "SendingOptions": { - "additionalProperties": false, - "properties": { - "SendingEnabled": { - "pattern": "true|false", - "type": "boolean" - } - }, - "type": "object" - }, - "SuppressionOptions": { - "additionalProperties": false, - "properties": { - "SuppressedReasons": { - "insertionOrder": false, - "items": { - "pattern": "BOUNCE|COMPLAINT", - "type": "string" - }, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "TrackingOptions": { - "additionalProperties": false, - "properties": { - "CustomRedirectDomain": { - "type": "string" - } - }, - "type": "object" - }, - "VdmOptions": { - "additionalProperties": false, - "properties": { - "DashboardOptions": { - "$ref": "#/definitions/DashboardOptions" - }, - "GuardianOptions": { - "$ref": "#/definitions/GuardianOptions" - } - }, - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "ses:CreateConfigurationSet" - ] - }, - "delete": { - "permissions": [ - "ses:DeleteConfigurationSet" - ] - }, - "list": { - "permissions": [ - "ses:ListConfigurationSets" - ] - }, - "read": { - "permissions": [ - "ses:GetConfigurationSet", - "ses:DescribeConfigurationSet" - ] - }, - "update": { - "permissions": [ - "ses:PutConfigurationSetTrackingOptions", - "ses:PutConfigurationSetDeliveryOptions", - "ses:PutConfigurationSetReputationOptions", - "ses:PutConfigurationSetSendingOptions", - "ses:PutConfigurationSetSuppressionOptions", - "ses:PutConfigurationSetVdmOptions" - ] - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "DeliveryOptions": { - "$ref": "#/definitions/DeliveryOptions" - }, - "Name": { - "pattern": "^[a-zA-Z0-9_-]{1,64}$", - "type": "string" - }, - "ReputationOptions": { - "$ref": "#/definitions/ReputationOptions" - }, - "SendingOptions": { - "$ref": "#/definitions/SendingOptions" - }, - "SuppressionOptions": { - "$ref": "#/definitions/SuppressionOptions" - }, - "TrackingOptions": { - "$ref": "#/definitions/TrackingOptions" - }, - "VdmOptions": { - "$ref": "#/definitions/VdmOptions" - } - }, - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ses.git", - "taggable": false, - "typeName": "AWS::SES::ConfigurationSet" -} diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py index 1043ccdb07..14e8e6a035 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py @@ -607,6 +607,7 @@ "aws-appconfig-extensionassociation.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", @@ -731,7 +732,6 @@ "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", @@ -790,6 +790,7 @@ "aws-logs-querydefinition.json", "aws-securityhub-productsubscription.json", "aws-datasync-locationnfs.json", + "aws-sagemaker-domain.json", "aws-certificatemanager-certificate.json", "aws-sdb-domain.json", "aws-ec2-subnetroutetableassociation.json", @@ -888,6 +889,7 @@ "aws-redshift-cluster.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", diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-model.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-model.json index 5086400724..9504a897a5 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-model.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-model.json @@ -25,6 +25,7 @@ "type": "string" }, "Schema": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-restapi.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-restapi.json index 26d3794e3b..d08152f085 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-restapi.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-apigateway-restapi.json @@ -75,6 +75,7 @@ "uniqueItems": true }, "Body": { + "format": "json", "type": [ "object", "string" @@ -119,6 +120,7 @@ "type": "object" }, "Policy": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpcendpoint.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpcendpoint.json index 0581d10d25..cc6c13dfbc 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpcendpoint.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-ec2-vpcendpoint.json @@ -12,7 +12,11 @@ "type": "string" }, "PolicyDocument": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] }, "PrivateDnsEnabled": { "type": "boolean" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-emr-securityconfiguration.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-emr-securityconfiguration.json index 5860195c67..69af968123 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-emr-securityconfiguration.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-emr-securityconfiguration.json @@ -15,7 +15,11 @@ "type": "string" }, "SecurityConfiguration": { - "type": "object" + "format": "json", + "type": [ + "object", + "string" + ] } }, "readOnlyProperties": [ diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json index 2fe7a81560..a329acfc74 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-iot-policy.json @@ -15,6 +15,7 @@ "type": "string" }, "PolicyDocument": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-layer.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-layer.json index 2713480ea1..9c1034b219 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-layer.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-layer.json @@ -181,6 +181,7 @@ "type": "string" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-stack.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-stack.json index a70f0a1a62..c091181181 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-stack.json +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-opsworks-stack.json @@ -148,6 +148,7 @@ "$ref": "#/definitions/Source" }, "CustomJson": { + "format": "json", "type": [ "object", "string" diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json deleted file mode 100644 index 62a3797fcd..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbcluster.json +++ /dev/null @@ -1,500 +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" - }, - "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_south_2/aws-rds-dbinstance.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rds-dbinstance.json deleted file mode 100644 index d92125d3b5..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_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/eu_south_2/aws-rolesanywhere-profile.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rolesanywhere-profile.json new file mode 100644 index 0000000000..9781637c58 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-rolesanywhere-profile.json @@ -0,0 +1,177 @@ +{ + "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_south_2/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-domain.json deleted file mode 100644 index b1615520a0..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_south_2/aws-sagemaker-domain.json +++ /dev/null @@ -1,774 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "properties": { - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "DockerSettings": { - "additionalProperties": false, - "properties": { - "EnableDockerAccess": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "VpcOnlyTrustedAccounts": { - "insertionOrder": false, - "items": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "maxItems": 10, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "DomainSettings": { - "additionalProperties": false, - "properties": { - "DockerSettings": { - "$ref": "#/definitions/DockerSettings" - }, - "RStudioServerProDomainSettings": { - "$ref": "#/definitions/RStudioServerProDomainSettings" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 3, - "minItems": 1, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "EFSFileSystemConfig": { - "additionalProperties": false, - "properties": { - "FileSystemId": { - "maxLength": 21, - "minLength": 11, - "pattern": "^(fs-[0-9a-f]{8,})$", - "type": "string" - }, - "FileSystemPath": { - "maxLength": 256, - "minLength": 1, - "pattern": "^\\/\\S*$", - "type": "string" - } - }, - "required": [ - "FileSystemId" - ], - "type": "object" - }, - "JupyterLabAppSettings": { - "additionalProperties": false, - "properties": { - "CodeRepositories": { - "items": { - "$ref": "#/definitions/CodeRepository" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "JupyterServerAppSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "KernelGatewayAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RSessionAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - } - }, - "type": "object" - }, - "RStudioServerProAppSettings": { - "additionalProperties": false, - "properties": { - "AccessStatus": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "UserGroup": { - "enum": [ - "R_STUDIO_ADMIN", - "R_STUDIO_USER" - ], - "type": "string" - } - }, - "type": "object" - }, - "RStudioServerProDomainSettings": { - "additionalProperties": false, - "properties": { - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "DomainExecutionRoleArn": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "RStudioConnectUrl": { - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - }, - "RStudioPackageManagerUrl": { - "pattern": "^(https:|http:|www\\.)\\S*", - "type": "string" - } - }, - "required": [ - "DomainExecutionRoleArn" - ], - "type": "object" - }, - "ResourceSpec": { - "additionalProperties": false, - "properties": { - "InstanceType": { - "enum": [ - "system", - "ml.t3.micro", - "ml.t3.small", - "ml.t3.medium", - "ml.t3.large", - "ml.t3.xlarge", - "ml.t3.2xlarge", - "ml.m5.large", - "ml.m5.xlarge", - "ml.m5.2xlarge", - "ml.m5.4xlarge", - "ml.m5.8xlarge", - "ml.m5.12xlarge", - "ml.m5.16xlarge", - "ml.m5.24xlarge", - "ml.c5.large", - "ml.c5.xlarge", - "ml.c5.2xlarge", - "ml.c5.4xlarge", - "ml.c5.9xlarge", - "ml.c5.12xlarge", - "ml.c5.18xlarge", - "ml.c5.24xlarge", - "ml.p3.2xlarge", - "ml.p3.8xlarge", - "ml.p3.16xlarge", - "ml.g4dn.xlarge", - "ml.g4dn.2xlarge", - "ml.g4dn.4xlarge", - "ml.g4dn.8xlarge", - "ml.g4dn.12xlarge", - "ml.g4dn.16xlarge", - "ml.r5.large", - "ml.r5.xlarge", - "ml.r5.2xlarge", - "ml.r5.4xlarge", - "ml.r5.8xlarge", - "ml.r5.12xlarge", - "ml.r5.16xlarge", - "ml.r5.24xlarge", - "ml.p3dn.24xlarge", - "ml.m5d.large", - "ml.m5d.xlarge", - "ml.m5d.2xlarge", - "ml.m5d.4xlarge", - "ml.m5d.8xlarge", - "ml.m5d.12xlarge", - "ml.m5d.16xlarge", - "ml.m5d.24xlarge", - "ml.g5.xlarge", - "ml.g5.2xlarge", - "ml.g5.4xlarge", - "ml.g5.8xlarge", - "ml.g5.12xlarge", - "ml.g5.16xlarge", - "ml.g5.24xlarge", - "ml.g5.48xlarge", - "ml.p4d.24xlarge", - "ml.p4de.24xlarge", - "ml.geospatial.interactive", - "ml.trn1.2xlarge", - "ml.trn1.32xlarge", - "ml.trn1n.32xlarge" - ], - "type": "string" - }, - "LifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "SageMakerImageArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$", - "type": "string" - }, - "SageMakerImageVersionArn": { - "maxLength": 256, - "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$", - "type": "string" - } - }, - "type": "object" - }, - "SharingSettings": { - "additionalProperties": false, - "properties": { - "NotebookOutputOption": { - "enum": [ - "Allowed", - "Disabled" - ], - "type": "string" - }, - "S3KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "S3OutputPath": { - "maxLength": 1024, - "pattern": "^(https|s3)://([^/]+)/?(.*)$", - "type": "string" - } - }, - "type": "object" - }, - "SpaceEbsVolumeSizeInGb": { - "maximum": 16384, - "minimum": 5, - "type": "integer" - }, - "StudioLifecycleConfigArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*", - "type": "string" - }, - "Tag": { - "additionalProperties": false, - "properties": { - "Key": { - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - }, - "UserSettings": { - "additionalProperties": false, - "properties": { - "CodeEditorAppSettings": { - "$ref": "#/definitions/CodeEditorAppSettings" - }, - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "DefaultLandingUri": { - "maxLength": 1023, - "type": "string" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "RSessionAppSettings": { - "$ref": "#/definitions/RSessionAppSettings" - }, - "RStudioServerProAppSettings": { - "$ref": "#/definitions/RStudioServerProAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SharingSettings": { - "$ref": "#/definitions/SharingSettings" - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - }, - "StudioWebPortal": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - } - }, - "handlers": { - "create": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:CreateDomain", - "sagemaker:DescribeDomain", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "efs:CreateFileSystem", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKeyWithoutPlainText" - ] - }, - "delete": { - "permissions": [ - "sagemaker:DeleteApp", - "sagemaker:DeleteDomain", - "sagemaker:DescribeDomain" - ] - }, - "list": { - "permissions": [ - "sagemaker:ListDomains" - ] - }, - "read": { - "permissions": [ - "sagemaker:DescribeDomain" - ] - }, - "update": { - "permissions": [ - "sagemaker:CreateApp", - "sagemaker:UpdateDomain", - "sagemaker:DescribeDomain", - "sagemaker:DescribeImage", - "sagemaker:DescribeImageVersion", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/DomainId" - ], - "properties": { - "AppNetworkAccessType": { - "enum": [ - "PublicInternetOnly", - "VpcOnly" - ], - "type": "string" - }, - "AppSecurityGroupManagement": { - "enum": [ - "Service", - "Customer" - ], - "type": "string" - }, - "AuthMode": { - "enum": [ - "SSO", - "IAM" - ], - "type": "string" - }, - "DefaultSpaceSettings": { - "$ref": "#/definitions/DefaultSpaceSettings" - }, - "DefaultUserSettings": { - "$ref": "#/definitions/UserSettings" - }, - "DomainArn": { - "maxLength": 256, - "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:domain/.*", - "type": "string" - }, - "DomainId": { - "maxLength": 63, - "pattern": "^d-(-*[a-z0-9])+", - "type": "string" - }, - "DomainName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "DomainSettings": { - "$ref": "#/definitions/DomainSettings" - }, - "HomeEfsFileSystemId": { - "maxLength": 32, - "type": "string" - }, - "KmsKeyId": { - "maxLength": 2048, - "pattern": ".*", - "type": "string" - }, - "SecurityGroupIdForDomainBoundary": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "SingleSignOnApplicationArn": { - "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::[0-9]+:application/[a-zA-Z0-9-_.]+/apl-[a-zA-Z0-9]+$", - "type": "string" - }, - "SingleSignOnManagedApplicationInstanceId": { - "maxLength": 256, - "type": "string" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 16, - "minItems": 1, - "type": "array", - "uniqueItems": false - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "maxItems": 50, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "Url": { - "maxLength": 1024, - "type": "string" - }, - "VpcId": { - "format": "AWS::EC2::VPC.Id", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/DomainArn", - "/properties/Url", - "/properties/DomainId", - "/properties/HomeEfsFileSystemId", - "/properties/SecurityGroupIdForDomainBoundary", - "/properties/SingleSignOnManagedApplicationInstanceId", - "/properties/SingleSignOnApplicationArn" - ], - "required": [ - "AuthMode", - "DefaultUserSettings", - "DomainName", - "SubnetIds", - "VpcId" - ], - "typeName": "AWS::SageMaker::Domain", - "writeOnlyProperties": [ - "/properties/Tags" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py index 0b28f804d4..35d0ba3a4b 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py @@ -1456,7 +1456,6 @@ "aws-wafregional-webacl.json", "aws-sagemaker-inferencecomponent.json", "aws-logs-metricfilter.json", - "aws-lambda-function.json", "aws-sns-topic.json", "aws-backup-backupselection.json", "aws-datasync-locationfsxlustre.json", @@ -1543,7 +1542,6 @@ "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", @@ -1804,6 +1802,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/eu_west_1/aws-lambda-function.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-lambda-function.json new file mode 100644 index 0000000000..885ae9bc98 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_1/aws-lambda-function.json @@ -0,0 +1,548 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/FunctionName" + ], + "definitions": { + "Code": { + "additionalProperties": false, + "properties": { + "ImageUri": { + "type": "string" + }, + "S3Bucket": { + "maxLength": 63, + "minLength": 3, + "pattern": "^[0-9A-Za-z\\.\\-_]*(?