diff --git a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json index bc16d77a94..d8ad880e10 100644 --- a/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/164e1bfc2823fbd49d8d0e7163ebf32b2b6653d7edfe98a64577daae0b481c38.meta.json @@ -1 +1 @@ -{"etag": "\"526b6a27794ad8148f5768d1bfc46aef\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"6d475ec324030bce2de5f9f18e4864ca\"", "url": "https://schema.cloudformation.cn-north-1.amazonaws.com.cn/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json index 846ff1ed28..6162f22ef2 100644 --- a/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/23be708e675cb6098b08969e4dbbc3f54cfc32461d10e077e7e5de1fc25d8b8f.meta.json @@ -1 +1 @@ -{"etag": "\"b0818651b985279adea0d4bd31fd23c5\"", "url": "https://schema.cloudformation.us-gov-west-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"0834cac6bee64373374bfedf13a291bc\"", "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 295a73e247..422224d6d5 100644 --- a/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/26cf4521b683d3267844178a6bcd1d0ad3fe2e7838c23f6acd054944cb2b1618.meta.json @@ -1 +1 @@ -{"etag": "\"cafc6210e321f41ef5eddd36b651930f\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"834f790a8008964e76e447e2a8432aea\"", "url": "https://schema.cloudformation.me-central-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json index f7cdc8c4ce..764e00ec00 100644 --- a/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/371e40c90b2e47c99f6e275e060ee83a3fbf0a0fb76625ba46dbe42abd34333c.meta.json @@ -1 +1 @@ -{"etag": "\"fab10b363974326d034e45eea1e780f0\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} +{"etag": "\"56da98caf2caf0446b99dcc79f19b0a7\"", "url": "https://schema.cloudformation.cn-northwest-1.amazonaws.com.cn/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json index c3ebcf7662..f9f61dac90 100644 --- a/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/6316ae24f21cb620947aa250bebbee69548d44cc32e246ec9d7742088a2c17f8.meta.json @@ -1 +1 @@ -{"etag": "\"9e9dfb17c3944c1f7c3e47fbc989f5d3\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"9fde2ffcea94e247c223619599ac22ba\"", "url": "https://schema.cloudformation.us-east-2.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json index 5407b83737..bc1e798bc4 100644 --- a/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f1896c9151984eec294af1eddf64260f6cd7e4ced378cacdb93f76ed227b5c5d.meta.json @@ -1 +1 @@ -{"etag": "\"c065fa9efdfc9b0c32dfccb53437fdb5\"", "url": "https://schema.cloudformation.us-west-2.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"241e75fbdd254447d51e3e9e7991d11f\"", "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 b21b2a0d18..22ab0eb61d 100644 --- a/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json +++ b/src/cfnlint/data/DownloadsMetadata/f54eee6f8ad9619f41835b700369cdbb41c64a9c91b2fa5b4928c0d9b2f780b0.meta.json @@ -1 +1 @@ -{"etag": "\"4692cb055dae96b5a99b20ed17092c22\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} +{"etag": "\"a48bf3fc3f1917a864d583600f4bf38d\"", "url": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip"} diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_imagebuilder_containerrecipe/__init__.py b/src/cfnlint/data/schemas/patches/providers/all/aws_imagebuilder_containerrecipe/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/providers/all/aws_imagebuilder_containerrecipe/instanceconfiguration.json b/src/cfnlint/data/schemas/patches/providers/all/aws_imagebuilder_containerrecipe/instanceconfiguration.json new file mode 100644 index 0000000000..d188ce4f05 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/providers/all/aws_imagebuilder_containerrecipe/instanceconfiguration.json @@ -0,0 +1,14 @@ +[ + { + "op": "test", + "path": "/properties/InstanceConfiguration", + "value": { + "$ref": "#/definitions/InstanceConfiguration", + "additionalProperties": false + } + }, + { + "op": "remove", + "path": "/properties/InstanceConfiguration/additionalProperties" + } +] 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 231fcfc9d5..adb0ad0520 100644 --- a/src/cfnlint/data/schemas/providers/af_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/af_south_1/__init__.py @@ -885,7 +885,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", @@ -1014,7 +1013,6 @@ "aws-fis-targetaccountconfiguration.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", - "aws-ses-configurationset.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", @@ -1190,7 +1188,6 @@ "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/us_west_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json similarity index 97% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-controltower-enabledcontrol.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json index 1999a1aacf..75018496ac 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-controltower-enabledcontrol.json @@ -91,8 +91,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] }, "delete": { "permissions": [ @@ -106,8 +105,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] }, "list": { "handlerSchema": { @@ -146,8 +144,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] } }, "primaryIdentifier": [ diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-resiliencehub-app.json similarity index 98% rename from src/cfnlint/data/schemas/providers/us_west_2/aws-resiliencehub-app.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-resiliencehub-app.json index 7b24e3ece7..0c20764ed8 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-resiliencehub-app.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-resiliencehub-app.json @@ -174,8 +174,7 @@ "resiliencehub:DescribeApp", "resiliencehub:DescribeAppVersionTemplate", "resiliencehub:ListAppVersionResourceMappings", - "resiliencehub:ListTagsForResource", - "resiliencehub:ListAppVersions" + "resiliencehub:ListTagsForResource" ] }, "update": { diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/af_south_1/aws-ses-configurationset.json similarity index 98% rename from src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ses-configurationset.json rename to src/cfnlint/data/schemas/providers/af_south_1/aws-ses-configurationset.json index e5780caa5e..7e6285d5ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-ses-configurationset.json +++ b/src/cfnlint/data/schemas/providers/af_south_1/aws-ses-configurationset.json @@ -85,9 +85,6 @@ "type": "string" } }, - "required": [ - "CustomRedirectDomain" - ], "type": "object" }, "VdmOptions": { 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 6492feefd2..ba4c6c4854 100644 --- a/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_east_1/__init__.py @@ -864,7 +864,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", "aws-route53-recordset.json", @@ -1170,7 +1169,6 @@ "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_northeast_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-controltower-enabledcontrol.json similarity index 97% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-controltower-enabledcontrol.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-controltower-enabledcontrol.json index 1999a1aacf..75018496ac 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-controltower-enabledcontrol.json @@ -91,8 +91,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] }, "delete": { "permissions": [ @@ -106,8 +105,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] }, "list": { "handlerSchema": { @@ -146,8 +144,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] } }, "primaryIdentifier": [ diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/ap_east_1/aws-resiliencehub-app.json similarity index 98% rename from src/cfnlint/data/schemas/providers/eu_west_1/aws-resiliencehub-app.json rename to src/cfnlint/data/schemas/providers/ap_east_1/aws-resiliencehub-app.json index 7b24e3ece7..0c20764ed8 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-resiliencehub-app.json +++ b/src/cfnlint/data/schemas/providers/ap_east_1/aws-resiliencehub-app.json @@ -174,8 +174,7 @@ "resiliencehub:DescribeApp", "resiliencehub:DescribeAppVersionTemplate", "resiliencehub:ListAppVersionResourceMappings", - "resiliencehub:ListTagsForResource", - "resiliencehub:ListAppVersions" + "resiliencehub:ListTagsForResource" ] }, "update": { 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 b0be226c24..82580cab1b 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_1/__init__.py @@ -1326,6 +1326,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", @@ -1538,6 +1539,7 @@ "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", "aws-evidently-launch.json", + "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", @@ -1651,6 +1653,7 @@ "aws-connect-predefinedattribute.json", "aws-iam-policy.json", "aws-databrew-schedule.json", + "aws-bedrock-agent.json", "aws-apprunner-service.json", "aws-connect-approvedorigin.json", "aws-ses-contactlist.json", @@ -1820,6 +1823,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_northeast_1/aws-bedrock-agent.json b/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-agent.json deleted file mode 100644 index 7da6126110..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-bedrock-agent.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "APISchema": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3Identifier" - } - }, - "required": [ - "S3" - ], - "title": "S3", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "Payload": { - "type": "string" - } - }, - "required": [ - "Payload" - ], - "title": "Payload", - "type": "object" - } - ] - }, - "ActionGroupExecutor": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "Lambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - } - }, - "required": [ - "Lambda" - ], - "title": "Lambda", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "CustomControl": { - "$ref": "#/definitions/CustomControlMethod" - } - }, - "required": [ - "CustomControl" - ], - "title": "CustomControl", - "type": "object" - } - ] - }, - "ActionGroupSignature": { - "enum": [ - "AMAZON.UserInput" - ], - "type": "string" - }, - "ActionGroupState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "AgentActionGroup": { - "additionalProperties": false, - "properties": { - "ActionGroupExecutor": { - "$ref": "#/definitions/ActionGroupExecutor" - }, - "ActionGroupName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "ActionGroupState": { - "$ref": "#/definitions/ActionGroupState" - }, - "ApiSchema": { - "$ref": "#/definitions/APISchema" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FunctionSchema": { - "$ref": "#/definitions/FunctionSchema" - }, - "ParentActionGroupSignature": { - "$ref": "#/definitions/ActionGroupSignature" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "ActionGroupName" - ], - "type": "object" - }, - "AgentKnowledgeBase": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "KnowledgeBaseId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "KnowledgeBaseState": { - "$ref": "#/definitions/KnowledgeBaseState" - } - }, - "required": [ - "KnowledgeBaseId", - "Description" - ], - "type": "object" - }, - "AgentStatus": { - "enum": [ - "CREATING", - "PREPARING", - "PREPARED", - "NOT_PREPARED", - "DELETING", - "FAILED", - "VERSIONING", - "UPDATING" - ], - "type": "string" - }, - "CreationMode": { - "enum": [ - "DEFAULT", - "OVERRIDDEN" - ], - "type": "string" - }, - "CustomControlMethod": { - "enum": [ - "RETURN_CONTROL" - ], - "type": "string" - }, - "Function": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 1200, - "minLength": 1, - "type": "string" - }, - "Name": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "Parameters": { - "$ref": "#/definitions/ParameterMap" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "FunctionSchema": { - "additionalProperties": false, - "properties": { - "Functions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Function" - }, - "type": "array" - } - }, - "required": [ - "Functions" - ], - "title": "Functions", - "type": "object" - }, - "GuardrailConfiguration": { - "additionalProperties": false, - "properties": { - "GuardrailIdentifier": { - "maxLength": 2048, - "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$", - "type": "string" - }, - "GuardrailVersion": { - "pattern": "^(([0-9]{1,8})|(DRAFT))$", - "type": "string" - } - }, - "type": "object" - }, - "InferenceConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumLength": { - "maximum": 4096, - "minimum": 0, - "type": "number" - }, - "StopSequences": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array" - }, - "Temperature": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "TopK": { - "maximum": 500, - "minimum": 0, - "type": "number" - }, - "TopP": { - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "KnowledgeBaseState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "ParameterDetail": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "Required": { - "type": "boolean" - }, - "Type": { - "$ref": "#/definitions/Type" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^([0-9a-zA-Z][_-]?){1,100}$": { - "$ref": "#/definitions/ParameterDetail" - } - }, - "type": "object" - }, - "PromptConfiguration": { - "additionalProperties": false, - "properties": { - "BasePromptTemplate": { - "maxLength": 100000, - "minLength": 1, - "type": "string" - }, - "InferenceConfiguration": { - "$ref": "#/definitions/InferenceConfiguration" - }, - "ParserMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptCreationMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptState": { - "$ref": "#/definitions/PromptState" - }, - "PromptType": { - "$ref": "#/definitions/PromptType" - } - }, - "type": "object" - }, - "PromptOverrideConfiguration": { - "additionalProperties": false, - "properties": { - "OverrideLambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - }, - "PromptConfigurations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/PromptConfiguration" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "PromptConfigurations" - ], - "type": "object" - }, - "PromptState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "PromptType": { - "enum": [ - "PRE_PROCESSING", - "ORCHESTRATION", - "POST_PROCESSING", - "KNOWLEDGE_BASE_RESPONSE_GENERATION" - ], - "type": "string" - }, - "S3Identifier": { - "additionalProperties": false, - "properties": { - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "S3ObjectKey": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", - "type": "string" - } - }, - "type": "object" - }, - "TagsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9\\s._:/=+@-]*$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "bedrock:CreateAgent", - "bedrock:GetAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:ListTagsForResource", - "bedrock:CreateGuardrail", - "bedrock:CreateGuardrailVersion", - "bedrock:GetGuardrail", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:DeleteAgent", - "bedrock:DeleteGuardrail", - "bedrock:GetGuardrail" - ] - }, - "list": { - "permissions": [ - "bedrock:ListAgents", - "bedrock:ListGuardrails" - ] - }, - "read": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:GetAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:ListTagsForResource", - "bedrock:GetGuardrail", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:UpdateAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:UpdateAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:DisassociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:UpdateAgentActionGroup", - "bedrock:DeleteAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:UntagResource", - "bedrock:ListTagsForResource", - "bedrock:UpdateGuardrail", - "bedrock:GetGuardrail", - "kms:Decrypt", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgentId" - ], - "properties": { - "ActionGroups": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentActionGroup" - }, - "type": "array" - }, - "AgentArn": { - "maxLength": 2048, - "pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "AgentResourceRoleArn": { - "maxLength": 2048, - "type": "string" - }, - "AgentStatus": { - "$ref": "#/definitions/AgentStatus" - }, - "AgentVersion": { - "maxLength": 5, - "minLength": 5, - "pattern": "^DRAFT$", - "type": "string" - }, - "AutoPrepare": { - "default": false, - "type": "boolean" - }, - "CreatedAt": { - "format": "date-time", - "type": "string" - }, - "CustomerEncryptionKeyArn": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FailureReasons": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "FoundationModel": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", - "type": "string" - }, - "GuardrailConfiguration": { - "$ref": "#/definitions/GuardrailConfiguration" - }, - "IdleSessionTTLInSeconds": { - "maximum": 3600, - "minimum": 60, - "type": "number" - }, - "Instruction": { - "minLength": 40, - "type": "string" - }, - "KnowledgeBases": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentKnowledgeBase" - }, - "type": "array" - }, - "PreparedAt": { - "format": "date-time", - "type": "string" - }, - "PromptOverrideConfiguration": { - "$ref": "#/definitions/PromptOverrideConfiguration" - }, - "RecommendedActions": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - }, - "Tags": { - "$ref": "#/definitions/TagsMap" - }, - "TestAliasTags": { - "$ref": "#/definitions/TagsMap" - }, - "UpdatedAt": { - "format": "date-time", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AgentArn", - "/properties/AgentId", - "/properties/AgentStatus", - "/properties/AgentVersion", - "/properties/CreatedAt", - "/properties/FailureReasons", - "/properties/PreparedAt", - "/properties/RecommendedActions", - "/properties/UpdatedAt" - ], - "required": [ - "AgentName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Bedrock::Agent", - "writeOnlyProperties": [ - "/properties/AutoPrepare", - "/properties/SkipResourceInUseCheckOnDelete", - "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" - ] -} 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 d3544d6a59..985be60fd1 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/__init__.py @@ -1214,7 +1214,6 @@ "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", @@ -1407,7 +1406,6 @@ "aws-wisdom-assistant.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", - "aws-ses-configurationset.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", @@ -1665,7 +1663,6 @@ "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/eu_central_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json similarity index 97% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-controltower-enabledcontrol.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json index 1999a1aacf..75018496ac 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-controltower-enabledcontrol.json @@ -91,8 +91,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] }, "delete": { "permissions": [ @@ -106,8 +105,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] }, "list": { "handlerSchema": { @@ -146,8 +144,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] } }, "primaryIdentifier": [ diff --git a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-resiliencehub-app.json similarity index 98% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-resiliencehub-app.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-resiliencehub-app.json index 7b24e3ece7..0c20764ed8 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-resiliencehub-app.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-resiliencehub-app.json @@ -174,8 +174,7 @@ "resiliencehub:DescribeApp", "resiliencehub:DescribeAppVersionTemplate", "resiliencehub:ListAppVersionResourceMappings", - "resiliencehub:ListTagsForResource", - "resiliencehub:ListAppVersions" + "resiliencehub:ListTagsForResource" ] }, "update": { diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ses-configurationset.json similarity index 98% rename from src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ses-configurationset.json rename to src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ses-configurationset.json index e5780caa5e..7e6285d5ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-ses-configurationset.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_2/aws-ses-configurationset.json @@ -85,9 +85,6 @@ "type": "string" } }, - "required": [ - "CustomRedirectDomain" - ], "type": "object" }, "VdmOptions": { 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 21954abd4f..22c51b5762 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/__init__.py @@ -846,7 +846,6 @@ "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", @@ -979,6 +978,7 @@ "aws-refactorspaces-route.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", diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-controltower-enabledcontrol.json similarity index 97% rename from src/cfnlint/data/schemas/providers/eu_west_1/aws-controltower-enabledcontrol.json rename to src/cfnlint/data/schemas/providers/ap_northeast_3/aws-controltower-enabledcontrol.json index 1999a1aacf..75018496ac 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/ap_northeast_3/aws-controltower-enabledcontrol.json @@ -91,8 +91,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] }, "delete": { "permissions": [ @@ -106,8 +105,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] }, "list": { "handlerSchema": { @@ -146,8 +144,7 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ], - "timeoutInMinutes": 720 + ] } }, "primaryIdentifier": [ 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 54b8267803..9fef80a40d 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_1/__init__.py @@ -1222,7 +1222,6 @@ "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", @@ -1411,6 +1410,7 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", + "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", @@ -1513,6 +1513,7 @@ "aws-connect-predefinedattribute.json", "aws-iam-policy.json", "aws-databrew-schedule.json", + "aws-bedrock-agent.json", "aws-apprunner-service.json", "aws-connect-approvedorigin.json", "aws-ses-contactlist.json", @@ -1672,7 +1673,6 @@ "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-bedrock-agent.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-bedrock-agent.json deleted file mode 100644 index 7da6126110..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-bedrock-agent.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "APISchema": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3Identifier" - } - }, - "required": [ - "S3" - ], - "title": "S3", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "Payload": { - "type": "string" - } - }, - "required": [ - "Payload" - ], - "title": "Payload", - "type": "object" - } - ] - }, - "ActionGroupExecutor": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "Lambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - } - }, - "required": [ - "Lambda" - ], - "title": "Lambda", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "CustomControl": { - "$ref": "#/definitions/CustomControlMethod" - } - }, - "required": [ - "CustomControl" - ], - "title": "CustomControl", - "type": "object" - } - ] - }, - "ActionGroupSignature": { - "enum": [ - "AMAZON.UserInput" - ], - "type": "string" - }, - "ActionGroupState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "AgentActionGroup": { - "additionalProperties": false, - "properties": { - "ActionGroupExecutor": { - "$ref": "#/definitions/ActionGroupExecutor" - }, - "ActionGroupName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "ActionGroupState": { - "$ref": "#/definitions/ActionGroupState" - }, - "ApiSchema": { - "$ref": "#/definitions/APISchema" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FunctionSchema": { - "$ref": "#/definitions/FunctionSchema" - }, - "ParentActionGroupSignature": { - "$ref": "#/definitions/ActionGroupSignature" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "ActionGroupName" - ], - "type": "object" - }, - "AgentKnowledgeBase": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "KnowledgeBaseId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "KnowledgeBaseState": { - "$ref": "#/definitions/KnowledgeBaseState" - } - }, - "required": [ - "KnowledgeBaseId", - "Description" - ], - "type": "object" - }, - "AgentStatus": { - "enum": [ - "CREATING", - "PREPARING", - "PREPARED", - "NOT_PREPARED", - "DELETING", - "FAILED", - "VERSIONING", - "UPDATING" - ], - "type": "string" - }, - "CreationMode": { - "enum": [ - "DEFAULT", - "OVERRIDDEN" - ], - "type": "string" - }, - "CustomControlMethod": { - "enum": [ - "RETURN_CONTROL" - ], - "type": "string" - }, - "Function": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 1200, - "minLength": 1, - "type": "string" - }, - "Name": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "Parameters": { - "$ref": "#/definitions/ParameterMap" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "FunctionSchema": { - "additionalProperties": false, - "properties": { - "Functions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Function" - }, - "type": "array" - } - }, - "required": [ - "Functions" - ], - "title": "Functions", - "type": "object" - }, - "GuardrailConfiguration": { - "additionalProperties": false, - "properties": { - "GuardrailIdentifier": { - "maxLength": 2048, - "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$", - "type": "string" - }, - "GuardrailVersion": { - "pattern": "^(([0-9]{1,8})|(DRAFT))$", - "type": "string" - } - }, - "type": "object" - }, - "InferenceConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumLength": { - "maximum": 4096, - "minimum": 0, - "type": "number" - }, - "StopSequences": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array" - }, - "Temperature": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "TopK": { - "maximum": 500, - "minimum": 0, - "type": "number" - }, - "TopP": { - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "KnowledgeBaseState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "ParameterDetail": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "Required": { - "type": "boolean" - }, - "Type": { - "$ref": "#/definitions/Type" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^([0-9a-zA-Z][_-]?){1,100}$": { - "$ref": "#/definitions/ParameterDetail" - } - }, - "type": "object" - }, - "PromptConfiguration": { - "additionalProperties": false, - "properties": { - "BasePromptTemplate": { - "maxLength": 100000, - "minLength": 1, - "type": "string" - }, - "InferenceConfiguration": { - "$ref": "#/definitions/InferenceConfiguration" - }, - "ParserMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptCreationMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptState": { - "$ref": "#/definitions/PromptState" - }, - "PromptType": { - "$ref": "#/definitions/PromptType" - } - }, - "type": "object" - }, - "PromptOverrideConfiguration": { - "additionalProperties": false, - "properties": { - "OverrideLambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - }, - "PromptConfigurations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/PromptConfiguration" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "PromptConfigurations" - ], - "type": "object" - }, - "PromptState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "PromptType": { - "enum": [ - "PRE_PROCESSING", - "ORCHESTRATION", - "POST_PROCESSING", - "KNOWLEDGE_BASE_RESPONSE_GENERATION" - ], - "type": "string" - }, - "S3Identifier": { - "additionalProperties": false, - "properties": { - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "S3ObjectKey": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", - "type": "string" - } - }, - "type": "object" - }, - "TagsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9\\s._:/=+@-]*$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "bedrock:CreateAgent", - "bedrock:GetAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:ListTagsForResource", - "bedrock:CreateGuardrail", - "bedrock:CreateGuardrailVersion", - "bedrock:GetGuardrail", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:DeleteAgent", - "bedrock:DeleteGuardrail", - "bedrock:GetGuardrail" - ] - }, - "list": { - "permissions": [ - "bedrock:ListAgents", - "bedrock:ListGuardrails" - ] - }, - "read": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:GetAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:ListTagsForResource", - "bedrock:GetGuardrail", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:UpdateAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:UpdateAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:DisassociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:UpdateAgentActionGroup", - "bedrock:DeleteAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:UntagResource", - "bedrock:ListTagsForResource", - "bedrock:UpdateGuardrail", - "bedrock:GetGuardrail", - "kms:Decrypt", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgentId" - ], - "properties": { - "ActionGroups": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentActionGroup" - }, - "type": "array" - }, - "AgentArn": { - "maxLength": 2048, - "pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "AgentResourceRoleArn": { - "maxLength": 2048, - "type": "string" - }, - "AgentStatus": { - "$ref": "#/definitions/AgentStatus" - }, - "AgentVersion": { - "maxLength": 5, - "minLength": 5, - "pattern": "^DRAFT$", - "type": "string" - }, - "AutoPrepare": { - "default": false, - "type": "boolean" - }, - "CreatedAt": { - "format": "date-time", - "type": "string" - }, - "CustomerEncryptionKeyArn": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FailureReasons": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "FoundationModel": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", - "type": "string" - }, - "GuardrailConfiguration": { - "$ref": "#/definitions/GuardrailConfiguration" - }, - "IdleSessionTTLInSeconds": { - "maximum": 3600, - "minimum": 60, - "type": "number" - }, - "Instruction": { - "minLength": 40, - "type": "string" - }, - "KnowledgeBases": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentKnowledgeBase" - }, - "type": "array" - }, - "PreparedAt": { - "format": "date-time", - "type": "string" - }, - "PromptOverrideConfiguration": { - "$ref": "#/definitions/PromptOverrideConfiguration" - }, - "RecommendedActions": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - }, - "Tags": { - "$ref": "#/definitions/TagsMap" - }, - "TestAliasTags": { - "$ref": "#/definitions/TagsMap" - }, - "UpdatedAt": { - "format": "date-time", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AgentArn", - "/properties/AgentId", - "/properties/AgentStatus", - "/properties/AgentVersion", - "/properties/CreatedAt", - "/properties/FailureReasons", - "/properties/PreparedAt", - "/properties/RecommendedActions", - "/properties/UpdatedAt" - ], - "required": [ - "AgentName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Bedrock::Agent", - "writeOnlyProperties": [ - "/properties/AutoPrepare", - "/properties/SkipResourceInUseCheckOnDelete", - "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" - ] -} 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 new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/ap_south_1/aws-resiliencehub-app.json similarity index 98% rename from src/cfnlint/data/schemas/providers/eu_central_1/aws-resiliencehub-app.json rename to src/cfnlint/data/schemas/providers/ap_south_1/aws-resiliencehub-app.json index 7b24e3ece7..0c20764ed8 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-resiliencehub-app.json +++ b/src/cfnlint/data/schemas/providers/ap_south_1/aws-resiliencehub-app.json @@ -174,8 +174,7 @@ "resiliencehub:DescribeApp", "resiliencehub:DescribeAppVersionTemplate", "resiliencehub:ListAppVersionResourceMappings", - "resiliencehub:ListTagsForResource", - "resiliencehub:ListAppVersions" + "resiliencehub:ListTagsForResource" ] }, "update": { 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 94d6ba16d9..5c08bb5889 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_south_2/__init__.py @@ -660,7 +660,6 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_south_2/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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_1/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py index 7980e595ee..2f3fdf0f1a 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/__init__.py @@ -1299,7 +1299,6 @@ "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", @@ -1504,6 +1503,7 @@ "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", "aws-evidently-launch.json", + "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", @@ -1615,6 +1615,7 @@ "aws-connect-predefinedattribute.json", "aws-iam-policy.json", "aws-databrew-schedule.json", + "aws-bedrock-agent.json", "aws-apprunner-service.json", "aws-connect-approvedorigin.json", "aws-ses-contactlist.json", @@ -1785,7 +1786,6 @@ "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_1/aws-bedrock-agent.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-agent.json deleted file mode 100644 index 7da6126110..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-bedrock-agent.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "APISchema": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3Identifier" - } - }, - "required": [ - "S3" - ], - "title": "S3", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "Payload": { - "type": "string" - } - }, - "required": [ - "Payload" - ], - "title": "Payload", - "type": "object" - } - ] - }, - "ActionGroupExecutor": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "Lambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - } - }, - "required": [ - "Lambda" - ], - "title": "Lambda", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "CustomControl": { - "$ref": "#/definitions/CustomControlMethod" - } - }, - "required": [ - "CustomControl" - ], - "title": "CustomControl", - "type": "object" - } - ] - }, - "ActionGroupSignature": { - "enum": [ - "AMAZON.UserInput" - ], - "type": "string" - }, - "ActionGroupState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "AgentActionGroup": { - "additionalProperties": false, - "properties": { - "ActionGroupExecutor": { - "$ref": "#/definitions/ActionGroupExecutor" - }, - "ActionGroupName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "ActionGroupState": { - "$ref": "#/definitions/ActionGroupState" - }, - "ApiSchema": { - "$ref": "#/definitions/APISchema" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FunctionSchema": { - "$ref": "#/definitions/FunctionSchema" - }, - "ParentActionGroupSignature": { - "$ref": "#/definitions/ActionGroupSignature" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "ActionGroupName" - ], - "type": "object" - }, - "AgentKnowledgeBase": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "KnowledgeBaseId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "KnowledgeBaseState": { - "$ref": "#/definitions/KnowledgeBaseState" - } - }, - "required": [ - "KnowledgeBaseId", - "Description" - ], - "type": "object" - }, - "AgentStatus": { - "enum": [ - "CREATING", - "PREPARING", - "PREPARED", - "NOT_PREPARED", - "DELETING", - "FAILED", - "VERSIONING", - "UPDATING" - ], - "type": "string" - }, - "CreationMode": { - "enum": [ - "DEFAULT", - "OVERRIDDEN" - ], - "type": "string" - }, - "CustomControlMethod": { - "enum": [ - "RETURN_CONTROL" - ], - "type": "string" - }, - "Function": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 1200, - "minLength": 1, - "type": "string" - }, - "Name": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "Parameters": { - "$ref": "#/definitions/ParameterMap" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "FunctionSchema": { - "additionalProperties": false, - "properties": { - "Functions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Function" - }, - "type": "array" - } - }, - "required": [ - "Functions" - ], - "title": "Functions", - "type": "object" - }, - "GuardrailConfiguration": { - "additionalProperties": false, - "properties": { - "GuardrailIdentifier": { - "maxLength": 2048, - "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$", - "type": "string" - }, - "GuardrailVersion": { - "pattern": "^(([0-9]{1,8})|(DRAFT))$", - "type": "string" - } - }, - "type": "object" - }, - "InferenceConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumLength": { - "maximum": 4096, - "minimum": 0, - "type": "number" - }, - "StopSequences": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array" - }, - "Temperature": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "TopK": { - "maximum": 500, - "minimum": 0, - "type": "number" - }, - "TopP": { - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "KnowledgeBaseState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "ParameterDetail": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "Required": { - "type": "boolean" - }, - "Type": { - "$ref": "#/definitions/Type" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^([0-9a-zA-Z][_-]?){1,100}$": { - "$ref": "#/definitions/ParameterDetail" - } - }, - "type": "object" - }, - "PromptConfiguration": { - "additionalProperties": false, - "properties": { - "BasePromptTemplate": { - "maxLength": 100000, - "minLength": 1, - "type": "string" - }, - "InferenceConfiguration": { - "$ref": "#/definitions/InferenceConfiguration" - }, - "ParserMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptCreationMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptState": { - "$ref": "#/definitions/PromptState" - }, - "PromptType": { - "$ref": "#/definitions/PromptType" - } - }, - "type": "object" - }, - "PromptOverrideConfiguration": { - "additionalProperties": false, - "properties": { - "OverrideLambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - }, - "PromptConfigurations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/PromptConfiguration" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "PromptConfigurations" - ], - "type": "object" - }, - "PromptState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "PromptType": { - "enum": [ - "PRE_PROCESSING", - "ORCHESTRATION", - "POST_PROCESSING", - "KNOWLEDGE_BASE_RESPONSE_GENERATION" - ], - "type": "string" - }, - "S3Identifier": { - "additionalProperties": false, - "properties": { - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "S3ObjectKey": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", - "type": "string" - } - }, - "type": "object" - }, - "TagsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9\\s._:/=+@-]*$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "bedrock:CreateAgent", - "bedrock:GetAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:ListTagsForResource", - "bedrock:CreateGuardrail", - "bedrock:CreateGuardrailVersion", - "bedrock:GetGuardrail", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:DeleteAgent", - "bedrock:DeleteGuardrail", - "bedrock:GetGuardrail" - ] - }, - "list": { - "permissions": [ - "bedrock:ListAgents", - "bedrock:ListGuardrails" - ] - }, - "read": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:GetAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:ListTagsForResource", - "bedrock:GetGuardrail", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:UpdateAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:UpdateAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:DisassociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:UpdateAgentActionGroup", - "bedrock:DeleteAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:UntagResource", - "bedrock:ListTagsForResource", - "bedrock:UpdateGuardrail", - "bedrock:GetGuardrail", - "kms:Decrypt", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgentId" - ], - "properties": { - "ActionGroups": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentActionGroup" - }, - "type": "array" - }, - "AgentArn": { - "maxLength": 2048, - "pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "AgentResourceRoleArn": { - "maxLength": 2048, - "type": "string" - }, - "AgentStatus": { - "$ref": "#/definitions/AgentStatus" - }, - "AgentVersion": { - "maxLength": 5, - "minLength": 5, - "pattern": "^DRAFT$", - "type": "string" - }, - "AutoPrepare": { - "default": false, - "type": "boolean" - }, - "CreatedAt": { - "format": "date-time", - "type": "string" - }, - "CustomerEncryptionKeyArn": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FailureReasons": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "FoundationModel": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", - "type": "string" - }, - "GuardrailConfiguration": { - "$ref": "#/definitions/GuardrailConfiguration" - }, - "IdleSessionTTLInSeconds": { - "maximum": 3600, - "minimum": 60, - "type": "number" - }, - "Instruction": { - "minLength": 40, - "type": "string" - }, - "KnowledgeBases": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentKnowledgeBase" - }, - "type": "array" - }, - "PreparedAt": { - "format": "date-time", - "type": "string" - }, - "PromptOverrideConfiguration": { - "$ref": "#/definitions/PromptOverrideConfiguration" - }, - "RecommendedActions": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - }, - "Tags": { - "$ref": "#/definitions/TagsMap" - }, - "TestAliasTags": { - "$ref": "#/definitions/TagsMap" - }, - "UpdatedAt": { - "format": "date-time", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AgentArn", - "/properties/AgentId", - "/properties/AgentStatus", - "/properties/AgentVersion", - "/properties/CreatedAt", - "/properties/FailureReasons", - "/properties/PreparedAt", - "/properties/RecommendedActions", - "/properties/UpdatedAt" - ], - "required": [ - "AgentName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Bedrock::Agent", - "writeOnlyProperties": [ - "/properties/AutoPrepare", - "/properties/SkipResourceInUseCheckOnDelete", - "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" - ] -} diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py index 7aa2272f40..f84e2c1fe0 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/__init__.py @@ -1318,7 +1318,6 @@ "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", @@ -1526,6 +1525,7 @@ "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", "aws-evidently-launch.json", + "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", @@ -1639,6 +1639,7 @@ "aws-connect-predefinedattribute.json", "aws-iam-policy.json", "aws-databrew-schedule.json", + "aws-bedrock-agent.json", "aws-apprunner-service.json", "aws-connect-approvedorigin.json", "aws-ses-contactlist.json", @@ -1808,7 +1809,6 @@ "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-bedrock-agent.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-bedrock-agent.json deleted file mode 100644 index 7da6126110..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-bedrock-agent.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "APISchema": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3Identifier" - } - }, - "required": [ - "S3" - ], - "title": "S3", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "Payload": { - "type": "string" - } - }, - "required": [ - "Payload" - ], - "title": "Payload", - "type": "object" - } - ] - }, - "ActionGroupExecutor": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "Lambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - } - }, - "required": [ - "Lambda" - ], - "title": "Lambda", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "CustomControl": { - "$ref": "#/definitions/CustomControlMethod" - } - }, - "required": [ - "CustomControl" - ], - "title": "CustomControl", - "type": "object" - } - ] - }, - "ActionGroupSignature": { - "enum": [ - "AMAZON.UserInput" - ], - "type": "string" - }, - "ActionGroupState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "AgentActionGroup": { - "additionalProperties": false, - "properties": { - "ActionGroupExecutor": { - "$ref": "#/definitions/ActionGroupExecutor" - }, - "ActionGroupName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "ActionGroupState": { - "$ref": "#/definitions/ActionGroupState" - }, - "ApiSchema": { - "$ref": "#/definitions/APISchema" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FunctionSchema": { - "$ref": "#/definitions/FunctionSchema" - }, - "ParentActionGroupSignature": { - "$ref": "#/definitions/ActionGroupSignature" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "ActionGroupName" - ], - "type": "object" - }, - "AgentKnowledgeBase": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "KnowledgeBaseId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "KnowledgeBaseState": { - "$ref": "#/definitions/KnowledgeBaseState" - } - }, - "required": [ - "KnowledgeBaseId", - "Description" - ], - "type": "object" - }, - "AgentStatus": { - "enum": [ - "CREATING", - "PREPARING", - "PREPARED", - "NOT_PREPARED", - "DELETING", - "FAILED", - "VERSIONING", - "UPDATING" - ], - "type": "string" - }, - "CreationMode": { - "enum": [ - "DEFAULT", - "OVERRIDDEN" - ], - "type": "string" - }, - "CustomControlMethod": { - "enum": [ - "RETURN_CONTROL" - ], - "type": "string" - }, - "Function": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 1200, - "minLength": 1, - "type": "string" - }, - "Name": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "Parameters": { - "$ref": "#/definitions/ParameterMap" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "FunctionSchema": { - "additionalProperties": false, - "properties": { - "Functions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Function" - }, - "type": "array" - } - }, - "required": [ - "Functions" - ], - "title": "Functions", - "type": "object" - }, - "GuardrailConfiguration": { - "additionalProperties": false, - "properties": { - "GuardrailIdentifier": { - "maxLength": 2048, - "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$", - "type": "string" - }, - "GuardrailVersion": { - "pattern": "^(([0-9]{1,8})|(DRAFT))$", - "type": "string" - } - }, - "type": "object" - }, - "InferenceConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumLength": { - "maximum": 4096, - "minimum": 0, - "type": "number" - }, - "StopSequences": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array" - }, - "Temperature": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "TopK": { - "maximum": 500, - "minimum": 0, - "type": "number" - }, - "TopP": { - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "KnowledgeBaseState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "ParameterDetail": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "Required": { - "type": "boolean" - }, - "Type": { - "$ref": "#/definitions/Type" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^([0-9a-zA-Z][_-]?){1,100}$": { - "$ref": "#/definitions/ParameterDetail" - } - }, - "type": "object" - }, - "PromptConfiguration": { - "additionalProperties": false, - "properties": { - "BasePromptTemplate": { - "maxLength": 100000, - "minLength": 1, - "type": "string" - }, - "InferenceConfiguration": { - "$ref": "#/definitions/InferenceConfiguration" - }, - "ParserMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptCreationMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptState": { - "$ref": "#/definitions/PromptState" - }, - "PromptType": { - "$ref": "#/definitions/PromptType" - } - }, - "type": "object" - }, - "PromptOverrideConfiguration": { - "additionalProperties": false, - "properties": { - "OverrideLambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - }, - "PromptConfigurations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/PromptConfiguration" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "PromptConfigurations" - ], - "type": "object" - }, - "PromptState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "PromptType": { - "enum": [ - "PRE_PROCESSING", - "ORCHESTRATION", - "POST_PROCESSING", - "KNOWLEDGE_BASE_RESPONSE_GENERATION" - ], - "type": "string" - }, - "S3Identifier": { - "additionalProperties": false, - "properties": { - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "S3ObjectKey": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", - "type": "string" - } - }, - "type": "object" - }, - "TagsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9\\s._:/=+@-]*$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "bedrock:CreateAgent", - "bedrock:GetAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:ListTagsForResource", - "bedrock:CreateGuardrail", - "bedrock:CreateGuardrailVersion", - "bedrock:GetGuardrail", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:DeleteAgent", - "bedrock:DeleteGuardrail", - "bedrock:GetGuardrail" - ] - }, - "list": { - "permissions": [ - "bedrock:ListAgents", - "bedrock:ListGuardrails" - ] - }, - "read": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:GetAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:ListTagsForResource", - "bedrock:GetGuardrail", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:UpdateAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:UpdateAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:DisassociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:UpdateAgentActionGroup", - "bedrock:DeleteAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:UntagResource", - "bedrock:ListTagsForResource", - "bedrock:UpdateGuardrail", - "bedrock:GetGuardrail", - "kms:Decrypt", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgentId" - ], - "properties": { - "ActionGroups": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentActionGroup" - }, - "type": "array" - }, - "AgentArn": { - "maxLength": 2048, - "pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "AgentResourceRoleArn": { - "maxLength": 2048, - "type": "string" - }, - "AgentStatus": { - "$ref": "#/definitions/AgentStatus" - }, - "AgentVersion": { - "maxLength": 5, - "minLength": 5, - "pattern": "^DRAFT$", - "type": "string" - }, - "AutoPrepare": { - "default": false, - "type": "boolean" - }, - "CreatedAt": { - "format": "date-time", - "type": "string" - }, - "CustomerEncryptionKeyArn": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FailureReasons": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "FoundationModel": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", - "type": "string" - }, - "GuardrailConfiguration": { - "$ref": "#/definitions/GuardrailConfiguration" - }, - "IdleSessionTTLInSeconds": { - "maximum": 3600, - "minimum": 60, - "type": "number" - }, - "Instruction": { - "minLength": 40, - "type": "string" - }, - "KnowledgeBases": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentKnowledgeBase" - }, - "type": "array" - }, - "PreparedAt": { - "format": "date-time", - "type": "string" - }, - "PromptOverrideConfiguration": { - "$ref": "#/definitions/PromptOverrideConfiguration" - }, - "RecommendedActions": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - }, - "Tags": { - "$ref": "#/definitions/TagsMap" - }, - "TestAliasTags": { - "$ref": "#/definitions/TagsMap" - }, - "UpdatedAt": { - "format": "date-time", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AgentArn", - "/properties/AgentId", - "/properties/AgentStatus", - "/properties/AgentVersion", - "/properties/CreatedAt", - "/properties/FailureReasons", - "/properties/PreparedAt", - "/properties/RecommendedActions", - "/properties/UpdatedAt" - ], - "required": [ - "AgentName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Bedrock::Agent", - "writeOnlyProperties": [ - "/properties/AutoPrepare", - "/properties/SkipResourceInUseCheckOnDelete", - "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" - ] -} 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 new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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-ses-configurationset.json b/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ses-configurationset.json deleted file mode 100644 index e5780caa5e..0000000000 --- a/src/cfnlint/data/schemas/providers/ap_southeast_2/aws-ses-configurationset.json +++ /dev/null @@ -1,169 +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" - } - }, - "required": [ - "CustomRedirectDomain" - ], - "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/ap_southeast_3/__init__.py b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py index ee67b45af2..cfa036fde9 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/__init__.py @@ -684,7 +684,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", @@ -790,7 +789,6 @@ "aws-cloudformation-customresource.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", - "aws-ses-configurationset.json", "aws-networkfirewall-loggingconfiguration.json", "aws-codedeploy-deploymentgroup.json", "aws-cloudformation-stackset.json", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ses-configurationset.json similarity index 98% rename from src/cfnlint/data/schemas/providers/ap_south_1/aws-ses-configurationset.json rename to src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ses-configurationset.json index e5780caa5e..7e6285d5ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_south_1/aws-ses-configurationset.json +++ b/src/cfnlint/data/schemas/providers/ap_southeast_3/aws-ses-configurationset.json @@ -85,9 +85,6 @@ "type": "string" } }, - "required": [ - "CustomRedirectDomain" - ], "type": "object" }, "VdmOptions": { 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 9d0a1e3f1f..4ddc5e0e13 100644 --- a/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/__init__.py @@ -633,7 +633,6 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ap_southeast_4/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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/ca_central_1/__init__.py b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py index 88e85df7d1..d883d850e5 100644 --- a/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_central_1/__init__.py @@ -1183,7 +1183,6 @@ "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", @@ -1367,7 +1366,6 @@ "aws-wisdom-assistant.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", - "aws-ses-configurationset.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", @@ -1622,7 +1620,6 @@ "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/ca_central_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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/ca_central_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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_northeast_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ses-configurationset.json similarity index 98% rename from src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ses-configurationset.json rename to src/cfnlint/data/schemas/providers/ca_central_1/aws-ses-configurationset.json index e5780caa5e..7e6285d5ea 100644 --- a/src/cfnlint/data/schemas/providers/ap_northeast_1/aws-ses-configurationset.json +++ b/src/cfnlint/data/schemas/providers/ca_central_1/aws-ses-configurationset.json @@ -85,9 +85,6 @@ "type": "string" } }, - "required": [ - "CustomRedirectDomain" - ], "type": "object" }, "VdmOptions": { 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 33cfdafd92..083da43808 100644 --- a/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/ca_west_1/__init__.py @@ -554,7 +554,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-route53-recordset.json", "aws-eks-accessentry.json", "aws-elasticache-securitygroup.json", diff --git a/src/cfnlint/data/schemas/providers/ca_west_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/ca_west_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/ca_west_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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/cn_north_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py index c41509537b..397f596c55 100644 --- a/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_north_1/__init__.py @@ -404,6 +404,7 @@ "AWS::EMR::InstanceGroupConfig", "AWS::StepFunctions::Activity", "AWS::SageMaker::Project", + "AWS::Logs::AccountPolicy", "AWS::S3::BucketPolicy", "AWS::AppSync::GraphQLSchema", "AWS::IoT::CustomMetric", @@ -724,7 +725,6 @@ "aws-logs-resourcepolicy.json", "aws-servicecatalog-launchnotificationconstraint.json", "aws-quicksight-datasource.json", - "aws-iot-cacertificate.json", "aws-transfer-certificate.json", "aws-apigateway-documentationpart.json", "aws-cloudwatch-compositealarm.json", @@ -904,7 +904,6 @@ "aws-cloudwatch-insightrule.json", "aws-apigateway-usageplan.json", "aws-batch-schedulingpolicy.json", - "aws-iot-authorizer.json", "aws-iot-jobtemplate.json", "aws-databrew-project.json", "aws-athena-workgroup.json", @@ -970,7 +969,6 @@ "aws-servicecatalog-tagoption.json", "aws-servicediscovery-privatednsnamespace.json", "aws-servicecatalog-launchroleconstraint.json", - "aws-iot-rolealias.json", "aws-secretsmanager-resourcepolicy.json", "aws-config-configrule.json", "aws-iot-softwarepackageversion.json", @@ -1057,6 +1055,7 @@ "aws-emr-instancegroupconfig.json", "aws-stepfunctions-activity.json", "aws-sagemaker-project.json", + "aws-logs-accountpolicy.json", "aws-s3-bucketpolicy.json", "aws-appsync-graphqlschema.json", "aws-iot-custommetric.json", @@ -1072,7 +1071,6 @@ "aws-elasticache-subnetgroup.json", "aws-xray-group.json", "aws-oam-link.json", - "aws-iot-domainconfiguration.json", "aws-sagemaker-endpoint.json", "aws-elasticloadbalancingv2-truststorerevocation.json", "aws-networkfirewall-firewall.json", @@ -1118,7 +1116,6 @@ "aws-glue-schema.json", "aws-docdb-dbsubnetgroup.json", "aws-logs-delivery.json", - "aws-iot-policy.json", "aws-ec2-transitgatewayroute.json", "aws-ssm-maintenancewindow.json", "aws-lakeformation-tagassociation.json", @@ -1188,7 +1185,6 @@ "aws-rds-dbclusterparametergroup.json", "aws-waf-xssmatchset.json", "aws-appmesh-virtualrouter.json", - "aws-iot-certificateprovider.json", "aws-fsx-snapshot.json", "aws-eventschemas-registrypolicy.json", "aws-eventschemas-registry.json", @@ -1246,7 +1242,6 @@ "aws-sqs-queue.json", "aws-ec2-securitygroupingress.json", "aws-guardduty-detector.json", - "aws-iot-provisioningtemplate.json", "aws-personalize-schema.json", "aws-apigateway-stage.json", "aws-budgets-budget.json", diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-authorizer.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-authorizer.json new file mode 100644 index 0000000000..4fd44d03a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-authorizer.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SigningDisabled", + "/properties/AuthorizerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DeleteAuthorizer", + "iot:DescribeAuthorizer" + ] + }, + "list": { + "permissions": [ + "iot:ListAuthorizers" + ] + }, + "read": { + "permissions": [ + "iot:DescribeAuthorizer", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AuthorizerName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerFunctionArn": { + "type": "string" + }, + "AuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "EnableCachingForHttp": { + "type": "boolean" + }, + "SigningDisabled": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TokenKeyName": { + "type": "string" + }, + "TokenSigningPublicKeys": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9:_-]+": { + "maxLength": 5120, + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "AuthorizerFunctionArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-cacertificate.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-cacertificate.json new file mode 100644 index 0000000000..7c56105907 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-cacertificate.json @@ -0,0 +1,174 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/CertificateMode", + "/properties/CACertificatePem" + ], + "definitions": { + "RegistrationConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "TemplateBody": { + "maxLength": 10240, + "minLength": 0, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:RegisterCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateCACertificate", + "iot:DeleteCACertificate", + "iot:DescribeCACertificate" + ] + }, + "list": { + "permissions": [ + "iot:ListCACertificates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCACertificate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AutoRegistrationStatus": { + "enum": [ + "ENABLE", + "DISABLE" + ], + "type": "string" + }, + "CACertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "CertificateMode": { + "enum": [ + "DEFAULT", + "SNI_ONLY" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "RegistrationConfig": { + "$ref": "#/definitions/RegistrationConfig" + }, + "RemoveAutoRegistration": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VerificationCertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "CACertificatePem", + "Status" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CACertificate", + "writeOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/RemoveAutoRegistration" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-certificateprovider.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-certificateprovider.json new file mode 100644 index 0000000000..ea4c9d9f71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-certificateprovider.json @@ -0,0 +1,125 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateProviderName" + ], + "definitions": { + "CertificateProviderOperation": { + "enum": [ + "CreateCertificateFromCsr" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteCertificateProvider", + "iot:DescribeCertificateProvider" + ] + }, + "list": { + "permissions": [ + "iot:ListCertificateProviders" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCertificateProvider", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/CertificateProviderName" + ], + "properties": { + "AccountDefaultForOperations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CertificateProviderOperation" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Arn": { + "type": "string" + }, + "CertificateProviderName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "LambdaFunctionArn": { + "maxLength": 170, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "LambdaFunctionArn", + "AccountDefaultForOperations" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CertificateProvider" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-domainconfiguration.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-domainconfiguration.json new file mode 100644 index 0000000000..03db5c565e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-domainconfiguration.json @@ -0,0 +1,224 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainConfigurationName", + "/properties/DomainName", + "/properties/ServiceType", + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ], + "definitions": { + "AuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AllowAuthorizerOverride": { + "type": "boolean" + }, + "DefaultAuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w=,@-]+$", + "type": "string" + } + }, + "type": "object" + }, + "ServerCertificateConfig": { + "additionalProperties": false, + "properties": { + "EnableOCSPCheck": { + "type": "boolean" + } + }, + "type": "object" + }, + "ServerCertificateSummary": { + "additionalProperties": false, + "properties": { + "ServerCertificateArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "ServerCertificateStatus": { + "enum": [ + "INVALID", + "VALID" + ], + "type": "string" + }, + "ServerCertificateStatusDetail": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "SecurityPolicy": { + "maxLength": 128, + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateDomainConfiguration", + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:TagResource", + "iot:ListTagsForResource", + "acm:GetCertificate" + ] + }, + "delete": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:DeleteDomainConfiguration", + "iot:UpdateDomainConfiguration" + ] + }, + "list": { + "permissions": [ + "iot:ListDomainConfigurations" + ] + }, + "read": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource", + "iot:TagResource", + "iot:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainConfigurationName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerConfig": { + "$ref": "#/definitions/AuthorizerConfig" + }, + "DomainConfigurationName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w.-]+$", + "type": "string" + }, + "DomainConfigurationStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "DomainName": { + "maxLength": 253, + "minLength": 1, + "type": "string" + }, + "DomainType": { + "enum": [ + "ENDPOINT", + "AWS_MANAGED", + "CUSTOMER_MANAGED" + ], + "type": "string" + }, + "ServerCertificateArns": { + "insertionOrder": true, + "items": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "ServerCertificateConfig": { + "$ref": "#/definitions/ServerCertificateConfig" + }, + "ServerCertificates": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerCertificateSummary" + }, + "type": "array" + }, + "ServiceType": { + "enum": [ + "DATA", + "CREDENTIAL_PROVIDER", + "JOBS" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + }, + "ValidationCertificateArn": { + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DomainType", + "/properties/ServerCertificates" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::DomainConfiguration", + "writeOnlyProperties": [ + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ] +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-policy.json new file mode 100644 index 0000000000..6a8b285974 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-policy.json @@ -0,0 +1,110 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreatePolicy", + "iot:GetPolicy", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeletePolicy", + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:DeletePolicyVersion" + ] + }, + "list": { + "permissions": [ + "iot:ListPolicies" + ] + }, + "read": { + "permissions": [ + "iot:GetPolicy", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:CreatePolicyVersion", + "iot:DeletePolicyVersion", + "iot:SetDefaultPolicyVersion", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "maxLength": 404600, + "minLength": 1, + "type": [ + "object", + "string" + ] + }, + "PolicyName": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "PolicyDocument" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-provisioningtemplate.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-provisioningtemplate.json new file mode 100644 index 0000000000..31a4f45b65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-provisioningtemplate.json @@ -0,0 +1,141 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TemplateName", + "/properties/TemplateType" + ], + "definitions": { + "ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateProvisioningTemplate", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteProvisioningTemplate", + "iot:DescribeProvisioningTemplate" + ] + }, + "list": { + "permissions": [ + "iot:ListProvisioningTemplates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeProvisioningTemplate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateProvisioningTemplate", + "iot:CreateProvisioningTemplateVersion", + "iot:ListProvisioningTemplateVersions", + "iot:DeleteProvisioningTemplateVersion", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TemplateName" + ], + "properties": { + "Description": { + "maxLength": 500, + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TemplateArn": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + }, + "TemplateType": { + "enum": [ + "FLEET_PROVISIONING", + "JITP" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TemplateArn" + ], + "required": [ + "ProvisioningRoleArn", + "TemplateBody" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::ProvisioningTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-rolealias.json b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-rolealias.json new file mode 100644 index 0000000000..5ea03cb1af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/cn_north_1/aws-iot-rolealias.json @@ -0,0 +1,124 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RoleAlias" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteRoleAlias", + "iot:DescribeRoleAlias" + ] + }, + "list": { + "permissions": [ + "iot:ListRoleAliases" + ] + }, + "read": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:DescribeRoleAlias", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RoleAlias" + ], + "properties": { + "CredentialDurationSeconds": { + "default": 3600, + "maximum": 43200, + "minimum": 900, + "type": "integer" + }, + "RoleAlias": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleAliasArn": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/RoleAliasArn" + ], + "required": [ + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::RoleAlias" +} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py index 9ed9dd5851..bd2a6f1b8d 100644 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/cn_northwest_1/__init__.py @@ -381,6 +381,7 @@ "AWS::EMR::InstanceGroupConfig", "AWS::StepFunctions::Activity", "AWS::SageMaker::Project", + "AWS::Logs::AccountPolicy", "AWS::S3::BucketPolicy", "AWS::AppSync::GraphQLSchema", "AWS::IoT::CustomMetric", @@ -762,6 +763,7 @@ "aws-elasticache-replicationgroup.json", "aws-stepfunctions-statemachinealias.json", "aws-cassandra-table.json", + "aws-rds-globalcluster.json", "aws-cloudformation-moduledefaultversion.json", "aws-ce-costcategory.json", "aws-sso-permissionset.json", @@ -882,6 +884,7 @@ "aws-ec2-vpcendpointservicepermissions.json", "aws-ssm-maintenancewindowtask.json", "aws-ec2-transitgatewaymulticastdomain.json", + "aws-eks-cluster.json", "aws-codebuild-project.json", "aws-efs-filesystem.json", "aws-logs-querydefinition.json", @@ -987,6 +990,7 @@ "aws-emr-instancegroupconfig.json", "aws-stepfunctions-activity.json", "aws-sagemaker-project.json", + "aws-logs-accountpolicy.json", "aws-s3-bucketpolicy.json", "aws-appsync-graphqlschema.json", "aws-iot-custommetric.json", @@ -1203,6 +1207,7 @@ "aws-s3-storagelens.json", "aws-ec2-vpcendpointservice.json", "aws-ec2-launchtemplate.json", + "aws-elasticbeanstalk-environment.json", "aws-wafregional-sqlinjectionmatchset.json", "aws-lambda-version.json", "aws-ec2-dhcpoptions.json", diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-eks-cluster.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-eks-cluster.json deleted file mode 100644 index f90589ca3b..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-eks-cluster.json +++ /dev/null @@ -1,356 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/OutpostConfig", - "/properties/EncryptionConfig", - "/properties/KubernetesNetworkConfig", - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/Name", - "/properties/RoleArn" - ], - "definitions": { - "AccessConfig": { - "additionalProperties": false, - "properties": { - "AuthenticationMode": { - "enum": [ - "CONFIG_MAP", - "API_AND_CONFIG_MAP", - "API" - ], - "type": "string" - }, - "BootstrapClusterCreatorAdminPermissions": { - "type": "boolean" - } - }, - "type": "object" - }, - "ClusterLogging": { - "additionalProperties": false, - "properties": { - "EnabledTypes": { - "$ref": "#/definitions/EnabledTypes" - } - }, - "type": "object" - }, - "ControlPlanePlacement": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - } - }, - "type": "object" - }, - "EnabledTypes": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LoggingTypeConfig" - }, - "type": "array" - }, - "EncryptionConfig": { - "additionalProperties": false, - "properties": { - "Provider": { - "$ref": "#/definitions/Provider" - }, - "Resources": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "KubernetesNetworkConfig": { - "additionalProperties": false, - "properties": { - "IpFamily": { - "enum": [ - "ipv4", - "ipv6" - ], - "type": "string" - }, - "ServiceIpv4Cidr": { - "type": "string" - }, - "ServiceIpv6Cidr": { - "type": "string" - } - }, - "type": "object" - }, - "Logging": { - "additionalProperties": false, - "properties": { - "ClusterLogging": { - "$ref": "#/definitions/ClusterLogging" - } - }, - "type": "object" - }, - "LoggingTypeConfig": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "api", - "audit", - "authenticator", - "controllerManager", - "scheduler" - ], - "type": "string" - } - }, - "type": "object" - }, - "OutpostConfig": { - "additionalProperties": false, - "properties": { - "ControlPlaneInstanceType": { - "type": "string" - }, - "ControlPlanePlacement": { - "$ref": "#/definitions/ControlPlanePlacement" - }, - "OutpostArns": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "OutpostArns", - "ControlPlaneInstanceType" - ], - "type": "object" - }, - "Provider": { - "additionalProperties": false, - "properties": { - "KeyArn": { - "type": "string" - } - }, - "type": "object" - }, - "ResourcesVpcConfig": { - "additionalProperties": false, - "properties": { - "EndpointPrivateAccess": { - "type": "boolean" - }, - "EndpointPublicAccess": { - "type": "boolean" - }, - "PublicAccessCidrs": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "minItems": 1, - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "SubnetIds" - ], - "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": [ - "eks:CreateCluster", - "eks:DescribeCluster", - "eks:TagResource", - "iam:PassRole", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:CreateServiceLinkedRole", - "iam:CreateInstanceProfile", - "iam:TagInstanceProfile", - "iam:AddRoleToInstanceProfile", - "iam:GetInstanceProfile", - "iam:DeleteInstanceProfile", - "iam:RemoveRoleFromInstanceProfile", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "kms:DescribeKey", - "kms:CreateGrant" - ] - }, - "delete": { - "permissions": [ - "eks:DeleteCluster", - "eks:DescribeCluster" - ] - }, - "list": { - "permissions": [ - "eks:ListClusters" - ] - }, - "read": { - "permissions": [ - "eks:DescribeCluster" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "eks:UpdateClusterConfig", - "eks:UpdateClusterVersion", - "eks:DescribeCluster", - "eks:DescribeUpdate", - "eks:TagResource", - "eks:UntagResource" - ], - "timeoutInMinutes": 180 - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "AccessConfig": { - "$ref": "#/definitions/AccessConfig" - }, - "Arn": { - "type": "string" - }, - "CertificateAuthorityData": { - "type": "string" - }, - "ClusterSecurityGroupId": { - "type": "string" - }, - "EncryptionConfig": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EncryptionConfig", - "maxItems": 1 - }, - "type": "array" - }, - "EncryptionConfigKeyArn": { - "type": "string" - }, - "Endpoint": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "KubernetesNetworkConfig": { - "$ref": "#/definitions/KubernetesNetworkConfig" - }, - "Logging": { - "$ref": "#/definitions/Logging" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*", - "type": "string" - }, - "OpenIdConnectIssuerUrl": { - "type": "string" - }, - "OutpostConfig": { - "$ref": "#/definitions/OutpostConfig" - }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/ResourcesVpcConfig" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Version": { - "pattern": "1\\.\\d\\d", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/Endpoint", - "/properties/CertificateAuthorityData", - "/properties/ClusterSecurityGroupId", - "/properties/EncryptionConfigKeyArn", - "/properties/OpenIdConnectIssuerUrl", - "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" - ], - "required": [ - "RoleArn", - "ResourcesVpcConfig" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EKS::Cluster", - "writeOnlyProperties": [ - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions" - ] -} diff --git a/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-elasticbeanstalk-environment.json deleted file mode 100644 index 2fa4fe9b33..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_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/cn_northwest_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/cn_northwest_1/aws-rds-globalcluster.json deleted file mode 100644 index fccf366023..0000000000 --- a/src/cfnlint/data/schemas/providers/cn_northwest_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_central_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py index e55712ab38..2cfc474e5a 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_1/__init__.py @@ -1336,6 +1336,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", @@ -1550,6 +1551,7 @@ "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", "aws-evidently-launch.json", + "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", @@ -1663,6 +1665,7 @@ "aws-connect-predefinedattribute.json", "aws-iam-policy.json", "aws-databrew-schedule.json", + "aws-bedrock-agent.json", "aws-apprunner-service.json", "aws-connect-approvedorigin.json", "aws-ses-contactlist.json", @@ -1836,6 +1839,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/eu_central_1/aws-bedrock-agent.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-agent.json deleted file mode 100644 index 7da6126110..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-bedrock-agent.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "APISchema": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3Identifier" - } - }, - "required": [ - "S3" - ], - "title": "S3", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "Payload": { - "type": "string" - } - }, - "required": [ - "Payload" - ], - "title": "Payload", - "type": "object" - } - ] - }, - "ActionGroupExecutor": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "Lambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - } - }, - "required": [ - "Lambda" - ], - "title": "Lambda", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "CustomControl": { - "$ref": "#/definitions/CustomControlMethod" - } - }, - "required": [ - "CustomControl" - ], - "title": "CustomControl", - "type": "object" - } - ] - }, - "ActionGroupSignature": { - "enum": [ - "AMAZON.UserInput" - ], - "type": "string" - }, - "ActionGroupState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "AgentActionGroup": { - "additionalProperties": false, - "properties": { - "ActionGroupExecutor": { - "$ref": "#/definitions/ActionGroupExecutor" - }, - "ActionGroupName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "ActionGroupState": { - "$ref": "#/definitions/ActionGroupState" - }, - "ApiSchema": { - "$ref": "#/definitions/APISchema" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FunctionSchema": { - "$ref": "#/definitions/FunctionSchema" - }, - "ParentActionGroupSignature": { - "$ref": "#/definitions/ActionGroupSignature" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "ActionGroupName" - ], - "type": "object" - }, - "AgentKnowledgeBase": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "KnowledgeBaseId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "KnowledgeBaseState": { - "$ref": "#/definitions/KnowledgeBaseState" - } - }, - "required": [ - "KnowledgeBaseId", - "Description" - ], - "type": "object" - }, - "AgentStatus": { - "enum": [ - "CREATING", - "PREPARING", - "PREPARED", - "NOT_PREPARED", - "DELETING", - "FAILED", - "VERSIONING", - "UPDATING" - ], - "type": "string" - }, - "CreationMode": { - "enum": [ - "DEFAULT", - "OVERRIDDEN" - ], - "type": "string" - }, - "CustomControlMethod": { - "enum": [ - "RETURN_CONTROL" - ], - "type": "string" - }, - "Function": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 1200, - "minLength": 1, - "type": "string" - }, - "Name": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "Parameters": { - "$ref": "#/definitions/ParameterMap" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "FunctionSchema": { - "additionalProperties": false, - "properties": { - "Functions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Function" - }, - "type": "array" - } - }, - "required": [ - "Functions" - ], - "title": "Functions", - "type": "object" - }, - "GuardrailConfiguration": { - "additionalProperties": false, - "properties": { - "GuardrailIdentifier": { - "maxLength": 2048, - "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$", - "type": "string" - }, - "GuardrailVersion": { - "pattern": "^(([0-9]{1,8})|(DRAFT))$", - "type": "string" - } - }, - "type": "object" - }, - "InferenceConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumLength": { - "maximum": 4096, - "minimum": 0, - "type": "number" - }, - "StopSequences": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array" - }, - "Temperature": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "TopK": { - "maximum": 500, - "minimum": 0, - "type": "number" - }, - "TopP": { - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "KnowledgeBaseState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "ParameterDetail": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "Required": { - "type": "boolean" - }, - "Type": { - "$ref": "#/definitions/Type" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^([0-9a-zA-Z][_-]?){1,100}$": { - "$ref": "#/definitions/ParameterDetail" - } - }, - "type": "object" - }, - "PromptConfiguration": { - "additionalProperties": false, - "properties": { - "BasePromptTemplate": { - "maxLength": 100000, - "minLength": 1, - "type": "string" - }, - "InferenceConfiguration": { - "$ref": "#/definitions/InferenceConfiguration" - }, - "ParserMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptCreationMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptState": { - "$ref": "#/definitions/PromptState" - }, - "PromptType": { - "$ref": "#/definitions/PromptType" - } - }, - "type": "object" - }, - "PromptOverrideConfiguration": { - "additionalProperties": false, - "properties": { - "OverrideLambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - }, - "PromptConfigurations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/PromptConfiguration" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "PromptConfigurations" - ], - "type": "object" - }, - "PromptState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "PromptType": { - "enum": [ - "PRE_PROCESSING", - "ORCHESTRATION", - "POST_PROCESSING", - "KNOWLEDGE_BASE_RESPONSE_GENERATION" - ], - "type": "string" - }, - "S3Identifier": { - "additionalProperties": false, - "properties": { - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "S3ObjectKey": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", - "type": "string" - } - }, - "type": "object" - }, - "TagsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9\\s._:/=+@-]*$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "bedrock:CreateAgent", - "bedrock:GetAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:ListTagsForResource", - "bedrock:CreateGuardrail", - "bedrock:CreateGuardrailVersion", - "bedrock:GetGuardrail", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:DeleteAgent", - "bedrock:DeleteGuardrail", - "bedrock:GetGuardrail" - ] - }, - "list": { - "permissions": [ - "bedrock:ListAgents", - "bedrock:ListGuardrails" - ] - }, - "read": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:GetAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:ListTagsForResource", - "bedrock:GetGuardrail", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:UpdateAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:UpdateAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:DisassociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:UpdateAgentActionGroup", - "bedrock:DeleteAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:UntagResource", - "bedrock:ListTagsForResource", - "bedrock:UpdateGuardrail", - "bedrock:GetGuardrail", - "kms:Decrypt", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgentId" - ], - "properties": { - "ActionGroups": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentActionGroup" - }, - "type": "array" - }, - "AgentArn": { - "maxLength": 2048, - "pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "AgentResourceRoleArn": { - "maxLength": 2048, - "type": "string" - }, - "AgentStatus": { - "$ref": "#/definitions/AgentStatus" - }, - "AgentVersion": { - "maxLength": 5, - "minLength": 5, - "pattern": "^DRAFT$", - "type": "string" - }, - "AutoPrepare": { - "default": false, - "type": "boolean" - }, - "CreatedAt": { - "format": "date-time", - "type": "string" - }, - "CustomerEncryptionKeyArn": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FailureReasons": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "FoundationModel": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", - "type": "string" - }, - "GuardrailConfiguration": { - "$ref": "#/definitions/GuardrailConfiguration" - }, - "IdleSessionTTLInSeconds": { - "maximum": 3600, - "minimum": 60, - "type": "number" - }, - "Instruction": { - "minLength": 40, - "type": "string" - }, - "KnowledgeBases": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentKnowledgeBase" - }, - "type": "array" - }, - "PreparedAt": { - "format": "date-time", - "type": "string" - }, - "PromptOverrideConfiguration": { - "$ref": "#/definitions/PromptOverrideConfiguration" - }, - "RecommendedActions": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - }, - "Tags": { - "$ref": "#/definitions/TagsMap" - }, - "TestAliasTags": { - "$ref": "#/definitions/TagsMap" - }, - "UpdatedAt": { - "format": "date-time", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AgentArn", - "/properties/AgentId", - "/properties/AgentStatus", - "/properties/AgentVersion", - "/properties/CreatedAt", - "/properties/FailureReasons", - "/properties/PreparedAt", - "/properties/RecommendedActions", - "/properties/UpdatedAt" - ], - "required": [ - "AgentName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Bedrock::Agent", - "writeOnlyProperties": [ - "/properties/AutoPrepare", - "/properties/SkipResourceInUseCheckOnDelete", - "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-configurationset.json deleted file mode 100644 index e5780caa5e..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_central_1/aws-ses-configurationset.json +++ /dev/null @@ -1,169 +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" - } - }, - "required": [ - "CustomRedirectDomain" - ], - "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_central_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py index beed80c451..e48e64226a 100644 --- a/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_central_2/__init__.py @@ -632,7 +632,6 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/eu_central_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_central_2/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_central_2/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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_north_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py index 2b0fd339a9..73dad62484 100644 --- a/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_north_1/__init__.py @@ -1059,7 +1059,6 @@ "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", @@ -1225,7 +1224,6 @@ "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", "aws-evidently-launch.json", - "aws-ses-configurationset.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-codedeploy-deploymentgroup.json", @@ -1441,7 +1439,6 @@ "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/eu_north_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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_north_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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-ses-configurationset.json b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_north_1/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py index 72498112c2..cc3848088a 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_1/__init__.py @@ -841,7 +841,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", @@ -965,7 +964,6 @@ "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", @@ -1133,7 +1131,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/eu_south_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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_south_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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-ses-configurationset.json b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_1/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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 f76ea97864..1043ccdb07 100644 --- a/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_south_2/__init__.py @@ -633,7 +633,6 @@ "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", diff --git a/src/cfnlint/data/schemas/providers/eu_south_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_south_2/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_south_2/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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_1/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py index 978088eb2a..0b28f804d4 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_1/__init__.py @@ -1316,6 +1316,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", @@ -1527,6 +1528,7 @@ "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", "aws-evidently-launch.json", + "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", @@ -1635,6 +1637,7 @@ "aws-lightsail-disk.json", "aws-iam-policy.json", "aws-databrew-schedule.json", + "aws-bedrock-agent.json", "aws-apprunner-service.json", "aws-ses-contactlist.json", "aws-cloudformation-publisher.json", @@ -1803,6 +1806,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-cleanrooms-privacybudgettemplate.json", diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-agent.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-agent.json deleted file mode 100644 index 7da6126110..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-bedrock-agent.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "APISchema": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3Identifier" - } - }, - "required": [ - "S3" - ], - "title": "S3", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "Payload": { - "type": "string" - } - }, - "required": [ - "Payload" - ], - "title": "Payload", - "type": "object" - } - ] - }, - "ActionGroupExecutor": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "Lambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - } - }, - "required": [ - "Lambda" - ], - "title": "Lambda", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "CustomControl": { - "$ref": "#/definitions/CustomControlMethod" - } - }, - "required": [ - "CustomControl" - ], - "title": "CustomControl", - "type": "object" - } - ] - }, - "ActionGroupSignature": { - "enum": [ - "AMAZON.UserInput" - ], - "type": "string" - }, - "ActionGroupState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "AgentActionGroup": { - "additionalProperties": false, - "properties": { - "ActionGroupExecutor": { - "$ref": "#/definitions/ActionGroupExecutor" - }, - "ActionGroupName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "ActionGroupState": { - "$ref": "#/definitions/ActionGroupState" - }, - "ApiSchema": { - "$ref": "#/definitions/APISchema" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FunctionSchema": { - "$ref": "#/definitions/FunctionSchema" - }, - "ParentActionGroupSignature": { - "$ref": "#/definitions/ActionGroupSignature" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "ActionGroupName" - ], - "type": "object" - }, - "AgentKnowledgeBase": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "KnowledgeBaseId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "KnowledgeBaseState": { - "$ref": "#/definitions/KnowledgeBaseState" - } - }, - "required": [ - "KnowledgeBaseId", - "Description" - ], - "type": "object" - }, - "AgentStatus": { - "enum": [ - "CREATING", - "PREPARING", - "PREPARED", - "NOT_PREPARED", - "DELETING", - "FAILED", - "VERSIONING", - "UPDATING" - ], - "type": "string" - }, - "CreationMode": { - "enum": [ - "DEFAULT", - "OVERRIDDEN" - ], - "type": "string" - }, - "CustomControlMethod": { - "enum": [ - "RETURN_CONTROL" - ], - "type": "string" - }, - "Function": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 1200, - "minLength": 1, - "type": "string" - }, - "Name": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "Parameters": { - "$ref": "#/definitions/ParameterMap" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "FunctionSchema": { - "additionalProperties": false, - "properties": { - "Functions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Function" - }, - "type": "array" - } - }, - "required": [ - "Functions" - ], - "title": "Functions", - "type": "object" - }, - "GuardrailConfiguration": { - "additionalProperties": false, - "properties": { - "GuardrailIdentifier": { - "maxLength": 2048, - "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$", - "type": "string" - }, - "GuardrailVersion": { - "pattern": "^(([0-9]{1,8})|(DRAFT))$", - "type": "string" - } - }, - "type": "object" - }, - "InferenceConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumLength": { - "maximum": 4096, - "minimum": 0, - "type": "number" - }, - "StopSequences": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array" - }, - "Temperature": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "TopK": { - "maximum": 500, - "minimum": 0, - "type": "number" - }, - "TopP": { - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "KnowledgeBaseState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "ParameterDetail": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "Required": { - "type": "boolean" - }, - "Type": { - "$ref": "#/definitions/Type" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^([0-9a-zA-Z][_-]?){1,100}$": { - "$ref": "#/definitions/ParameterDetail" - } - }, - "type": "object" - }, - "PromptConfiguration": { - "additionalProperties": false, - "properties": { - "BasePromptTemplate": { - "maxLength": 100000, - "minLength": 1, - "type": "string" - }, - "InferenceConfiguration": { - "$ref": "#/definitions/InferenceConfiguration" - }, - "ParserMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptCreationMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptState": { - "$ref": "#/definitions/PromptState" - }, - "PromptType": { - "$ref": "#/definitions/PromptType" - } - }, - "type": "object" - }, - "PromptOverrideConfiguration": { - "additionalProperties": false, - "properties": { - "OverrideLambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - }, - "PromptConfigurations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/PromptConfiguration" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "PromptConfigurations" - ], - "type": "object" - }, - "PromptState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "PromptType": { - "enum": [ - "PRE_PROCESSING", - "ORCHESTRATION", - "POST_PROCESSING", - "KNOWLEDGE_BASE_RESPONSE_GENERATION" - ], - "type": "string" - }, - "S3Identifier": { - "additionalProperties": false, - "properties": { - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "S3ObjectKey": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", - "type": "string" - } - }, - "type": "object" - }, - "TagsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9\\s._:/=+@-]*$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "bedrock:CreateAgent", - "bedrock:GetAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:ListTagsForResource", - "bedrock:CreateGuardrail", - "bedrock:CreateGuardrailVersion", - "bedrock:GetGuardrail", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:DeleteAgent", - "bedrock:DeleteGuardrail", - "bedrock:GetGuardrail" - ] - }, - "list": { - "permissions": [ - "bedrock:ListAgents", - "bedrock:ListGuardrails" - ] - }, - "read": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:GetAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:ListTagsForResource", - "bedrock:GetGuardrail", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:UpdateAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:UpdateAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:DisassociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:UpdateAgentActionGroup", - "bedrock:DeleteAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:UntagResource", - "bedrock:ListTagsForResource", - "bedrock:UpdateGuardrail", - "bedrock:GetGuardrail", - "kms:Decrypt", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgentId" - ], - "properties": { - "ActionGroups": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentActionGroup" - }, - "type": "array" - }, - "AgentArn": { - "maxLength": 2048, - "pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "AgentResourceRoleArn": { - "maxLength": 2048, - "type": "string" - }, - "AgentStatus": { - "$ref": "#/definitions/AgentStatus" - }, - "AgentVersion": { - "maxLength": 5, - "minLength": 5, - "pattern": "^DRAFT$", - "type": "string" - }, - "AutoPrepare": { - "default": false, - "type": "boolean" - }, - "CreatedAt": { - "format": "date-time", - "type": "string" - }, - "CustomerEncryptionKeyArn": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FailureReasons": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "FoundationModel": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", - "type": "string" - }, - "GuardrailConfiguration": { - "$ref": "#/definitions/GuardrailConfiguration" - }, - "IdleSessionTTLInSeconds": { - "maximum": 3600, - "minimum": 60, - "type": "number" - }, - "Instruction": { - "minLength": 40, - "type": "string" - }, - "KnowledgeBases": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentKnowledgeBase" - }, - "type": "array" - }, - "PreparedAt": { - "format": "date-time", - "type": "string" - }, - "PromptOverrideConfiguration": { - "$ref": "#/definitions/PromptOverrideConfiguration" - }, - "RecommendedActions": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - }, - "Tags": { - "$ref": "#/definitions/TagsMap" - }, - "TestAliasTags": { - "$ref": "#/definitions/TagsMap" - }, - "UpdatedAt": { - "format": "date-time", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AgentArn", - "/properties/AgentId", - "/properties/AgentStatus", - "/properties/AgentVersion", - "/properties/CreatedAt", - "/properties/FailureReasons", - "/properties/PreparedAt", - "/properties/RecommendedActions", - "/properties/UpdatedAt" - ], - "required": [ - "AgentName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Bedrock::Agent", - "writeOnlyProperties": [ - "/properties/AutoPrepare", - "/properties/SkipResourceInUseCheckOnDelete", - "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/eu_west_1/aws-ses-configurationset.json deleted file mode 100644 index e5780caa5e..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_1/aws-ses-configurationset.json +++ /dev/null @@ -1,169 +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" - } - }, - "required": [ - "CustomRedirectDomain" - ], - "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_west_2/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py index ec9e1dce63..7a7cbe8ad7 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_2/__init__.py @@ -1234,7 +1234,6 @@ "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", @@ -1434,6 +1433,7 @@ "aws-wisdom-assistant.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", + "aws-ses-configurationset.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", @@ -1695,7 +1695,6 @@ "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/eu_west_2/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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_2/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_2/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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_west_2/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/eu_west_2/aws-ses-configurationset.json deleted file mode 100644 index e5780caa5e..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_2/aws-ses-configurationset.json +++ /dev/null @@ -1,169 +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" - } - }, - "required": [ - "CustomRedirectDomain" - ], - "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_west_3/__init__.py b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py index 734f23ab4f..e5eaa9e6e1 100644 --- a/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py +++ b/src/cfnlint/data/schemas/providers/eu_west_3/__init__.py @@ -1030,7 +1030,6 @@ "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", @@ -1187,7 +1186,6 @@ "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", @@ -1271,6 +1269,7 @@ "aws-lightsail-disk.json", "aws-iam-policy.json", "aws-databrew-schedule.json", + "aws-bedrock-agent.json", "aws-apprunner-service.json", "aws-ses-contactlist.json", "aws-cloudformation-publisher.json", @@ -1396,7 +1395,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/eu_west_3/aws-bedrock-agent.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-bedrock-agent.json deleted file mode 100644 index 7da6126110..0000000000 --- a/src/cfnlint/data/schemas/providers/eu_west_3/aws-bedrock-agent.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "APISchema": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3Identifier" - } - }, - "required": [ - "S3" - ], - "title": "S3", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "Payload": { - "type": "string" - } - }, - "required": [ - "Payload" - ], - "title": "Payload", - "type": "object" - } - ] - }, - "ActionGroupExecutor": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "Lambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - } - }, - "required": [ - "Lambda" - ], - "title": "Lambda", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "CustomControl": { - "$ref": "#/definitions/CustomControlMethod" - } - }, - "required": [ - "CustomControl" - ], - "title": "CustomControl", - "type": "object" - } - ] - }, - "ActionGroupSignature": { - "enum": [ - "AMAZON.UserInput" - ], - "type": "string" - }, - "ActionGroupState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "AgentActionGroup": { - "additionalProperties": false, - "properties": { - "ActionGroupExecutor": { - "$ref": "#/definitions/ActionGroupExecutor" - }, - "ActionGroupName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "ActionGroupState": { - "$ref": "#/definitions/ActionGroupState" - }, - "ApiSchema": { - "$ref": "#/definitions/APISchema" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FunctionSchema": { - "$ref": "#/definitions/FunctionSchema" - }, - "ParentActionGroupSignature": { - "$ref": "#/definitions/ActionGroupSignature" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "ActionGroupName" - ], - "type": "object" - }, - "AgentKnowledgeBase": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "KnowledgeBaseId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "KnowledgeBaseState": { - "$ref": "#/definitions/KnowledgeBaseState" - } - }, - "required": [ - "KnowledgeBaseId", - "Description" - ], - "type": "object" - }, - "AgentStatus": { - "enum": [ - "CREATING", - "PREPARING", - "PREPARED", - "NOT_PREPARED", - "DELETING", - "FAILED", - "VERSIONING", - "UPDATING" - ], - "type": "string" - }, - "CreationMode": { - "enum": [ - "DEFAULT", - "OVERRIDDEN" - ], - "type": "string" - }, - "CustomControlMethod": { - "enum": [ - "RETURN_CONTROL" - ], - "type": "string" - }, - "Function": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 1200, - "minLength": 1, - "type": "string" - }, - "Name": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "Parameters": { - "$ref": "#/definitions/ParameterMap" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "FunctionSchema": { - "additionalProperties": false, - "properties": { - "Functions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Function" - }, - "type": "array" - } - }, - "required": [ - "Functions" - ], - "title": "Functions", - "type": "object" - }, - "GuardrailConfiguration": { - "additionalProperties": false, - "properties": { - "GuardrailIdentifier": { - "maxLength": 2048, - "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$", - "type": "string" - }, - "GuardrailVersion": { - "pattern": "^(([0-9]{1,8})|(DRAFT))$", - "type": "string" - } - }, - "type": "object" - }, - "InferenceConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumLength": { - "maximum": 4096, - "minimum": 0, - "type": "number" - }, - "StopSequences": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array" - }, - "Temperature": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "TopK": { - "maximum": 500, - "minimum": 0, - "type": "number" - }, - "TopP": { - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "KnowledgeBaseState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "ParameterDetail": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "Required": { - "type": "boolean" - }, - "Type": { - "$ref": "#/definitions/Type" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^([0-9a-zA-Z][_-]?){1,100}$": { - "$ref": "#/definitions/ParameterDetail" - } - }, - "type": "object" - }, - "PromptConfiguration": { - "additionalProperties": false, - "properties": { - "BasePromptTemplate": { - "maxLength": 100000, - "minLength": 1, - "type": "string" - }, - "InferenceConfiguration": { - "$ref": "#/definitions/InferenceConfiguration" - }, - "ParserMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptCreationMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptState": { - "$ref": "#/definitions/PromptState" - }, - "PromptType": { - "$ref": "#/definitions/PromptType" - } - }, - "type": "object" - }, - "PromptOverrideConfiguration": { - "additionalProperties": false, - "properties": { - "OverrideLambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - }, - "PromptConfigurations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/PromptConfiguration" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "PromptConfigurations" - ], - "type": "object" - }, - "PromptState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "PromptType": { - "enum": [ - "PRE_PROCESSING", - "ORCHESTRATION", - "POST_PROCESSING", - "KNOWLEDGE_BASE_RESPONSE_GENERATION" - ], - "type": "string" - }, - "S3Identifier": { - "additionalProperties": false, - "properties": { - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "S3ObjectKey": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", - "type": "string" - } - }, - "type": "object" - }, - "TagsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9\\s._:/=+@-]*$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "bedrock:CreateAgent", - "bedrock:GetAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:ListTagsForResource", - "bedrock:CreateGuardrail", - "bedrock:CreateGuardrailVersion", - "bedrock:GetGuardrail", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:DeleteAgent", - "bedrock:DeleteGuardrail", - "bedrock:GetGuardrail" - ] - }, - "list": { - "permissions": [ - "bedrock:ListAgents", - "bedrock:ListGuardrails" - ] - }, - "read": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:GetAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:ListTagsForResource", - "bedrock:GetGuardrail", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:UpdateAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:UpdateAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:DisassociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:UpdateAgentActionGroup", - "bedrock:DeleteAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:UntagResource", - "bedrock:ListTagsForResource", - "bedrock:UpdateGuardrail", - "bedrock:GetGuardrail", - "kms:Decrypt", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgentId" - ], - "properties": { - "ActionGroups": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentActionGroup" - }, - "type": "array" - }, - "AgentArn": { - "maxLength": 2048, - "pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "AgentResourceRoleArn": { - "maxLength": 2048, - "type": "string" - }, - "AgentStatus": { - "$ref": "#/definitions/AgentStatus" - }, - "AgentVersion": { - "maxLength": 5, - "minLength": 5, - "pattern": "^DRAFT$", - "type": "string" - }, - "AutoPrepare": { - "default": false, - "type": "boolean" - }, - "CreatedAt": { - "format": "date-time", - "type": "string" - }, - "CustomerEncryptionKeyArn": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FailureReasons": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "FoundationModel": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", - "type": "string" - }, - "GuardrailConfiguration": { - "$ref": "#/definitions/GuardrailConfiguration" - }, - "IdleSessionTTLInSeconds": { - "maximum": 3600, - "minimum": 60, - "type": "number" - }, - "Instruction": { - "minLength": 40, - "type": "string" - }, - "KnowledgeBases": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentKnowledgeBase" - }, - "type": "array" - }, - "PreparedAt": { - "format": "date-time", - "type": "string" - }, - "PromptOverrideConfiguration": { - "$ref": "#/definitions/PromptOverrideConfiguration" - }, - "RecommendedActions": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - }, - "Tags": { - "$ref": "#/definitions/TagsMap" - }, - "TestAliasTags": { - "$ref": "#/definitions/TagsMap" - }, - "UpdatedAt": { - "format": "date-time", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AgentArn", - "/properties/AgentId", - "/properties/AgentStatus", - "/properties/AgentVersion", - "/properties/CreatedAt", - "/properties/FailureReasons", - "/properties/PreparedAt", - "/properties/RecommendedActions", - "/properties/UpdatedAt" - ], - "required": [ - "AgentName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Bedrock::Agent", - "writeOnlyProperties": [ - "/properties/AutoPrepare", - "/properties/SkipResourceInUseCheckOnDelete", - "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" - ] -} diff --git a/src/cfnlint/data/schemas/providers/eu_west_3/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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_west_3/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/eu_west_3/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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/il_central_1/__init__.py b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py index fca8da4064..7f24bd327d 100644 --- a/src/cfnlint/data/schemas/providers/il_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/il_central_1/__init__.py @@ -694,7 +694,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", "aws-cognito-identitypoolroleattachment.json", @@ -793,7 +792,6 @@ "aws-cloudformation-customresource.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", diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/il_central_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/il_central_1/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/il_central_1/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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/me_central_1/__init__.py b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py index 864e94df8b..aec5222d3c 100644 --- a/src/cfnlint/data/schemas/providers/me_central_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_central_1/__init__.py @@ -720,7 +720,6 @@ "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", @@ -775,6 +774,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", @@ -895,6 +895,7 @@ "aws-iam-instanceprofile.json", "aws-iot-billinggroup.json", "aws-datasync-locationnfs.json", + "aws-sagemaker-domain.json", "aws-certificatemanager-certificate.json", "aws-sdb-domain.json", "aws-ec2-subnetroutetableassociation.json", @@ -1028,6 +1029,7 @@ "aws-datasync-locationefs.json", "aws-ec2-localgatewayroutetable.json", "aws-sagemaker-appimageconfig.json", + "aws-verifiedpermissions-identitysource.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-pipes-pipe.json", diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_central_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-globalcluster.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-rds-globalcluster.json deleted file mode 100644 index fccf366023..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_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/me_central_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-domain.json deleted file mode 100644 index b1615520a0..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-sagemaker-domain.json +++ /dev/null @@ -1,774 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "properties": { - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "DockerSettings": { - "additionalProperties": false, - "properties": { - "EnableDockerAccess": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "VpcOnlyTrustedAccounts": { - "insertionOrder": false, - "items": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "maxItems": 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/me_central_1/aws-verifiedpermissions-identitysource.json b/src/cfnlint/data/schemas/providers/me_central_1/aws-verifiedpermissions-identitysource.json deleted file mode 100644 index df3e631ae0..0000000000 --- a/src/cfnlint/data/schemas/providers/me_central_1/aws-verifiedpermissions-identitysource.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PolicyStoreId" - ], - "definitions": { - "CognitoGroupConfiguration": { - "additionalProperties": false, - "properties": { - "GroupEntityType": { - "maxLength": 200, - "minLength": 1, - "pattern": "^([_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*$", - "type": "string" - } - }, - "required": [ - "GroupEntityType" - ], - "type": "object" - }, - "CognitoUserPoolConfiguration": { - "additionalProperties": false, - "properties": { - "ClientIds": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "pattern": "^.*$", - "type": "string" - }, - "maxItems": 1000, - "minItems": 0, - "type": "array" - }, - "GroupConfiguration": { - "$ref": "#/definitions/CognitoGroupConfiguration" - }, - "UserPoolArn": { - "maxLength": 255, - "minLength": 1, - "pattern": "^arn:[a-zA-Z0-9-]+:cognito-idp:(([a-zA-Z0-9-]+:\\d{12}:userpool/[\\w-]+_[0-9a-zA-Z]+))$", - "type": "string" - } - }, - "required": [ - "UserPoolArn" - ], - "type": "object" - }, - "IdentitySourceConfiguration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "CognitoUserPoolConfiguration": { - "$ref": "#/definitions/CognitoUserPoolConfiguration" - } - }, - "required": [ - "CognitoUserPoolConfiguration" - ], - "title": "CognitoUserPoolConfiguration", - "type": "object" - } - ] - }, - "IdentitySourceDetails": { - "additionalProperties": false, - "properties": { - "ClientIds": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "pattern": "^.*$", - "type": "string" - }, - "maxItems": 1000, - "minItems": 0, - "type": "array" - }, - "DiscoveryUrl": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^https://.*$", - "type": "string" - }, - "OpenIdIssuer": { - "$ref": "#/definitions/OpenIdIssuer" - }, - "UserPoolArn": { - "maxLength": 255, - "minLength": 1, - "pattern": "^arn:[a-zA-Z0-9-]+:cognito-idp:(([a-zA-Z0-9-]+:\\d{12}:userpool/[\\w-]+_[0-9a-zA-Z]+))$", - "type": "string" - } - }, - "type": "object" - }, - "OpenIdIssuer": { - "enum": [ - "COGNITO" - ], - "type": "string" - } - }, - "deprecatedProperties": [ - "/properties/Details" - ], - "handlers": { - "create": { - "permissions": [ - "verifiedpermissions:CreateIdentitySource", - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - }, - "delete": { - "permissions": [ - "verifiedpermissions:DeleteIdentitySource", - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "PolicyStoreId": { - "$ref": "resource-schema.json#/properties/PolicyStoreId" - } - }, - "required": [ - "PolicyStoreId" - ] - }, - "permissions": [ - "verifiedpermissions:ListIdentitySources", - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - }, - "read": { - "permissions": [ - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - }, - "update": { - "permissions": [ - "verifiedpermissions:UpdateIdentitySource", - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - } - }, - "primaryIdentifier": [ - "/properties/IdentitySourceId", - "/properties/PolicyStoreId" - ], - "properties": { - "Configuration": { - "$ref": "#/definitions/IdentitySourceConfiguration" - }, - "Details": { - "$ref": "#/definitions/IdentitySourceDetails" - }, - "IdentitySourceId": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "PolicyStoreId": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "PrincipalEntityType": { - "maxLength": 200, - "minLength": 1, - "pattern": "^.*$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Details", - "/properties/IdentitySourceId" - ], - "required": [ - "Configuration", - "PolicyStoreId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-avp", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::VerifiedPermissions::IdentitySource" -} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py index 6f8300e230..90af3fee6e 100644 --- a/src/cfnlint/data/schemas/providers/me_south_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/me_south_1/__init__.py @@ -857,7 +857,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", @@ -994,7 +993,6 @@ "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", @@ -1166,7 +1164,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/me_south_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:EnableControl", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "delete": { + "permissions": [ + "controltower:GetControlOperation", + "controltower:DisableControl", + "organizations:UpdatePolicy", + "organizations:DeletePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TargetIdentifier": { + "$ref": "resource-schema.json#/properties/TargetIdentifier" + } + }, + "required": [ + "TargetIdentifier" + ] + }, + "permissions": [ + "controltower:ListEnabledControls" + ] + }, + "read": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "controltower:ListEnabledControls", + "controltower:GetEnabledControl", + "controltower:GetControlOperation", + "controltower:UpdateEnabledControl", + "controltower:UntagResource", + "controltower:TagResource", + "organizations:UpdatePolicy", + "organizations:CreatePolicy", + "organizations:AttachPolicy", + "organizations:DetachPolicy", + "organizations:ListPoliciesForTarget", + "organizations:ListTargetsForPolicy", + "organizations:DescribePolicy" + ] + } + }, + "primaryIdentifier": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "properties": { + "ControlIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + }, + "Parameters": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EnabledControlParameter" + }, + "minItems": 1, + "type": "array" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "TargetIdentifier": { + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:aws[0-9a-zA-Z_\\-:\\/]+$", + "type": "string" + } + }, + "required": [ + "TargetIdentifier", + "ControlIdentifier" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-controltower", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ControlTower::EnabledControl" +} diff --git a/src/cfnlint/data/schemas/providers/me_south_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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/me_south_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/me_south_1/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/me_south_1/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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/sa_east_1/__init__.py b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py index 1647236ade..92d6e6de46 100644 --- a/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/sa_east_1/__init__.py @@ -1061,7 +1061,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", "aws-securitylake-subscribernotification.json", @@ -1225,7 +1224,6 @@ "aws-kinesisanalytics-applicationoutput.json", "aws-wafv2-rulegroup.json", "aws-sagemaker-modelpackagegroup.json", - "aws-ses-configurationset.json", "aws-elasticache-parametergroup.json", "aws-networkfirewall-loggingconfiguration.json", "aws-glue-classifier.json", @@ -1449,7 +1447,6 @@ "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/sa_east_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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/sa_east_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/Name" + ], + "definitions": { + "EventSubscription": { + "additionalProperties": false, + "properties": { + "EventType": { + "enum": [ + "ScheduledAssessmentFailure", + "DriftDetected" + ], + "type": "string" + }, + "Name": { + "maxLength": 256, + "type": "string" + }, + "SnsTopicArn": { + "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}$", + "type": "string" + } + }, + "required": [ + "Name", + "EventType" + ], + "type": "object" + }, + "IamRoleArn": { + "pattern": "arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):iam::[0-9]{12}:role\\/(([\\u0021-\\u007E]+\\u002F){1,511})?[A-Za-z0-9+=,.@_/-]{1,64}$", + "type": "string" + }, + "PermissionModel": { + "additionalProperties": false, + "properties": { + "CrossAccountRoleArns": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/IamRoleArn" + }, + "type": "array", + "uniqueItems": false + }, + "InvokerRoleName": { + "pattern": "((\\u002F[\\u0021-\\u007E]+\\u002F){1,511})?[A-Za-z0-9+=,.@_/-]{1,64}", + "type": "string" + }, + "Type": { + "enum": [ + "LegacyIAMUser", + "RoleBased" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PhysicalResourceId": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "pattern": "^[0-9]{12}$", + "type": "string" + }, + "AwsRegion": { + "pattern": "^[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]$", + "type": "string" + }, + "Identifier": { + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "Type": { + "pattern": "Arn|Native", + "type": "string" + } + }, + "required": [ + "Identifier", + "Type" + ], + "type": "object" + }, + "ResourceMapping": { + "additionalProperties": false, + "properties": { + "EksSourceName": { + "type": "string" + }, + "LogicalStackName": { + "type": "string" + }, + "MappingType": { + "pattern": "CfnStack|Resource|Terraform|EKS", + "type": "string" + }, + "PhysicalResourceId": { + "$ref": "#/definitions/PhysicalResourceId" + }, + "ResourceName": { + "pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$", + "type": "string" + }, + "TerraformSourceName": { + "type": "string" + } + }, + "required": [ + "MappingType", + "PhysicalResourceId" + ], + "type": "object" + }, + "TagMap": { + "additionalProperties": false, + "patternProperties": { + ".{1,128}": { + "$ref": "#/definitions/TagValue" + } + }, + "type": "object" + }, + "TagValue": { + "maxLength": 256, + "type": "string" + } + }, + "handlers": { + "create": { + "permissions": [ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "s3:GetBucketLocation", + "s3:GetObject", + "s3:ListAllMyBuckets", + "autoscaling:DescribeAutoScalingGroups", + "apigateway:GET", + "ec2:Describe*", + "ecs:DescribeServices", + "eks:DescribeCluster", + "elasticfilesystem:DescribeFileSystems", + "elasticloadbalancing:DescribeLoadBalancers", + "lambda:GetFunction*", + "rds:Describe*", + "dynamodb:Describe*", + "sqs:GetQueueAttributes", + "sns:GetTopicAttributes", + "route53:List*", + "iam:PassRole", + "resiliencehub:*" + ] + }, + "delete": { + "permissions": [ + "resiliencehub:DeleteApp", + "resiliencehub:UntagResource", + "resiliencehub:ListApps" + ] + }, + "list": { + "permissions": [ + "resiliencehub:ListApps" + ] + }, + "read": { + "permissions": [ + "resiliencehub:DescribeApp", + "resiliencehub:DescribeAppVersionTemplate", + "resiliencehub:ListAppVersionResourceMappings", + "resiliencehub:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "s3:GetBucketLocation", + "s3:GetObject", + "s3:ListAllMyBuckets", + "autoscaling:DescribeAutoScalingGroups", + "apigateway:GET", + "ec2:Describe*", + "ecs:DescribeServices", + "eks:DescribeCluster", + "elasticfilesystem:DescribeFileSystems", + "elasticloadbalancing:DescribeLoadBalancers", + "lambda:GetFunction*", + "rds:Describe*", + "dynamodb:Describe*", + "sqs:GetQueueAttributes", + "sns:GetTopicAttributes", + "route53:List*", + "iam:PassRole", + "resiliencehub:*" + ] + } + }, + "primaryIdentifier": [ + "/properties/AppArn" + ], + "properties": { + "AppArn": { + "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", + "type": "string" + }, + "AppAssessmentSchedule": { + "enum": [ + "Disabled", + "Daily" + ], + "type": "string" + }, + "AppTemplateBody": { + "maxLength": 409600, + "minLength": 0, + "pattern": "^[\\w\\s:,-\\.'\\/{}\\[\\]:\"]+$", + "type": "string" + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string" + }, + "DriftStatus": { + "enum": [ + "NotChecked", + "NotDetected", + "Detected" + ], + "type": "string" + }, + "EventSubscriptions": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/EventSubscription" + }, + "type": "array", + "uniqueItems": false + }, + "Name": { + "pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$", + "type": "string" + }, + "PermissionModel": { + "$ref": "#/definitions/PermissionModel" + }, + "ResiliencyPolicyArn": { + "pattern": "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}$", + "type": "string" + }, + "ResourceMappings": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/ResourceMapping" + }, + "type": "array", + "uniqueItems": false + }, + "Tags": { + "$ref": "#/definitions/TagMap" + } + }, + "readOnlyProperties": [ + "/properties/AppArn", + "/properties/DriftStatus" + ], + "required": [ + "Name", + "AppTemplateBody", + "ResourceMappings" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-resiliencehub", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::ResilienceHub::App" +} diff --git a/src/cfnlint/data/schemas/providers/sa_east_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/sa_east_1/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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/us_east_1/aws-bedrock-agent.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-bedrock-agent.json index 71f8519733..7da6126110 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-bedrock-agent.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-bedrock-agent.json @@ -541,7 +541,6 @@ "type": "number" }, "Instruction": { - "maxLength": 4000, "minLength": 40, "type": "string" }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-controltower-enabledcontrol.json index 75018496ac..1999a1aacf 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-controltower-enabledcontrol.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-controltower-enabledcontrol.json @@ -91,7 +91,8 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ] + ], + "timeoutInMinutes": 720 }, "delete": { "permissions": [ @@ -105,7 +106,8 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ] + ], + "timeoutInMinutes": 720 }, "list": { "handlerSchema": { @@ -144,7 +146,8 @@ "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:DescribePolicy" - ] + ], + "timeoutInMinutes": 720 } }, "primaryIdentifier": [ diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-containerrecipe.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-containerrecipe.json index b4afc59580..ecd4d11acf 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-containerrecipe.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-containerrecipe.json @@ -242,8 +242,7 @@ "type": "string" }, "InstanceConfiguration": { - "$ref": "#/definitions/InstanceConfiguration", - "additionalProperties": false + "$ref": "#/definitions/InstanceConfiguration" }, "KmsKeyId": { "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-resiliencehub-app.json index 0c20764ed8..7b24e3ece7 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-resiliencehub-app.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-resiliencehub-app.json @@ -174,7 +174,8 @@ "resiliencehub:DescribeApp", "resiliencehub:DescribeAppVersionTemplate", "resiliencehub:ListAppVersionResourceMappings", - "resiliencehub:ListTagsForResource" + "resiliencehub:ListTagsForResource", + "resiliencehub:ListAppVersions" ] }, "update": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-ses-configurationset.json index 7e6285d5ea..e5780caa5e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-ses-configurationset.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-ses-configurationset.json @@ -85,6 +85,9 @@ "type": "string" } }, + "required": [ + "CustomRedirectDomain" + ], "type": "object" }, "VdmOptions": { diff --git a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py index 0cb7b87457..a09ef7d33d 100644 --- a/src/cfnlint/data/schemas/providers/us_east_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_east_2/__init__.py @@ -2179,6 +2179,7 @@ "aws-mediatailor-playbackconfiguration.json", "aws-pcaconnectorad-serviceprincipalname.json", "aws-datazone-projectmembership.json", + "aws-elasticbeanstalk-environment.json", "aws-proton-servicetemplate.json", "aws-opensearchserverless-lifecyclepolicy.json", "aws-cognito-userpoolclient.json", diff --git a/src/cfnlint/data/schemas/providers/us_east_2/aws-elasticbeanstalk-environment.json b/src/cfnlint/data/schemas/providers/us_east_2/aws-elasticbeanstalk-environment.json deleted file mode 100644 index 2fa4fe9b33..0000000000 --- a/src/cfnlint/data/schemas/providers/us_east_2/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/us_gov_east_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py index aa1abd637c..c2974f9077 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/__init__.py @@ -707,7 +707,6 @@ "aws-ecs-primarytaskset.json", "aws-autoscaling-autoscalinggroup.json", "aws-wafv2-regexpatternset.json", - "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-route53-recordset.json", "aws-eks-accessentry.json", @@ -793,7 +792,6 @@ "aws-cloudformation-customresource.json", "aws-fis-targetaccountconfiguration.json", "aws-kinesisanalytics-applicationoutput.json", - "aws-ses-configurationset.json", "aws-glue-classifier.json", "aws-codedeploy-deploymentgroup.json", "aws-ec2-route.json", @@ -924,7 +922,6 @@ "aws-dms-replicationtask.json", "aws-ec2-routetable.json", "aws-datasync-locationsmb.json", - "aws-resiliencehub-app.json", "aws-securityhub-standard.json", "aws-rolesanywhere-crl.json", "aws-organizations-policy.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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/us_gov_east_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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/us_gov_east_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_east_1/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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/us_gov_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py index 58d72f9a39..dd52baaad1 100644 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/__init__.py @@ -833,7 +833,6 @@ "aws-cognito-userpooldomain.json", "aws-autoscaling-autoscalinggroup.json", "aws-wafv2-regexpatternset.json", - "aws-controltower-enabledcontrol.json", "aws-s3-accessgrantsinstance.json", "aws-cognito-identitypoolroleattachment.json", "aws-route53-recordset.json", @@ -944,7 +943,6 @@ "aws-fis-targetaccountconfiguration.json", "aws-kinesisanalytics-applicationoutput.json", "aws-sagemaker-modelpackagegroup.json", - "aws-ses-configurationset.json", "aws-glue-classifier.json", "aws-connect-securityprofile.json", "aws-codedeploy-deploymentgroup.json", @@ -1027,6 +1025,7 @@ "aws-ssm-maintenancewindowtask.json", "aws-ec2-transitgatewaymulticastdomain.json", "aws-verifiedpermissions-policytemplate.json", + "aws-eks-cluster.json", "aws-efs-filesystem.json", "aws-pinpoint-apnsvoipsandboxchannel.json", "aws-config-organizationconformancepack.json", @@ -1038,6 +1037,7 @@ "aws-datasync-locationnfs.json", "aws-kinesisanalyticsv2-applicationoutput.json", "aws-securityhub-configurationpolicy.json", + "aws-sagemaker-domain.json", "aws-greengrass-coredefinitionversion.json", "aws-certificatemanager-certificate.json", "aws-glue-schemaversionmetadata.json", @@ -1108,7 +1108,6 @@ "aws-dms-replicationtask.json", "aws-ec2-routetable.json", "aws-datasync-locationsmb.json", - "aws-resiliencehub-app.json", "aws-securityhub-standard.json", "aws-rolesanywhere-crl.json", "aws-organizations-policy.json", @@ -1171,6 +1170,7 @@ "aws-datasync-locationefs.json", "aws-ec2-localgatewayroutetable.json", "aws-sagemaker-appimageconfig.json", + "aws-verifiedpermissions-identitysource.json", "aws-elasticloadbalancingv2-targetgroup.json", "aws-applicationautoscaling-scalingpolicy.json", "aws-iotsitewise-gateway.json", diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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/us_gov_west_1/aws-eks-cluster.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-eks-cluster.json deleted file mode 100644 index f90589ca3b..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-eks-cluster.json +++ /dev/null @@ -1,356 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/OutpostConfig", - "/properties/EncryptionConfig", - "/properties/KubernetesNetworkConfig", - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/Name", - "/properties/RoleArn" - ], - "definitions": { - "AccessConfig": { - "additionalProperties": false, - "properties": { - "AuthenticationMode": { - "enum": [ - "CONFIG_MAP", - "API_AND_CONFIG_MAP", - "API" - ], - "type": "string" - }, - "BootstrapClusterCreatorAdminPermissions": { - "type": "boolean" - } - }, - "type": "object" - }, - "ClusterLogging": { - "additionalProperties": false, - "properties": { - "EnabledTypes": { - "$ref": "#/definitions/EnabledTypes" - } - }, - "type": "object" - }, - "ControlPlanePlacement": { - "additionalProperties": false, - "properties": { - "GroupName": { - "type": "string" - } - }, - "type": "object" - }, - "EnabledTypes": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LoggingTypeConfig" - }, - "type": "array" - }, - "EncryptionConfig": { - "additionalProperties": false, - "properties": { - "Provider": { - "$ref": "#/definitions/Provider" - }, - "Resources": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "KubernetesNetworkConfig": { - "additionalProperties": false, - "properties": { - "IpFamily": { - "enum": [ - "ipv4", - "ipv6" - ], - "type": "string" - }, - "ServiceIpv4Cidr": { - "type": "string" - }, - "ServiceIpv6Cidr": { - "type": "string" - } - }, - "type": "object" - }, - "Logging": { - "additionalProperties": false, - "properties": { - "ClusterLogging": { - "$ref": "#/definitions/ClusterLogging" - } - }, - "type": "object" - }, - "LoggingTypeConfig": { - "additionalProperties": false, - "properties": { - "Type": { - "enum": [ - "api", - "audit", - "authenticator", - "controllerManager", - "scheduler" - ], - "type": "string" - } - }, - "type": "object" - }, - "OutpostConfig": { - "additionalProperties": false, - "properties": { - "ControlPlaneInstanceType": { - "type": "string" - }, - "ControlPlanePlacement": { - "$ref": "#/definitions/ControlPlanePlacement" - }, - "OutpostArns": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "OutpostArns", - "ControlPlaneInstanceType" - ], - "type": "object" - }, - "Provider": { - "additionalProperties": false, - "properties": { - "KeyArn": { - "type": "string" - } - }, - "type": "object" - }, - "ResourcesVpcConfig": { - "additionalProperties": false, - "properties": { - "EndpointPrivateAccess": { - "type": "boolean" - }, - "EndpointPublicAccess": { - "type": "boolean" - }, - "PublicAccessCidrs": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - }, - "SecurityGroupIds": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "minItems": 1, - "type": "string" - }, - "type": "array" - }, - "SubnetIds": { - "insertionOrder": false, - "items": { - "minItems": 1, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "SubnetIds" - ], - "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": [ - "eks:CreateCluster", - "eks:DescribeCluster", - "eks:TagResource", - "iam:PassRole", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:CreateServiceLinkedRole", - "iam:CreateInstanceProfile", - "iam:TagInstanceProfile", - "iam:AddRoleToInstanceProfile", - "iam:GetInstanceProfile", - "iam:DeleteInstanceProfile", - "iam:RemoveRoleFromInstanceProfile", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "kms:DescribeKey", - "kms:CreateGrant" - ] - }, - "delete": { - "permissions": [ - "eks:DeleteCluster", - "eks:DescribeCluster" - ] - }, - "list": { - "permissions": [ - "eks:ListClusters" - ] - }, - "read": { - "permissions": [ - "eks:DescribeCluster" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "eks:UpdateClusterConfig", - "eks:UpdateClusterVersion", - "eks:DescribeCluster", - "eks:DescribeUpdate", - "eks:TagResource", - "eks:UntagResource" - ], - "timeoutInMinutes": 180 - } - }, - "primaryIdentifier": [ - "/properties/Name" - ], - "properties": { - "AccessConfig": { - "$ref": "#/definitions/AccessConfig" - }, - "Arn": { - "type": "string" - }, - "CertificateAuthorityData": { - "type": "string" - }, - "ClusterSecurityGroupId": { - "type": "string" - }, - "EncryptionConfig": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/EncryptionConfig", - "maxItems": 1 - }, - "type": "array" - }, - "EncryptionConfigKeyArn": { - "type": "string" - }, - "Endpoint": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "KubernetesNetworkConfig": { - "$ref": "#/definitions/KubernetesNetworkConfig" - }, - "Logging": { - "$ref": "#/definitions/Logging" - }, - "Name": { - "maxLength": 100, - "minLength": 1, - "pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*", - "type": "string" - }, - "OpenIdConnectIssuerUrl": { - "type": "string" - }, - "OutpostConfig": { - "$ref": "#/definitions/OutpostConfig" - }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/ResourcesVpcConfig" - }, - "RoleArn": { - "type": "string" - }, - "Tags": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - }, - "Version": { - "pattern": "1\\.\\d\\d", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/Endpoint", - "/properties/CertificateAuthorityData", - "/properties/ClusterSecurityGroupId", - "/properties/EncryptionConfigKeyArn", - "/properties/OpenIdConnectIssuerUrl", - "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" - ], - "required": [ - "RoleArn", - "ResourcesVpcConfig" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::EKS::Cluster", - "writeOnlyProperties": [ - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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/us_gov_west_1/aws-sagemaker-domain.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-domain.json deleted file mode 100644 index b1615520a0..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-sagemaker-domain.json +++ /dev/null @@ -1,774 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/AuthMode", - "/properties/DomainName", - "/properties/DomainSettings/RStudioServerProDomainSettings/DefaultResourceSpec", - "/properties/KmsKeyId", - "/properties/VpcId", - "/properties/Tags" - ], - "definitions": { - "CodeEditorAppSettings": { - "additionalProperties": false, - "properties": { - "CustomImages": { - "items": { - "$ref": "#/definitions/CustomImage" - }, - "maxItems": 200, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "DefaultResourceSpec": { - "$ref": "#/definitions/ResourceSpec" - }, - "LifecycleConfigArns": { - "items": { - "$ref": "#/definitions/StudioLifecycleConfigArn" - }, - "maxItems": 30, - "minItems": 0, - "type": "array", - "uniqueItems": false - } - }, - "type": "object" - }, - "CodeRepository": { - "additionalProperties": false, - "properties": { - "RepositoryUrl": { - "maxLength": 256, - "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$", - "type": "string" - } - }, - "required": [ - "RepositoryUrl" - ], - "type": "object" - }, - "CustomFileSystemConfig": { - "additionalProperties": false, - "properties": { - "EFSFileSystemConfig": { - "$ref": "#/definitions/EFSFileSystemConfig" - } - }, - "type": "object" - }, - "CustomImage": { - "additionalProperties": false, - "properties": { - "AppImageConfigName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}", - "type": "string" - }, - "ImageName": { - "maxLength": 63, - "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$", - "type": "string" - }, - "ImageVersionNumber": { - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "AppImageConfigName", - "ImageName" - ], - "type": "object" - }, - "CustomPosixUserConfig": { - "additionalProperties": false, - "properties": { - "Gid": { - "maximum": 4000000, - "minimum": 1001, - "type": "integer" - }, - "Uid": { - "maximum": 4000000, - "minimum": 10000, - "type": "integer" - } - }, - "required": [ - "Uid", - "Gid" - ], - "type": "object" - }, - "DefaultEbsStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - }, - "MaximumEbsVolumeSizeInGb": { - "$ref": "#/definitions/SpaceEbsVolumeSizeInGb" - } - }, - "required": [ - "DefaultEbsVolumeSizeInGb", - "MaximumEbsVolumeSizeInGb" - ], - "type": "object" - }, - "DefaultSpaceSettings": { - "additionalProperties": false, - "properties": { - "CustomFileSystemConfigs": { - "items": { - "$ref": "#/definitions/CustomFileSystemConfig" - }, - "maxItems": 2, - "minItems": 0, - "type": "array", - "uniqueItems": true - }, - "CustomPosixUserConfig": { - "$ref": "#/definitions/CustomPosixUserConfig" - }, - "ExecutionRole": { - "maxLength": 2048, - "minLength": 20, - "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$", - "type": "string" - }, - "JupyterLabAppSettings": { - "$ref": "#/definitions/JupyterLabAppSettings" - }, - "JupyterServerAppSettings": { - "$ref": "#/definitions/JupyterServerAppSettings" - }, - "KernelGatewayAppSettings": { - "$ref": "#/definitions/KernelGatewayAppSettings" - }, - "SecurityGroups": { - "format": "AWS::EC2::SecurityGroup.Ids", - "insertionOrder": false, - "items": { - "format": "AWS::EC2::SecurityGroup.GroupId", - "maxLength": 32, - "pattern": "[-0-9a-zA-Z]+", - "type": "string" - }, - "maxItems": 5, - "minItems": 0, - "type": "array", - "uniqueItems": false - }, - "SpaceStorageSettings": { - "$ref": "#/definitions/DefaultSpaceStorageSettings" - } - }, - "required": [ - "ExecutionRole" - ], - "type": "object" - }, - "DefaultSpaceStorageSettings": { - "additionalProperties": false, - "properties": { - "DefaultEbsStorageSettings": { - "$ref": "#/definitions/DefaultEbsStorageSettings" - } - }, - "type": "object" - }, - "DockerSettings": { - "additionalProperties": false, - "properties": { - "EnableDockerAccess": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "VpcOnlyTrustedAccounts": { - "insertionOrder": false, - "items": { - "maxLength": 12, - "minLength": 12, - "pattern": "^\\d+$", - "type": "string" - }, - "maxItems": 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/us_gov_west_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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/us_gov_west_1/aws-verifiedpermissions-identitysource.json b/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-verifiedpermissions-identitysource.json deleted file mode 100644 index df3e631ae0..0000000000 --- a/src/cfnlint/data/schemas/providers/us_gov_west_1/aws-verifiedpermissions-identitysource.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PolicyStoreId" - ], - "definitions": { - "CognitoGroupConfiguration": { - "additionalProperties": false, - "properties": { - "GroupEntityType": { - "maxLength": 200, - "minLength": 1, - "pattern": "^([_a-zA-Z][_a-zA-Z0-9]*::)*[_a-zA-Z][_a-zA-Z0-9]*$", - "type": "string" - } - }, - "required": [ - "GroupEntityType" - ], - "type": "object" - }, - "CognitoUserPoolConfiguration": { - "additionalProperties": false, - "properties": { - "ClientIds": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "pattern": "^.*$", - "type": "string" - }, - "maxItems": 1000, - "minItems": 0, - "type": "array" - }, - "GroupConfiguration": { - "$ref": "#/definitions/CognitoGroupConfiguration" - }, - "UserPoolArn": { - "maxLength": 255, - "minLength": 1, - "pattern": "^arn:[a-zA-Z0-9-]+:cognito-idp:(([a-zA-Z0-9-]+:\\d{12}:userpool/[\\w-]+_[0-9a-zA-Z]+))$", - "type": "string" - } - }, - "required": [ - "UserPoolArn" - ], - "type": "object" - }, - "IdentitySourceConfiguration": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "CognitoUserPoolConfiguration": { - "$ref": "#/definitions/CognitoUserPoolConfiguration" - } - }, - "required": [ - "CognitoUserPoolConfiguration" - ], - "title": "CognitoUserPoolConfiguration", - "type": "object" - } - ] - }, - "IdentitySourceDetails": { - "additionalProperties": false, - "properties": { - "ClientIds": { - "insertionOrder": false, - "items": { - "maxLength": 255, - "minLength": 1, - "pattern": "^.*$", - "type": "string" - }, - "maxItems": 1000, - "minItems": 0, - "type": "array" - }, - "DiscoveryUrl": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^https://.*$", - "type": "string" - }, - "OpenIdIssuer": { - "$ref": "#/definitions/OpenIdIssuer" - }, - "UserPoolArn": { - "maxLength": 255, - "minLength": 1, - "pattern": "^arn:[a-zA-Z0-9-]+:cognito-idp:(([a-zA-Z0-9-]+:\\d{12}:userpool/[\\w-]+_[0-9a-zA-Z]+))$", - "type": "string" - } - }, - "type": "object" - }, - "OpenIdIssuer": { - "enum": [ - "COGNITO" - ], - "type": "string" - } - }, - "deprecatedProperties": [ - "/properties/Details" - ], - "handlers": { - "create": { - "permissions": [ - "verifiedpermissions:CreateIdentitySource", - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - }, - "delete": { - "permissions": [ - "verifiedpermissions:DeleteIdentitySource", - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "PolicyStoreId": { - "$ref": "resource-schema.json#/properties/PolicyStoreId" - } - }, - "required": [ - "PolicyStoreId" - ] - }, - "permissions": [ - "verifiedpermissions:ListIdentitySources", - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - }, - "read": { - "permissions": [ - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - }, - "update": { - "permissions": [ - "verifiedpermissions:UpdateIdentitySource", - "verifiedpermissions:GetIdentitySource", - "cognito-idp:DescribeUserPool", - "cognito-idp:ListUserPoolClients" - ] - } - }, - "primaryIdentifier": [ - "/properties/IdentitySourceId", - "/properties/PolicyStoreId" - ], - "properties": { - "Configuration": { - "$ref": "#/definitions/IdentitySourceConfiguration" - }, - "Details": { - "$ref": "#/definitions/IdentitySourceDetails" - }, - "IdentitySourceId": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "PolicyStoreId": { - "maxLength": 200, - "minLength": 1, - "pattern": "^[a-zA-Z0-9-]*$", - "type": "string" - }, - "PrincipalEntityType": { - "maxLength": 200, - "minLength": 1, - "pattern": "^.*$", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/Details", - "/properties/IdentitySourceId" - ], - "required": [ - "Configuration", - "PolicyStoreId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-avp", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::VerifiedPermissions::IdentitySource" -} diff --git a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py index 505e21e13a..350724f734 100644 --- a/src/cfnlint/data/schemas/providers/us_west_1/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_1/__init__.py @@ -1011,7 +1011,6 @@ "aws-route53-dnssec.json", "aws-redshift-endpointauthorization.json", "aws-ec2-transitgatewayroutetable.json", - "aws-controltower-enabledcontrol.json", "aws-networkmanager-connectattachment.json", "aws-s3-accessgrantsinstance.json", "aws-macie-customdataidentifier.json", @@ -1170,7 +1169,6 @@ "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", @@ -1377,7 +1375,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/us_west_1/aws-controltower-enabledcontrol.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-controltower-enabledcontrol.json new file mode 100644 index 0000000000..75018496ac --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-controltower-enabledcontrol.json @@ -0,0 +1,198 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TargetIdentifier", + "/properties/ControlIdentifier" + ], + "definitions": { + "EnabledControlParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "anyOf": [ + { + "insertionOrder": false, + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "boolean" + } + ] + }, + "minItems": 1, + "type": "array" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "object" + }, + { + "type": "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/us_west_1/aws-resiliencehub-app.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-resiliencehub-app.json new file mode 100644 index 0000000000..0c20764ed8 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-resiliencehub-app.json @@ -0,0 +1,288 @@ +{ + "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/us_west_1/aws-ses-configurationset.json b/src/cfnlint/data/schemas/providers/us_west_1/aws-ses-configurationset.json new file mode 100644 index 0000000000..7e6285d5ea --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_1/aws-ses-configurationset.json @@ -0,0 +1,166 @@ +{ + "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/us_west_2/__init__.py b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py index bf94ef50d6..8c2eda753e 100644 --- a/src/cfnlint/data/schemas/providers/us_west_2/__init__.py +++ b/src/cfnlint/data/schemas/providers/us_west_2/__init__.py @@ -1339,7 +1339,6 @@ "aws-dms-instanceprofile.json", "aws-opensearchserverless-vpcendpoint.json", "aws-quicksight-datasource.json", - "aws-iot-cacertificate.json", "aws-ec2-networkaclentry.json", "aws-robomaker-simulationapplicationversion.json", "aws-ec2-networkinsightsaccessscopeanalysis.json", @@ -1384,6 +1383,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", @@ -1685,7 +1685,6 @@ "aws-mediapackagev2-channel.json", "aws-appintegrations-eventintegration.json", "aws-batch-schedulingpolicy.json", - "aws-iot-authorizer.json", "aws-timestream-influxdbinstance.json", "aws-mediaconnect-bridgesource.json", "aws-mediapackagev2-channelpolicy.json", @@ -1722,6 +1721,7 @@ "aws-connect-predefinedattribute.json", "aws-iam-policy.json", "aws-databrew-schedule.json", + "aws-bedrock-agent.json", "aws-apprunner-service.json", "aws-connect-approvedorigin.json", "aws-ses-contactlist.json", @@ -1805,7 +1805,6 @@ "aws-servicecatalog-tagoption.json", "aws-servicediscovery-privatednsnamespace.json", "aws-servicecatalog-launchroleconstraint.json", - "aws-iot-rolealias.json", "aws-sagemaker-modelbiasjobdefinition.json", "aws-secretsmanager-resourcepolicy.json", "aws-cloudformation-hookdefaultversion.json", @@ -1900,6 +1899,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", @@ -2012,7 +2012,6 @@ "aws-panorama-package.json", "aws-lookoutvision-project.json", "aws-oam-link.json", - "aws-iot-domainconfiguration.json", "aws-frauddetector-eventtype.json", "aws-sagemaker-endpoint.json", "aws-elasticloadbalancingv2-truststorerevocation.json", @@ -2094,7 +2093,6 @@ "aws-servicecatalog-portfolio.json", "aws-workspacesweb-truststore.json", "aws-customerprofiles-domain.json", - "aws-iot-policy.json", "aws-aps-scraper.json", "aws-ec2-transitgatewayroute.json", "aws-ssm-maintenancewindow.json", @@ -2193,7 +2191,6 @@ "aws-cognito-userpoolidentityprovider.json", "aws-appstream-stackuserassociation.json", "aws-resiliencehub-resiliencypolicy.json", - "aws-location-tracker.json", "aws-iot-dimension.json", "aws-logs-loggroup.json", "aws-evidently-experiment.json", @@ -2244,7 +2241,6 @@ "aws-route53recoveryreadiness-readinesscheck.json", "aws-ec2-verifiedaccesstrustprovider.json", "aws-appmesh-virtualrouter.json", - "aws-iot-certificateprovider.json", "aws-pinpointemail-configurationset.json", "aws-pinpoint-emailtemplate.json", "aws-medialive-multiplex.json", @@ -2348,7 +2344,6 @@ "aws-ec2-securitygroupingress.json", "aws-guardduty-detector.json", "aws-sagemaker-modelqualityjobdefinition.json", - "aws-iot-provisioningtemplate.json", "aws-personalize-schema.json", "aws-appflow-flow.json", "aws-apigateway-stage.json", @@ -2420,7 +2415,6 @@ "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/us_west_2/aws-bedrock-agent.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-agent.json deleted file mode 100644 index 7da6126110..0000000000 --- a/src/cfnlint/data/schemas/providers/us_west_2/aws-bedrock-agent.json +++ /dev/null @@ -1,612 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "APISchema": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "S3": { - "$ref": "#/definitions/S3Identifier" - } - }, - "required": [ - "S3" - ], - "title": "S3", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "Payload": { - "type": "string" - } - }, - "required": [ - "Payload" - ], - "title": "Payload", - "type": "object" - } - ] - }, - "ActionGroupExecutor": { - "oneOf": [ - { - "additionalProperties": false, - "properties": { - "Lambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - } - }, - "required": [ - "Lambda" - ], - "title": "Lambda", - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "CustomControl": { - "$ref": "#/definitions/CustomControlMethod" - } - }, - "required": [ - "CustomControl" - ], - "title": "CustomControl", - "type": "object" - } - ] - }, - "ActionGroupSignature": { - "enum": [ - "AMAZON.UserInput" - ], - "type": "string" - }, - "ActionGroupState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "AgentActionGroup": { - "additionalProperties": false, - "properties": { - "ActionGroupExecutor": { - "$ref": "#/definitions/ActionGroupExecutor" - }, - "ActionGroupName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "ActionGroupState": { - "$ref": "#/definitions/ActionGroupState" - }, - "ApiSchema": { - "$ref": "#/definitions/APISchema" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FunctionSchema": { - "$ref": "#/definitions/FunctionSchema" - }, - "ParentActionGroupSignature": { - "$ref": "#/definitions/ActionGroupSignature" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "ActionGroupName" - ], - "type": "object" - }, - "AgentKnowledgeBase": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "KnowledgeBaseId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "KnowledgeBaseState": { - "$ref": "#/definitions/KnowledgeBaseState" - } - }, - "required": [ - "KnowledgeBaseId", - "Description" - ], - "type": "object" - }, - "AgentStatus": { - "enum": [ - "CREATING", - "PREPARING", - "PREPARED", - "NOT_PREPARED", - "DELETING", - "FAILED", - "VERSIONING", - "UPDATING" - ], - "type": "string" - }, - "CreationMode": { - "enum": [ - "DEFAULT", - "OVERRIDDEN" - ], - "type": "string" - }, - "CustomControlMethod": { - "enum": [ - "RETURN_CONTROL" - ], - "type": "string" - }, - "Function": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 1200, - "minLength": 1, - "type": "string" - }, - "Name": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "Parameters": { - "$ref": "#/definitions/ParameterMap" - } - }, - "required": [ - "Name" - ], - "type": "object" - }, - "FunctionSchema": { - "additionalProperties": false, - "properties": { - "Functions": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Function" - }, - "type": "array" - } - }, - "required": [ - "Functions" - ], - "title": "Functions", - "type": "object" - }, - "GuardrailConfiguration": { - "additionalProperties": false, - "properties": { - "GuardrailIdentifier": { - "maxLength": 2048, - "pattern": "^(([a-z0-9]+)|(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:guardrail/[a-z0-9]+))$", - "type": "string" - }, - "GuardrailVersion": { - "pattern": "^(([0-9]{1,8})|(DRAFT))$", - "type": "string" - } - }, - "type": "object" - }, - "InferenceConfiguration": { - "additionalProperties": false, - "properties": { - "MaximumLength": { - "maximum": 4096, - "minimum": 0, - "type": "number" - }, - "StopSequences": { - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 4, - "minItems": 0, - "type": "array" - }, - "Temperature": { - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "TopK": { - "maximum": 500, - "minimum": 0, - "type": "number" - }, - "TopP": { - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "type": "object" - }, - "KnowledgeBaseState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "ParameterDetail": { - "additionalProperties": false, - "properties": { - "Description": { - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - "Required": { - "type": "boolean" - }, - "Type": { - "$ref": "#/definitions/Type" - } - }, - "required": [ - "Type" - ], - "type": "object" - }, - "ParameterMap": { - "additionalProperties": false, - "patternProperties": { - "^([0-9a-zA-Z][_-]?){1,100}$": { - "$ref": "#/definitions/ParameterDetail" - } - }, - "type": "object" - }, - "PromptConfiguration": { - "additionalProperties": false, - "properties": { - "BasePromptTemplate": { - "maxLength": 100000, - "minLength": 1, - "type": "string" - }, - "InferenceConfiguration": { - "$ref": "#/definitions/InferenceConfiguration" - }, - "ParserMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptCreationMode": { - "$ref": "#/definitions/CreationMode" - }, - "PromptState": { - "$ref": "#/definitions/PromptState" - }, - "PromptType": { - "$ref": "#/definitions/PromptType" - } - }, - "type": "object" - }, - "PromptOverrideConfiguration": { - "additionalProperties": false, - "properties": { - "OverrideLambda": { - "maxLength": 2048, - "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "type": "string" - }, - "PromptConfigurations": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/PromptConfiguration" - }, - "maxItems": 10, - "type": "array" - } - }, - "required": [ - "PromptConfigurations" - ], - "type": "object" - }, - "PromptState": { - "enum": [ - "ENABLED", - "DISABLED" - ], - "type": "string" - }, - "PromptType": { - "enum": [ - "PRE_PROCESSING", - "ORCHESTRATION", - "POST_PROCESSING", - "KNOWLEDGE_BASE_RESPONSE_GENERATION" - ], - "type": "string" - }, - "S3Identifier": { - "additionalProperties": false, - "properties": { - "S3BucketName": { - "maxLength": 63, - "minLength": 3, - "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", - "type": "string" - }, - "S3ObjectKey": { - "maxLength": 1024, - "minLength": 1, - "pattern": "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", - "type": "string" - } - }, - "type": "object" - }, - "TagsMap": { - "additionalProperties": false, - "patternProperties": { - "^[a-zA-Z0-9\\s._:/=+@-]*$": { - "maxLength": 256, - "minLength": 0, - "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", - "type": "string" - } - }, - "type": "object" - }, - "Type": { - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ], - "type": "string" - } - }, - "handlers": { - "create": { - "permissions": [ - "bedrock:CreateAgent", - "bedrock:GetAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:ListTagsForResource", - "bedrock:CreateGuardrail", - "bedrock:CreateGuardrailVersion", - "bedrock:GetGuardrail", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:DeleteAgent", - "bedrock:DeleteGuardrail", - "bedrock:GetGuardrail" - ] - }, - "list": { - "permissions": [ - "bedrock:ListAgents", - "bedrock:ListGuardrails" - ] - }, - "read": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:GetAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:GetAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:ListTagsForResource", - "bedrock:GetGuardrail", - "kms:Decrypt" - ] - }, - "update": { - "permissions": [ - "bedrock:GetAgent", - "bedrock:UpdateAgent", - "bedrock:PrepareAgent", - "bedrock:GetAgentKnowledgeBase", - "bedrock:UpdateAgentKnowledgeBase", - "bedrock:AssociateAgentKnowledgeBase", - "bedrock:DisassociateAgentKnowledgeBase", - "bedrock:ListAgentKnowledgeBases", - "bedrock:CreateAgentActionGroup", - "bedrock:GetAgentActionGroup", - "bedrock:UpdateAgentActionGroup", - "bedrock:DeleteAgentActionGroup", - "bedrock:ListAgentActionGroups", - "bedrock:TagResource", - "bedrock:UntagResource", - "bedrock:ListTagsForResource", - "bedrock:UpdateGuardrail", - "bedrock:GetGuardrail", - "kms:Decrypt", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/AgentId" - ], - "properties": { - "ActionGroups": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentActionGroup" - }, - "type": "array" - }, - "AgentArn": { - "maxLength": 2048, - "pattern": "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentId": { - "pattern": "^[0-9a-zA-Z]{10}$", - "type": "string" - }, - "AgentName": { - "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", - "type": "string" - }, - "AgentResourceRoleArn": { - "maxLength": 2048, - "type": "string" - }, - "AgentStatus": { - "$ref": "#/definitions/AgentStatus" - }, - "AgentVersion": { - "maxLength": 5, - "minLength": 5, - "pattern": "^DRAFT$", - "type": "string" - }, - "AutoPrepare": { - "default": false, - "type": "boolean" - }, - "CreatedAt": { - "format": "date-time", - "type": "string" - }, - "CustomerEncryptionKeyArn": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", - "type": "string" - }, - "Description": { - "maxLength": 200, - "minLength": 1, - "type": "string" - }, - "FailureReasons": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "FoundationModel": { - "maxLength": 2048, - "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", - "type": "string" - }, - "GuardrailConfiguration": { - "$ref": "#/definitions/GuardrailConfiguration" - }, - "IdleSessionTTLInSeconds": { - "maximum": 3600, - "minimum": 60, - "type": "number" - }, - "Instruction": { - "minLength": 40, - "type": "string" - }, - "KnowledgeBases": { - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AgentKnowledgeBase" - }, - "type": "array" - }, - "PreparedAt": { - "format": "date-time", - "type": "string" - }, - "PromptOverrideConfiguration": { - "$ref": "#/definitions/PromptOverrideConfiguration" - }, - "RecommendedActions": { - "insertionOrder": false, - "items": { - "maxLength": 2048, - "type": "string" - }, - "maxItems": 2048, - "type": "array" - }, - "SkipResourceInUseCheckOnDelete": { - "default": false, - "type": "boolean" - }, - "Tags": { - "$ref": "#/definitions/TagsMap" - }, - "TestAliasTags": { - "$ref": "#/definitions/TagsMap" - }, - "UpdatedAt": { - "format": "date-time", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/AgentArn", - "/properties/AgentId", - "/properties/AgentStatus", - "/properties/AgentVersion", - "/properties/CreatedAt", - "/properties/FailureReasons", - "/properties/PreparedAt", - "/properties/RecommendedActions", - "/properties/UpdatedAt" - ], - "required": [ - "AgentName" - ], - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::Bedrock::Agent", - "writeOnlyProperties": [ - "/properties/AutoPrepare", - "/properties/SkipResourceInUseCheckOnDelete", - "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" - ] -} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-ecr-repositorycreationtemplate.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-ecr-repositorycreationtemplate.json new file mode 100644 index 0000000000..57b0b79095 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-ecr-repositorycreationtemplate.json @@ -0,0 +1,168 @@ +{ + "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/us_west_2/aws-iot-authorizer.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-authorizer.json new file mode 100644 index 0000000000..4fd44d03a5 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-authorizer.json @@ -0,0 +1,128 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/SigningDisabled", + "/properties/AuthorizerName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DeleteAuthorizer", + "iot:DescribeAuthorizer" + ] + }, + "list": { + "permissions": [ + "iot:ListAuthorizers" + ] + }, + "read": { + "permissions": [ + "iot:DescribeAuthorizer", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateAuthorizer", + "iot:DescribeAuthorizer", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/AuthorizerName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerFunctionArn": { + "type": "string" + }, + "AuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "EnableCachingForHttp": { + "type": "boolean" + }, + "SigningDisabled": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TokenKeyName": { + "type": "string" + }, + "TokenSigningPublicKeys": { + "additionalProperties": false, + "patternProperties": { + "[a-zA-Z0-9:_-]+": { + "maxLength": 5120, + "type": "string" + } + }, + "type": "object" + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "required": [ + "AuthorizerFunctionArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Authorizer" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-cacertificate.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-cacertificate.json new file mode 100644 index 0000000000..7c56105907 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-cacertificate.json @@ -0,0 +1,174 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/CertificateMode", + "/properties/CACertificatePem" + ], + "definitions": { + "RegistrationConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "TemplateBody": { + "maxLength": 10240, + "minLength": 0, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:RegisterCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:UpdateCACertificate", + "iot:DeleteCACertificate", + "iot:DescribeCACertificate" + ] + }, + "list": { + "permissions": [ + "iot:ListCACertificates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCACertificate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateCACertificate", + "iot:DescribeCACertificate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AutoRegistrationStatus": { + "enum": [ + "ENABLE", + "DISABLE" + ], + "type": "string" + }, + "CACertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + }, + "CertificateMode": { + "enum": [ + "DEFAULT", + "SNI_ONLY" + ], + "type": "string" + }, + "Id": { + "type": "string" + }, + "RegistrationConfig": { + "$ref": "#/definitions/RegistrationConfig" + }, + "RemoveAutoRegistration": { + "type": "boolean" + }, + "Status": { + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "VerificationCertificatePem": { + "maxLength": 65536, + "minLength": 1, + "pattern": "[\\s\\S]*", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "CACertificatePem", + "Status" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CACertificate", + "writeOnlyProperties": [ + "/properties/VerificationCertificatePem", + "/properties/RemoveAutoRegistration" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-certificateprovider.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-certificateprovider.json new file mode 100644 index 0000000000..ea4c9d9f71 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-certificateprovider.json @@ -0,0 +1,125 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/CertificateProviderName" + ], + "definitions": { + "CertificateProviderOperation": { + "enum": [ + "CreateCertificateFromCsr" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteCertificateProvider", + "iot:DescribeCertificateProvider" + ] + }, + "list": { + "permissions": [ + "iot:ListCertificateProviders" + ] + }, + "read": { + "permissions": [ + "iot:DescribeCertificateProvider", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateCertificateProvider", + "iot:DescribeCertificateProvider", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/CertificateProviderName" + ], + "properties": { + "AccountDefaultForOperations": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/CertificateProviderOperation" + }, + "maxItems": 1, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "Arn": { + "type": "string" + }, + "CertificateProviderName": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "LambdaFunctionArn": { + "maxLength": 170, + "minLength": 1, + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn" + ], + "replacementStrategy": "delete_then_create", + "required": [ + "LambdaFunctionArn", + "AccountDefaultForOperations" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::CertificateProvider" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-domainconfiguration.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-domainconfiguration.json new file mode 100644 index 0000000000..03db5c565e --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-domainconfiguration.json @@ -0,0 +1,224 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/DomainConfigurationName", + "/properties/DomainName", + "/properties/ServiceType", + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ], + "definitions": { + "AuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AllowAuthorizerOverride": { + "type": "boolean" + }, + "DefaultAuthorizerName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w=,@-]+$", + "type": "string" + } + }, + "type": "object" + }, + "ServerCertificateConfig": { + "additionalProperties": false, + "properties": { + "EnableOCSPCheck": { + "type": "boolean" + } + }, + "type": "object" + }, + "ServerCertificateSummary": { + "additionalProperties": false, + "properties": { + "ServerCertificateArn": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "ServerCertificateStatus": { + "enum": [ + "INVALID", + "VALID" + ], + "type": "string" + }, + "ServerCertificateStatusDetail": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TlsConfig": { + "additionalProperties": false, + "properties": { + "SecurityPolicy": { + "maxLength": 128, + "type": "string" + } + }, + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreateDomainConfiguration", + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:TagResource", + "iot:ListTagsForResource", + "acm:GetCertificate" + ] + }, + "delete": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:DeleteDomainConfiguration", + "iot:UpdateDomainConfiguration" + ] + }, + "list": { + "permissions": [ + "iot:ListDomainConfigurations" + ] + }, + "read": { + "permissions": [ + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:UpdateDomainConfiguration", + "iot:DescribeDomainConfiguration", + "iot:ListTagsForResource", + "iot:TagResource", + "iot:UntagResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/DomainConfigurationName" + ], + "properties": { + "Arn": { + "type": "string" + }, + "AuthorizerConfig": { + "$ref": "#/definitions/AuthorizerConfig" + }, + "DomainConfigurationName": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[\\w.-]+$", + "type": "string" + }, + "DomainConfigurationStatus": { + "enum": [ + "ENABLED", + "DISABLED" + ], + "type": "string" + }, + "DomainName": { + "maxLength": 253, + "minLength": 1, + "type": "string" + }, + "DomainType": { + "enum": [ + "ENDPOINT", + "AWS_MANAGED", + "CUSTOMER_MANAGED" + ], + "type": "string" + }, + "ServerCertificateArns": { + "insertionOrder": true, + "items": { + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + }, + "maxItems": 1, + "minItems": 0, + "type": "array" + }, + "ServerCertificateConfig": { + "$ref": "#/definitions/ServerCertificateConfig" + }, + "ServerCertificates": { + "insertionOrder": true, + "items": { + "$ref": "#/definitions/ServerCertificateSummary" + }, + "type": "array" + }, + "ServiceType": { + "enum": [ + "DATA", + "CREDENTIAL_PROVIDER", + "JOBS" + ], + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TlsConfig": { + "$ref": "#/definitions/TlsConfig" + }, + "ValidationCertificateArn": { + "pattern": "^arn:aws(-cn|-us-gov|-iso-b|-iso)?:acm:[a-z]{2}-(gov-|iso-|isob-)?[a-z]{4,9}-\\d{1}:\\d{12}:certificate/[a-zA-Z0-9/-]+$", + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/DomainType", + "/properties/ServerCertificates" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::DomainConfiguration", + "writeOnlyProperties": [ + "/properties/ValidationCertificateArn", + "/properties/ServerCertificateArns" + ] +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-policy.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-policy.json new file mode 100644 index 0000000000..6a8b285974 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-policy.json @@ -0,0 +1,110 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/PolicyName" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iot:CreatePolicy", + "iot:GetPolicy", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeletePolicy", + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:DeletePolicyVersion" + ] + }, + "list": { + "permissions": [ + "iot:ListPolicies" + ] + }, + "read": { + "permissions": [ + "iot:GetPolicy", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iot:GetPolicy", + "iot:ListPolicyVersions", + "iot:CreatePolicyVersion", + "iot:DeletePolicyVersion", + "iot:SetDefaultPolicyVersion", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "PolicyDocument": { + "maxLength": 404600, + "minLength": 1, + "type": [ + "object", + "string" + ] + }, + "PolicyName": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/Arn", + "/properties/Id" + ], + "required": [ + "PolicyDocument" + ], + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::Policy" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-provisioningtemplate.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-provisioningtemplate.json new file mode 100644 index 0000000000..31a4f45b65 --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-provisioningtemplate.json @@ -0,0 +1,141 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/TemplateName", + "/properties/TemplateType" + ], + "definitions": { + "ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateProvisioningTemplate", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteProvisioningTemplate", + "iot:DescribeProvisioningTemplate" + ] + }, + "list": { + "permissions": [ + "iot:ListProvisioningTemplates" + ] + }, + "read": { + "permissions": [ + "iot:DescribeProvisioningTemplate", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateProvisioningTemplate", + "iot:CreateProvisioningTemplateVersion", + "iot:ListProvisioningTemplateVersions", + "iot:DeleteProvisioningTemplateVersion", + "iot:DescribeProvisioningTemplate", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/TemplateName" + ], + "properties": { + "Description": { + "maxLength": 500, + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + }, + "TemplateArn": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { + "maxLength": 36, + "minLength": 1, + "pattern": "^[0-9A-Za-z_-]+$", + "type": "string" + }, + "TemplateType": { + "enum": [ + "FLEET_PROVISIONING", + "JITP" + ], + "type": "string" + } + }, + "readOnlyProperties": [ + "/properties/TemplateArn" + ], + "required": [ + "ProvisioningRoleArn", + "TemplateBody" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::ProvisioningTemplate" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-rolealias.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-rolealias.json new file mode 100644 index 0000000000..5ea03cb1af --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-iot-rolealias.json @@ -0,0 +1,124 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/RoleAlias" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 127, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + }, + "Value": { + "maxLength": 255, + "minLength": 1, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$", + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ], + "type": "object" + } + }, + "handlers": { + "create": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:CreateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:DeleteRoleAlias", + "iot:DescribeRoleAlias" + ] + }, + "list": { + "permissions": [ + "iot:ListRoleAliases" + ] + }, + "read": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:DescribeRoleAlias", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:GetRole", + "iam:PassRole", + "iot:UpdateRoleAlias", + "iot:DescribeRoleAlias", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } + }, + "primaryIdentifier": [ + "/properties/RoleAlias" + ], + "properties": { + "CredentialDurationSeconds": { + "default": 3600, + "maximum": 43200, + "minimum": 900, + "type": "integer" + }, + "RoleAlias": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleAliasArn": { + "maxLength": 128, + "minLength": 1, + "pattern": "[\\w=,@-]+", + "type": "string" + }, + "RoleArn": { + "maxLength": 2048, + "minLength": 20, + "pattern": "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+", + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array", + "uniqueItems": true + } + }, + "readOnlyProperties": [ + "/properties/RoleAliasArn" + ], + "required": [ + "RoleArn" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::IoT::RoleAlias" +} diff --git a/src/cfnlint/data/schemas/providers/us_west_2/aws-location-tracker.json b/src/cfnlint/data/schemas/providers/us_west_2/aws-location-tracker.json new file mode 100644 index 0000000000..e12344f3ed --- /dev/null +++ b/src/cfnlint/data/schemas/providers/us_west_2/aws-location-tracker.json @@ -0,0 +1,185 @@ +{ + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/KmsKeyId", + "/properties/TrackerName" + ], + "definitions": { + "PositionFiltering": { + "enum": [ + "TimeBased", + "DistanceBased", + "AccuracyBased" + ], + "type": "string" + }, + "PricingPlan": { + "enum": [ + "RequestBasedUsage" + ], + "type": "string" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z+-=._:/]+$", + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "pattern": "^[A-Za-z0-9 _=@:.+-/]*$", + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "TagMap": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$": { + "maxLength": 256, + "minLength": 0, + "pattern": "^([\\p{L}\\p{Z}\\p{N}_.,:/=+\\-@]*)$", + "type": "string" + } + }, + "type": "object" + }, + "iso8601UTC": { + "pattern": "^([0-2]\\d{3})-(0[0-9]|1[0-2])-([0-2]\\d|3[01])T([01]\\d|2[0-4]):([0-5]\\d):([0-6]\\d)((\\.\\d{3})?)Z$", + "type": "string" + } + }, + "deprecatedProperties": [ + "/properties/PricingPlan", + "/properties/PricingPlanDataSource" + ], + "handlers": { + "create": { + "permissions": [ + "geo:CreateTracker", + "geo:DescribeTracker", + "geo:TagResource", + "geo:UntagResource", + "kms:DescribeKey", + "kms:CreateGrant" + ] + }, + "delete": { + "permissions": [ + "geo:DeleteTracker", + "geo:DescribeTracker" + ] + }, + "list": { + "permissions": [ + "geo:ListTrackers" + ] + }, + "read": { + "permissions": [ + "geo:DescribeTracker", + "kms:DescribeKey" + ] + }, + "update": { + "permissions": [ + "geo:CreateTracker", + "geo:DescribeTracker", + "geo:TagResource", + "geo:UntagResource", + "kms:DescribeKey", + "kms:CreateGrant", + "geo:UpdateTracker" + ] + } + }, + "primaryIdentifier": [ + "/properties/TrackerName" + ], + "properties": { + "Arn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "CreateTime": { + "$ref": "#/definitions/iso8601UTC" + }, + "Description": { + "maxLength": 1000, + "minLength": 0, + "type": "string" + }, + "EventBridgeEnabled": { + "type": "boolean" + }, + "KmsKeyEnableGeospatialQueries": { + "type": "boolean" + }, + "KmsKeyId": { + "maxLength": 2048, + "minLength": 1, + "type": "string" + }, + "PositionFiltering": { + "$ref": "#/definitions/PositionFiltering" + }, + "PricingPlan": { + "$ref": "#/definitions/PricingPlan" + }, + "PricingPlanDataSource": { + "type": "string" + }, + "Tags": { + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "type": "array", + "uniqueItems": true + }, + "TrackerArn": { + "maxLength": 1600, + "pattern": "^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$", + "type": "string" + }, + "TrackerName": { + "maxLength": 100, + "minLength": 1, + "pattern": "^[-._\\w]+$", + "type": "string" + }, + "UpdateTime": { + "$ref": "#/definitions/iso8601UTC" + } + }, + "readOnlyProperties": [ + "/properties/CreateTime", + "/properties/Arn", + "/properties/TrackerArn", + "/properties/UpdateTime" + ], + "required": [ + "TrackerName" + ], + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "typeName": "AWS::Location::Tracker" +}