diff --git a/scripts/boto/_automated_patches.py b/scripts/boto/_automated_patches.py index d2ca8d6063..c2676e08e2 100644 --- a/scripts/boto/_automated_patches.py +++ b/scripts/boto/_automated_patches.py @@ -9,6 +9,8 @@ from _types import AllPatches, Patch, ResourcePatches +from cfnlint.schema.resolver import RefResolver + skip = [ "account", "chime", @@ -90,12 +92,63 @@ def get_last_date(service_dir: Path) -> str: return last_date +def _nested_objects( + resolver: RefResolver, + schema_data: dict[str, Any], + boto_data: dict[str, Any], + shape_data: dict[str, Any], + start_path: str, + source: list[str], +): + results = {} + for member, member_data in shape_data.get("members", {}).items(): + for p_name, p_data in schema_data.get("properties", {}).items(): + if p_name in skip_property_names: + continue + if p_name.lower() == member.lower(): + + path = f"{start_path}/properties/{p_name}" + + while True: + if "$ref" not in p_data: + break + path = p_data["$ref"][1:] + p_data = resolver.resolve_from_url(p_data["$ref"]) + + # skip if we already have an enum or pattern + if any([p_data.get(field) for field in _fields]): + continue + + member_shape_name = member_data.get("shape") + member_shape = boto_data.get("shapes", {}).get(member_shape_name, {}) + + if member_shape.get("type") == "structure": + if p_data.get("type") == "object": + results.update( + _nested_objects( + resolver, p_data, boto_data, member_shape, path, source + ) + ) + + if not any([member_shape.get(field) for field in _fields]): + continue + + results[path] = Patch( + source=source, + shape=member_shape_name, + ) + + return results + + def _per_resource_patch( schema_data: dict[str, Any], boto_data: dict[str, Any], source: list[str] ) -> ResourcePatches: results: ResourcePatches = {} create_operations = get_schema_create_operations(schema_data) shapes = {} + + resolver = RefResolver.from_schema(schema_data) for create_operation in create_operations: shapes.update(get_shapes(boto_data, create_operation)) create_shape = ( @@ -105,39 +158,16 @@ def _per_resource_patch( .get("shape") ) - for member, member_data in ( - boto_data.get("shapes", {}).get(create_shape, {}).get("members", {}).items() - ): - for p_name, p_data in schema_data.get("properties", {}).items(): - if p_name in skip_property_names: - continue - if p_name.lower() == member.lower(): - - path = f"/properties/{p_name}" - - if "$ref" in p_data: - pointer = p_data["$ref"].split("/") - p_data = schema_data.get(pointer[1], {}).get(pointer[2], {}) - if not p_data: - continue - path = f"/{'/'.join(pointer[1:])}" - - # skip if we already have an enum or pattern - if any([p_data.get(field) for field in _fields]): - continue - - member_shape_name = member_data.get("shape") - member_shape = boto_data.get("shapes", {}).get( - member_shape_name, {} - ) - - if not any([member_shape.get(field) for field in _fields]): - continue - - results[path] = Patch( - source=source, - shape=member_shape_name, - ) + results.update( + _nested_objects( + resolver, + schema_data, + boto_data, + boto_data.get("shapes", {}).get(create_shape, {}), + "", + source, + ) + ) return results diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/boto.json index 4c03fcd262..71e8596399 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_acmpca_certificateauthority/boto.json @@ -1,4 +1,27 @@ [ + { + "op": "add", + "path": "/definitions/CrlConfiguration/properties/CustomCname/pattern", + "value": "[-a-zA-Z0-9;/?:@&=+$,%_.!~*()']*" + }, + { + "op": "add", + "path": "/definitions/CrlConfiguration/properties/S3BucketName/pattern", + "value": "[-a-zA-Z0-9._/]+" + }, + { + "op": "add", + "path": "/definitions/CrlConfiguration/properties/S3ObjectAcl/enum", + "value": [ + "BUCKET_OWNER_FULL_CONTROL", + "PUBLIC_READ" + ] + }, + { + "op": "add", + "path": "/definitions/OcspConfiguration/properties/OcspCustomCname/pattern", + "value": "[-a-zA-Z0-9;/?:@&=+$,%_.!~*()']*" + }, { "op": "add", "path": "/properties/KeyStorageSecurityStandard/enum", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/boto.json index 0816f12386..1e147876cd 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_app/boto.json @@ -3,5 +3,10 @@ "op": "add", "path": "/properties/AccessToken/pattern", "value": "(?s).+" + }, + { + "op": "add", + "path": "/definitions/AutoBranchCreationConfig/properties/BuildSpec/pattern", + "value": "(?s).+" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_branch/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_branch/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_branch/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_branch/boto.json new file mode 100644 index 0000000000..9f526617f5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_amplify_branch/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/Backend/properties/StackArn/pattern", + "value": "^arn:aws:cloudformation:[a-z0-9-]+:\\d{12}:stack/.+/.+$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json new file mode 100644 index 0000000000..ede97404c1 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appflow_connectorprofile/boto.json @@ -0,0 +1,12 @@ +[ + { + "op": "add", + "path": "/definitions/ConnectorOAuthRequest/properties/AuthCode/pattern", + "value": "\\S+" + }, + { + "op": "add", + "path": "/definitions/ConnectorOAuthRequest/properties/RedirectUri/pattern", + "value": "\\S+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json index 7a98f1835b..9ab986be62 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_applicationautoscaling_scalingpolicy/boto.json @@ -94,5 +94,34 @@ "StepScaling", "TargetTrackingScaling" ] + }, + { + "op": "add", + "path": "/definitions/StepScalingPolicyConfiguration/properties/AdjustmentType/enum", + "value": [ + "ChangeInCapacity", + "ExactCapacity", + "PercentChangeInCapacity" + ] + }, + { + "op": "add", + "path": "/definitions/StepScalingPolicyConfiguration/properties/MetricAggregationType/enum", + "value": [ + "Average", + "Maximum", + "Minimum" + ] + }, + { + "op": "add", + "path": "/definitions/CustomizedMetricSpecification/properties/Statistic/enum", + "value": [ + "Average", + "Maximum", + "Minimum", + "SampleCount", + "Sum" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_apprunner_service/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_apprunner_service/boto.json new file mode 100644 index 0000000000..fc5e1db088 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_apprunner_service/boto.json @@ -0,0 +1,17 @@ +[ + { + "op": "add", + "path": "/definitions/CodeConfigurationValues/properties/BuildCommand/pattern", + "value": "[^\\x0a\\x0d]+" + }, + { + "op": "add", + "path": "/definitions/CodeConfigurationValues/properties/StartCommand/pattern", + "value": "[^\\x0a\\x0d]+" + }, + { + "op": "add", + "path": "/definitions/ImageConfiguration/properties/StartCommand/pattern", + "value": "[^\\x0a\\x0d]+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json index 33fe5fa1c8..9615f61e58 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_appstream_appblock/boto.json @@ -4,6 +4,11 @@ "path": "/properties/Name/pattern", "value": "^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,100}$" }, + { + "op": "add", + "path": "/definitions/S3Location/properties/S3Bucket/pattern", + "value": "^[0-9a-z\\.\\-]*(?.*.*)[^:\\\\]+$" }, + { + "op": "add", + "path": "/definitions/IamActionDefinition/properties/PolicyArn/pattern", + "value": "^arn:aws(-cn|-us-gov|-iso|-iso-[a-z]{1})?:iam::(\\d{12}|aws):policy(\\u002F[\\u0021-\\u007F]+\\u002F|\\u002F)[\\w+=,.@-]+$" + }, + { + "op": "add", + "path": "/definitions/ScpActionDefinition/properties/PolicyId/pattern", + "value": "^p-[0-9a-zA-Z_]{8,128}$" + }, + { + "op": "add", + "path": "/definitions/SsmActionDefinition/properties/Region/pattern", + "value": "^\\w{2}-\\w+(-\\w+)?-\\d$" + }, { "op": "add", "path": "/properties/ExecutionRoleArn/pattern", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idmappingtable/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idmappingtable/boto.json index 10e9a8e2e2..a7c156e678 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idmappingtable/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idmappingtable/boto.json @@ -1,4 +1,9 @@ [ + { + "op": "add", + "path": "/definitions/IdMappingTableInputReferenceConfig/properties/InputReferenceArn/pattern", + "value": "arn:(aws|aws-us-gov|aws-cn):entityresolution:.*:[0-9]+:(idmappingworkflow/.*)" + }, { "op": "add", "path": "/properties/KmsKeyArn/pattern", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idnamespaceassociation/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idnamespaceassociation/boto.json new file mode 100644 index 0000000000..3e01745e41 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_idnamespaceassociation/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/IdNamespaceAssociationInputReferenceConfig/properties/InputReferenceArn/pattern", + "value": "arn:aws:entityresolution:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:idnamespace/[\\d\\w-]+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_membership/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_membership/boto.json new file mode 100644 index 0000000000..a7cfb81e6c --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_cleanrooms_membership/boto.json @@ -0,0 +1,17 @@ +[ + { + "op": "add", + "path": "/definitions/ProtectedQueryS3OutputConfiguration/properties/Bucket/pattern", + "value": ".*(?!^(\\d+\\.)+\\d+$)(^(([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]*[a-z0-9])$).*" + }, + { + "op": "add", + "path": "/definitions/ProtectedQueryS3OutputConfiguration/properties/KeyPrefix/pattern", + "value": "[\\w!.=*/-]*" + }, + { + "op": "add", + "path": "/definitions/MembershipProtectedQueryResultConfiguration/properties/RoleArn/pattern", + "value": "arn:aws:iam::[\\w]+:role/[\\w+=./@-]+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_hookversion/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_hookversion/boto.json new file mode 100644 index 0000000000..efe66a3539 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_hookversion/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/LoggingConfig/properties/LogRoleArn/pattern", + "value": "arn:.+:iam::[0-9]{12}:role/.+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_resourceversion/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_resourceversion/boto.json index a6a6b4b157..7a44e957fb 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_resourceversion/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudformation_resourceversion/boto.json @@ -1,4 +1,9 @@ [ + { + "op": "add", + "path": "/definitions/LoggingConfig/properties/LogRoleArn/pattern", + "value": "arn:.+:iam::[0-9]{12}:role/.+" + }, { "op": "add", "path": "/properties/ExecutionRoleArn/pattern", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_distribution/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_distribution/boto.json index 6acdd921e4..6cd07c46c6 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_distribution/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_distribution/boto.json @@ -96,5 +96,23 @@ "static-ip", "vip" ] + }, + { + "op": "add", + "path": "/definitions/DefaultCacheBehavior/properties/ViewerProtocolPolicy/enum", + "value": [ + "allow-all", + "https-only", + "redirect-to-https" + ] + }, + { + "op": "add", + "path": "/definitions/Cookies/properties/Forward/enum", + "value": [ + "all", + "none", + "whitelist" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_function/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_function/boto.json index 3468462eab..39b8c2ec21 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_function/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_function/boto.json @@ -3,5 +3,13 @@ "op": "add", "path": "/properties/Name/pattern", "value": "^[a-zA-Z0-9-_]{1,64}$" + }, + { + "op": "add", + "path": "/definitions/FunctionConfig/properties/Runtime/enum", + "value": [ + "cloudfront-js-1.0", + "cloudfront-js-2.0" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_keyvaluestore/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_keyvaluestore/boto.json index 3468462eab..2e68f820d4 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_keyvaluestore/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_cloudfront_keyvaluestore/boto.json @@ -3,5 +3,12 @@ "op": "add", "path": "/properties/Name/pattern", "value": "^[a-zA-Z0-9-_]{1,64}$" + }, + { + "op": "add", + "path": "/definitions/ImportSource/properties/SourceType/enum", + "value": [ + "S3" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_codedeploy_deploymentconfig/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_codedeploy_deploymentconfig/boto.json index 3d24fa47cb..259aec859e 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_codedeploy_deploymentconfig/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_codedeploy_deploymentconfig/boto.json @@ -7,6 +7,15 @@ "HOST_COUNT" ] }, + { + "op": "add", + "path": "/definitions/TrafficRoutingConfig/properties/Type/enum", + "value": [ + "AllAtOnce", + "TimeBasedCanary", + "TimeBasedLinear" + ] + }, { "op": "add", "path": "/properties/ComputePlatform/enum", @@ -15,5 +24,13 @@ "Lambda", "Server" ] + }, + { + "op": "add", + "path": "/definitions/MinimumHealthyHostsPerZone/properties/Type/enum", + "value": [ + "FLEET_PERCENT", + "HOST_COUNT" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_comprehend_flywheel/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_comprehend_flywheel/boto.json new file mode 100644 index 0000000000..daa6fb486d --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_comprehend_flywheel/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/KmsKeyId/pattern", + "value": "^\\p{ASCII}+$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_config_conformancepack/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_config_conformancepack/boto.json new file mode 100644 index 0000000000..e9ca79e10e --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_config_conformancepack/boto.json @@ -0,0 +1,12 @@ +[ + { + "op": "add", + "path": "/properties/TemplateSSMDocumentDetails/properties/DocumentName/pattern", + "value": "^[a-zA-Z0-9_\\-.:/]{3,200}$" + }, + { + "op": "add", + "path": "/properties/TemplateSSMDocumentDetails/properties/DocumentVersion/pattern", + "value": "([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_connect_user/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_connect_user/boto.json new file mode 100644 index 0000000000..e446630e2f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_connect_user/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/DeskPhoneNumber/pattern", + "value": "\\\\+[1-9]\\\\d{1,14}$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_databrew_job/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_databrew_job/boto.json new file mode 100644 index 0000000000..b018f12501 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_databrew_job/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/OutputLocation/properties/BucketOwner/pattern", + "value": "^[0-9]{12}$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_datasource/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_datasource/boto.json new file mode 100644 index 0000000000..d51ff41ce3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_datazone_datasource/boto.json @@ -0,0 +1,72 @@ +[ + { + "op": "add", + "path": "/definitions/Timezone/enum", + "value": [ + "AFRICA_JOHANNESBURG", + "AMERICA_MONTREAL", + "AMERICA_SAO_PAULO", + "ASIA_BAHRAIN", + "ASIA_BANGKOK", + "ASIA_CALCUTTA", + "ASIA_DUBAI", + "ASIA_HONG_KONG", + "ASIA_JAKARTA", + "ASIA_KUALA_LUMPUR", + "ASIA_SEOUL", + "ASIA_SHANGHAI", + "ASIA_SINGAPORE", + "ASIA_TAIPEI", + "ASIA_TOKYO", + "AUSTRALIA_MELBOURNE", + "AUSTRALIA_SYDNEY", + "CANADA_CENTRAL", + "CET", + "CST6CDT", + "ETC_GMT", + "ETC_GMT0", + "ETC_GMT_ADD_0", + "ETC_GMT_ADD_1", + "ETC_GMT_ADD_10", + "ETC_GMT_ADD_11", + "ETC_GMT_ADD_12", + "ETC_GMT_ADD_2", + "ETC_GMT_ADD_3", + "ETC_GMT_ADD_4", + "ETC_GMT_ADD_5", + "ETC_GMT_ADD_6", + "ETC_GMT_ADD_7", + "ETC_GMT_ADD_8", + "ETC_GMT_ADD_9", + "ETC_GMT_NEG_0", + "ETC_GMT_NEG_1", + "ETC_GMT_NEG_10", + "ETC_GMT_NEG_11", + "ETC_GMT_NEG_12", + "ETC_GMT_NEG_13", + "ETC_GMT_NEG_14", + "ETC_GMT_NEG_2", + "ETC_GMT_NEG_3", + "ETC_GMT_NEG_4", + "ETC_GMT_NEG_5", + "ETC_GMT_NEG_6", + "ETC_GMT_NEG_7", + "ETC_GMT_NEG_8", + "ETC_GMT_NEG_9", + "EUROPE_DUBLIN", + "EUROPE_LONDON", + "EUROPE_PARIS", + "EUROPE_STOCKHOLM", + "EUROPE_ZURICH", + "ISRAEL", + "MEXICO_GENERAL", + "MST7MDT", + "PACIFIC_AUCKLAND", + "US_CENTRAL", + "US_EASTERN", + "US_MOUNTAIN", + "US_PACIFIC", + "UTC" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queue/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queue/boto.json new file mode 100644 index 0000000000..1ca68fcc27 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_deadline_queue/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/JobAttachmentSettings/properties/RootPrefix/pattern", + "value": "[a-zA-Z0-9-_/]+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_globaltable/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_globaltable/boto.json index 97a0098481..f308f49666 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_globaltable/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_globaltable/boto.json @@ -6,5 +6,23 @@ "PAY_PER_REQUEST", "PROVISIONED" ] + }, + { + "op": "add", + "path": "/definitions/StreamSpecification/properties/StreamViewType/enum", + "value": [ + "KEYS_ONLY", + "NEW_AND_OLD_IMAGES", + "NEW_IMAGE", + "OLD_IMAGE" + ] + }, + { + "op": "add", + "path": "/definitions/SSESpecification/properties/SSEType/enum", + "value": [ + "AES256", + "KMS" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_table/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_table/boto.json index 84f2df5018..c91f973658 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_table/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_dynamodb_table/boto.json @@ -43,6 +43,14 @@ "PROVISIONED" ] }, + { + "op": "add", + "path": "/definitions/SSESpecification/properties/SSEType/enum", + "value": [ + "AES256", + "KMS" + ] + }, { "op": "add", "path": "/properties/TableClass/enum", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_ipampool/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_ipampool/boto.json index 99560b78fe..1265028ab5 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_ipampool/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_ipampool/boto.json @@ -6,5 +6,12 @@ "ipv4", "ipv6" ] + }, + { + "op": "add", + "path": "/definitions/SourceResource/properties/ResourceType/enum", + "value": [ + "vpc" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_launchtemplate/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_launchtemplate/boto.json index 8eec96c061..7ddfd3939a 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_launchtemplate/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_launchtemplate/boto.json @@ -151,5 +151,922 @@ "op": "add", "path": "/properties/LaunchTemplateName/pattern", "value": "[a-zA-Z0-9\\(\\)\\.\\-/_]+" + }, + { + "op": "add", + "path": "/definitions/LaunchTemplateData/properties/InstanceType/enum", + "value": [ + "a1.2xlarge", + "a1.4xlarge", + "a1.large", + "a1.medium", + "a1.metal", + "a1.xlarge", + "c1.medium", + "c1.xlarge", + "c3.2xlarge", + "c3.4xlarge", + "c3.8xlarge", + "c3.large", + "c3.xlarge", + "c4.2xlarge", + "c4.4xlarge", + "c4.8xlarge", + "c4.large", + "c4.xlarge", + "c5.12xlarge", + "c5.18xlarge", + "c5.24xlarge", + "c5.2xlarge", + "c5.4xlarge", + "c5.9xlarge", + "c5.large", + "c5.metal", + "c5.xlarge", + "c5a.12xlarge", + "c5a.16xlarge", + "c5a.24xlarge", + "c5a.2xlarge", + "c5a.4xlarge", + "c5a.8xlarge", + "c5a.large", + "c5a.xlarge", + "c5ad.12xlarge", + "c5ad.16xlarge", + "c5ad.24xlarge", + "c5ad.2xlarge", + "c5ad.4xlarge", + "c5ad.8xlarge", + "c5ad.large", + "c5ad.xlarge", + "c5d.12xlarge", + "c5d.18xlarge", + "c5d.24xlarge", + "c5d.2xlarge", + "c5d.4xlarge", + "c5d.9xlarge", + "c5d.large", + "c5d.metal", + "c5d.xlarge", + "c5n.18xlarge", + "c5n.2xlarge", + "c5n.4xlarge", + "c5n.9xlarge", + "c5n.large", + "c5n.metal", + "c5n.xlarge", + "c6a.12xlarge", + "c6a.16xlarge", + "c6a.24xlarge", + "c6a.2xlarge", + "c6a.32xlarge", + "c6a.48xlarge", + "c6a.4xlarge", + "c6a.8xlarge", + "c6a.large", + "c6a.metal", + "c6a.xlarge", + "c6g.12xlarge", + "c6g.16xlarge", + "c6g.2xlarge", + "c6g.4xlarge", + "c6g.8xlarge", + "c6g.large", + "c6g.medium", + "c6g.metal", + "c6g.xlarge", + "c6gd.12xlarge", + "c6gd.16xlarge", + "c6gd.2xlarge", + "c6gd.4xlarge", + "c6gd.8xlarge", + "c6gd.large", + "c6gd.medium", + "c6gd.metal", + "c6gd.xlarge", + "c6gn.12xlarge", + "c6gn.16xlarge", + "c6gn.2xlarge", + "c6gn.4xlarge", + "c6gn.8xlarge", + "c6gn.large", + "c6gn.medium", + "c6gn.xlarge", + "c6i.12xlarge", + "c6i.16xlarge", + "c6i.24xlarge", + "c6i.2xlarge", + "c6i.32xlarge", + "c6i.4xlarge", + "c6i.8xlarge", + "c6i.large", + "c6i.metal", + "c6i.xlarge", + "c6id.12xlarge", + "c6id.16xlarge", + "c6id.24xlarge", + "c6id.2xlarge", + "c6id.32xlarge", + "c6id.4xlarge", + "c6id.8xlarge", + "c6id.large", + "c6id.metal", + "c6id.xlarge", + "c6in.12xlarge", + "c6in.16xlarge", + "c6in.24xlarge", + "c6in.2xlarge", + "c6in.32xlarge", + "c6in.4xlarge", + "c6in.8xlarge", + "c6in.large", + "c6in.metal", + "c6in.xlarge", + "c7a.12xlarge", + "c7a.16xlarge", + "c7a.24xlarge", + "c7a.2xlarge", + "c7a.32xlarge", + "c7a.48xlarge", + "c7a.4xlarge", + "c7a.8xlarge", + "c7a.large", + "c7a.medium", + "c7a.metal-48xl", + "c7a.xlarge", + "c7g.12xlarge", + "c7g.16xlarge", + "c7g.2xlarge", + "c7g.4xlarge", + "c7g.8xlarge", + "c7g.large", + "c7g.medium", + "c7g.metal", + "c7g.xlarge", + "c7gd.12xlarge", + "c7gd.16xlarge", + "c7gd.2xlarge", + "c7gd.4xlarge", + "c7gd.8xlarge", + "c7gd.large", + "c7gd.medium", + "c7gd.metal", + "c7gd.xlarge", + "c7gn.12xlarge", + "c7gn.16xlarge", + "c7gn.2xlarge", + "c7gn.4xlarge", + "c7gn.8xlarge", + "c7gn.large", + "c7gn.medium", + "c7gn.metal", + "c7gn.xlarge", + "c7i-flex.2xlarge", + "c7i-flex.4xlarge", + "c7i-flex.8xlarge", + "c7i-flex.large", + "c7i-flex.xlarge", + "c7i.12xlarge", + "c7i.16xlarge", + "c7i.24xlarge", + "c7i.2xlarge", + "c7i.48xlarge", + "c7i.4xlarge", + "c7i.8xlarge", + "c7i.large", + "c7i.metal-24xl", + "c7i.metal-48xl", + "c7i.xlarge", + "cc1.4xlarge", + "cc2.8xlarge", + "cg1.4xlarge", + "cr1.8xlarge", + "d2.2xlarge", + "d2.4xlarge", + "d2.8xlarge", + "d2.xlarge", + "d3.2xlarge", + "d3.4xlarge", + "d3.8xlarge", + "d3.xlarge", + "d3en.12xlarge", + "d3en.2xlarge", + "d3en.4xlarge", + "d3en.6xlarge", + "d3en.8xlarge", + "d3en.xlarge", + "dl1.24xlarge", + "dl2q.24xlarge", + "f1.16xlarge", + "f1.2xlarge", + "f1.4xlarge", + "g2.2xlarge", + "g2.8xlarge", + "g3.16xlarge", + "g3.4xlarge", + "g3.8xlarge", + "g3s.xlarge", + "g4ad.16xlarge", + "g4ad.2xlarge", + "g4ad.4xlarge", + "g4ad.8xlarge", + "g4ad.xlarge", + "g4dn.12xlarge", + "g4dn.16xlarge", + "g4dn.2xlarge", + "g4dn.4xlarge", + "g4dn.8xlarge", + "g4dn.metal", + "g4dn.xlarge", + "g5.12xlarge", + "g5.16xlarge", + "g5.24xlarge", + "g5.2xlarge", + "g5.48xlarge", + "g5.4xlarge", + "g5.8xlarge", + "g5.xlarge", + "g5g.16xlarge", + "g5g.2xlarge", + "g5g.4xlarge", + "g5g.8xlarge", + "g5g.metal", + "g5g.xlarge", + "g6.12xlarge", + "g6.16xlarge", + "g6.24xlarge", + "g6.2xlarge", + "g6.48xlarge", + "g6.4xlarge", + "g6.8xlarge", + "g6.xlarge", + "g6e.12xlarge", + "g6e.16xlarge", + "g6e.24xlarge", + "g6e.2xlarge", + "g6e.48xlarge", + "g6e.4xlarge", + "g6e.8xlarge", + "g6e.xlarge", + "gr6.4xlarge", + "gr6.8xlarge", + "h1.16xlarge", + "h1.2xlarge", + "h1.4xlarge", + "h1.8xlarge", + "hi1.4xlarge", + "hpc6a.48xlarge", + "hpc6id.32xlarge", + "hpc7a.12xlarge", + "hpc7a.24xlarge", + "hpc7a.48xlarge", + "hpc7a.96xlarge", + "hpc7g.16xlarge", + "hpc7g.4xlarge", + "hpc7g.8xlarge", + "hs1.8xlarge", + "i2.2xlarge", + "i2.4xlarge", + "i2.8xlarge", + "i2.xlarge", + "i3.16xlarge", + "i3.2xlarge", + "i3.4xlarge", + "i3.8xlarge", + "i3.large", + "i3.metal", + "i3.xlarge", + "i3en.12xlarge", + "i3en.24xlarge", + "i3en.2xlarge", + "i3en.3xlarge", + "i3en.6xlarge", + "i3en.large", + "i3en.metal", + "i3en.xlarge", + "i4g.16xlarge", + "i4g.2xlarge", + "i4g.4xlarge", + "i4g.8xlarge", + "i4g.large", + "i4g.xlarge", + "i4i.12xlarge", + "i4i.16xlarge", + "i4i.24xlarge", + "i4i.2xlarge", + "i4i.32xlarge", + "i4i.4xlarge", + "i4i.8xlarge", + "i4i.large", + "i4i.metal", + "i4i.xlarge", + "im4gn.16xlarge", + "im4gn.2xlarge", + "im4gn.4xlarge", + "im4gn.8xlarge", + "im4gn.large", + "im4gn.xlarge", + "inf1.24xlarge", + "inf1.2xlarge", + "inf1.6xlarge", + "inf1.xlarge", + "inf2.24xlarge", + "inf2.48xlarge", + "inf2.8xlarge", + "inf2.xlarge", + "is4gen.2xlarge", + "is4gen.4xlarge", + "is4gen.8xlarge", + "is4gen.large", + "is4gen.medium", + "is4gen.xlarge", + "m1.large", + "m1.medium", + "m1.small", + "m1.xlarge", + "m2.2xlarge", + "m2.4xlarge", + "m2.xlarge", + "m3.2xlarge", + "m3.large", + "m3.medium", + "m3.xlarge", + "m4.10xlarge", + "m4.16xlarge", + "m4.2xlarge", + "m4.4xlarge", + "m4.large", + "m4.xlarge", + "m5.12xlarge", + "m5.16xlarge", + "m5.24xlarge", + "m5.2xlarge", + "m5.4xlarge", + "m5.8xlarge", + "m5.large", + "m5.metal", + "m5.xlarge", + "m5a.12xlarge", + "m5a.16xlarge", + "m5a.24xlarge", + "m5a.2xlarge", + "m5a.4xlarge", + "m5a.8xlarge", + "m5a.large", + "m5a.xlarge", + "m5ad.12xlarge", + "m5ad.16xlarge", + "m5ad.24xlarge", + "m5ad.2xlarge", + "m5ad.4xlarge", + "m5ad.8xlarge", + "m5ad.large", + "m5ad.xlarge", + "m5d.12xlarge", + "m5d.16xlarge", + "m5d.24xlarge", + "m5d.2xlarge", + "m5d.4xlarge", + "m5d.8xlarge", + "m5d.large", + "m5d.metal", + "m5d.xlarge", + "m5dn.12xlarge", + "m5dn.16xlarge", + "m5dn.24xlarge", + "m5dn.2xlarge", + "m5dn.4xlarge", + "m5dn.8xlarge", + "m5dn.large", + "m5dn.metal", + "m5dn.xlarge", + "m5n.12xlarge", + "m5n.16xlarge", + "m5n.24xlarge", + "m5n.2xlarge", + "m5n.4xlarge", + "m5n.8xlarge", + "m5n.large", + "m5n.metal", + "m5n.xlarge", + "m5zn.12xlarge", + "m5zn.2xlarge", + "m5zn.3xlarge", + "m5zn.6xlarge", + "m5zn.large", + "m5zn.metal", + "m5zn.xlarge", + "m6a.12xlarge", + "m6a.16xlarge", + "m6a.24xlarge", + "m6a.2xlarge", + "m6a.32xlarge", + "m6a.48xlarge", + "m6a.4xlarge", + "m6a.8xlarge", + "m6a.large", + "m6a.metal", + "m6a.xlarge", + "m6g.12xlarge", + "m6g.16xlarge", + "m6g.2xlarge", + "m6g.4xlarge", + "m6g.8xlarge", + "m6g.large", + "m6g.medium", + "m6g.metal", + "m6g.xlarge", + "m6gd.12xlarge", + "m6gd.16xlarge", + "m6gd.2xlarge", + "m6gd.4xlarge", + "m6gd.8xlarge", + "m6gd.large", + "m6gd.medium", + "m6gd.metal", + "m6gd.xlarge", + "m6i.12xlarge", + "m6i.16xlarge", + "m6i.24xlarge", + "m6i.2xlarge", + "m6i.32xlarge", + "m6i.4xlarge", + "m6i.8xlarge", + "m6i.large", + "m6i.metal", + "m6i.xlarge", + "m6id.12xlarge", + "m6id.16xlarge", + "m6id.24xlarge", + "m6id.2xlarge", + "m6id.32xlarge", + "m6id.4xlarge", + "m6id.8xlarge", + "m6id.large", + "m6id.metal", + "m6id.xlarge", + "m6idn.12xlarge", + "m6idn.16xlarge", + "m6idn.24xlarge", + "m6idn.2xlarge", + "m6idn.32xlarge", + "m6idn.4xlarge", + "m6idn.8xlarge", + "m6idn.large", + "m6idn.metal", + "m6idn.xlarge", + "m6in.12xlarge", + "m6in.16xlarge", + "m6in.24xlarge", + "m6in.2xlarge", + "m6in.32xlarge", + "m6in.4xlarge", + "m6in.8xlarge", + "m6in.large", + "m6in.metal", + "m6in.xlarge", + "m7a.12xlarge", + "m7a.16xlarge", + "m7a.24xlarge", + "m7a.2xlarge", + "m7a.32xlarge", + "m7a.48xlarge", + "m7a.4xlarge", + "m7a.8xlarge", + "m7a.large", + "m7a.medium", + "m7a.metal-48xl", + "m7a.xlarge", + "m7g.12xlarge", + "m7g.16xlarge", + "m7g.2xlarge", + "m7g.4xlarge", + "m7g.8xlarge", + "m7g.large", + "m7g.medium", + "m7g.metal", + "m7g.xlarge", + "m7gd.12xlarge", + "m7gd.16xlarge", + "m7gd.2xlarge", + "m7gd.4xlarge", + "m7gd.8xlarge", + "m7gd.large", + "m7gd.medium", + "m7gd.metal", + "m7gd.xlarge", + "m7i-flex.2xlarge", + "m7i-flex.4xlarge", + "m7i-flex.8xlarge", + "m7i-flex.large", + "m7i-flex.xlarge", + "m7i.12xlarge", + "m7i.16xlarge", + "m7i.24xlarge", + "m7i.2xlarge", + "m7i.48xlarge", + "m7i.4xlarge", + "m7i.8xlarge", + "m7i.large", + "m7i.metal-24xl", + "m7i.metal-48xl", + "m7i.xlarge", + "mac1.metal", + "mac2-m1ultra.metal", + "mac2-m2.metal", + "mac2-m2pro.metal", + "mac2.metal", + "p2.16xlarge", + "p2.8xlarge", + "p2.xlarge", + "p3.16xlarge", + "p3.2xlarge", + "p3.8xlarge", + "p3dn.24xlarge", + "p4d.24xlarge", + "p4de.24xlarge", + "p5.48xlarge", + "r3.2xlarge", + "r3.4xlarge", + "r3.8xlarge", + "r3.large", + "r3.xlarge", + "r4.16xlarge", + "r4.2xlarge", + "r4.4xlarge", + "r4.8xlarge", + "r4.large", + "r4.xlarge", + "r5.12xlarge", + "r5.16xlarge", + "r5.24xlarge", + "r5.2xlarge", + "r5.4xlarge", + "r5.8xlarge", + "r5.large", + "r5.metal", + "r5.xlarge", + "r5a.12xlarge", + "r5a.16xlarge", + "r5a.24xlarge", + "r5a.2xlarge", + "r5a.4xlarge", + "r5a.8xlarge", + "r5a.large", + "r5a.xlarge", + "r5ad.12xlarge", + "r5ad.16xlarge", + "r5ad.24xlarge", + "r5ad.2xlarge", + "r5ad.4xlarge", + "r5ad.8xlarge", + "r5ad.large", + "r5ad.xlarge", + "r5b.12xlarge", + "r5b.16xlarge", + "r5b.24xlarge", + "r5b.2xlarge", + "r5b.4xlarge", + "r5b.8xlarge", + "r5b.large", + "r5b.metal", + "r5b.xlarge", + "r5d.12xlarge", + "r5d.16xlarge", + "r5d.24xlarge", + "r5d.2xlarge", + "r5d.4xlarge", + "r5d.8xlarge", + "r5d.large", + "r5d.metal", + "r5d.xlarge", + "r5dn.12xlarge", + "r5dn.16xlarge", + "r5dn.24xlarge", + "r5dn.2xlarge", + "r5dn.4xlarge", + "r5dn.8xlarge", + "r5dn.large", + "r5dn.metal", + "r5dn.xlarge", + "r5n.12xlarge", + "r5n.16xlarge", + "r5n.24xlarge", + "r5n.2xlarge", + "r5n.4xlarge", + "r5n.8xlarge", + "r5n.large", + "r5n.metal", + "r5n.xlarge", + "r6a.12xlarge", + "r6a.16xlarge", + "r6a.24xlarge", + "r6a.2xlarge", + "r6a.32xlarge", + "r6a.48xlarge", + "r6a.4xlarge", + "r6a.8xlarge", + "r6a.large", + "r6a.metal", + "r6a.xlarge", + "r6g.12xlarge", + "r6g.16xlarge", + "r6g.2xlarge", + "r6g.4xlarge", + "r6g.8xlarge", + "r6g.large", + "r6g.medium", + "r6g.metal", + "r6g.xlarge", + "r6gd.12xlarge", + "r6gd.16xlarge", + "r6gd.2xlarge", + "r6gd.4xlarge", + "r6gd.8xlarge", + "r6gd.large", + "r6gd.medium", + "r6gd.metal", + "r6gd.xlarge", + "r6i.12xlarge", + "r6i.16xlarge", + "r6i.24xlarge", + "r6i.2xlarge", + "r6i.32xlarge", + "r6i.4xlarge", + "r6i.8xlarge", + "r6i.large", + "r6i.metal", + "r6i.xlarge", + "r6id.12xlarge", + "r6id.16xlarge", + "r6id.24xlarge", + "r6id.2xlarge", + "r6id.32xlarge", + "r6id.4xlarge", + "r6id.8xlarge", + "r6id.large", + "r6id.metal", + "r6id.xlarge", + "r6idn.12xlarge", + "r6idn.16xlarge", + "r6idn.24xlarge", + "r6idn.2xlarge", + "r6idn.32xlarge", + "r6idn.4xlarge", + "r6idn.8xlarge", + "r6idn.large", + "r6idn.metal", + "r6idn.xlarge", + "r6in.12xlarge", + "r6in.16xlarge", + "r6in.24xlarge", + "r6in.2xlarge", + "r6in.32xlarge", + "r6in.4xlarge", + "r6in.8xlarge", + "r6in.large", + "r6in.metal", + "r6in.xlarge", + "r7a.12xlarge", + "r7a.16xlarge", + "r7a.24xlarge", + "r7a.2xlarge", + "r7a.32xlarge", + "r7a.48xlarge", + "r7a.4xlarge", + "r7a.8xlarge", + "r7a.large", + "r7a.medium", + "r7a.metal-48xl", + "r7a.xlarge", + "r7g.12xlarge", + "r7g.16xlarge", + "r7g.2xlarge", + "r7g.4xlarge", + "r7g.8xlarge", + "r7g.large", + "r7g.medium", + "r7g.metal", + "r7g.xlarge", + "r7gd.12xlarge", + "r7gd.16xlarge", + "r7gd.2xlarge", + "r7gd.4xlarge", + "r7gd.8xlarge", + "r7gd.large", + "r7gd.medium", + "r7gd.metal", + "r7gd.xlarge", + "r7i.12xlarge", + "r7i.16xlarge", + "r7i.24xlarge", + "r7i.2xlarge", + "r7i.48xlarge", + "r7i.4xlarge", + "r7i.8xlarge", + "r7i.large", + "r7i.metal-24xl", + "r7i.metal-48xl", + "r7i.xlarge", + "r7iz.12xlarge", + "r7iz.16xlarge", + "r7iz.2xlarge", + "r7iz.32xlarge", + "r7iz.4xlarge", + "r7iz.8xlarge", + "r7iz.large", + "r7iz.metal-16xl", + "r7iz.metal-32xl", + "r7iz.xlarge", + "r8g.12xlarge", + "r8g.16xlarge", + "r8g.24xlarge", + "r8g.2xlarge", + "r8g.48xlarge", + "r8g.4xlarge", + "r8g.8xlarge", + "r8g.large", + "r8g.medium", + "r8g.metal-24xl", + "r8g.metal-48xl", + "r8g.xlarge", + "t1.micro", + "t2.2xlarge", + "t2.large", + "t2.medium", + "t2.micro", + "t2.nano", + "t2.small", + "t2.xlarge", + "t3.2xlarge", + "t3.large", + "t3.medium", + "t3.micro", + "t3.nano", + "t3.small", + "t3.xlarge", + "t3a.2xlarge", + "t3a.large", + "t3a.medium", + "t3a.micro", + "t3a.nano", + "t3a.small", + "t3a.xlarge", + "t4g.2xlarge", + "t4g.large", + "t4g.medium", + "t4g.micro", + "t4g.nano", + "t4g.small", + "t4g.xlarge", + "trn1.2xlarge", + "trn1.32xlarge", + "trn1n.32xlarge", + "u-12tb1.112xlarge", + "u-12tb1.metal", + "u-18tb1.112xlarge", + "u-18tb1.metal", + "u-24tb1.112xlarge", + "u-24tb1.metal", + "u-3tb1.56xlarge", + "u-6tb1.112xlarge", + "u-6tb1.56xlarge", + "u-6tb1.metal", + "u-9tb1.112xlarge", + "u-9tb1.metal", + "u7i-12tb.224xlarge", + "u7ib-12tb.224xlarge", + "u7in-16tb.224xlarge", + "u7in-24tb.224xlarge", + "u7in-32tb.224xlarge", + "vt1.24xlarge", + "vt1.3xlarge", + "vt1.6xlarge", + "x1.16xlarge", + "x1.32xlarge", + "x1e.16xlarge", + "x1e.2xlarge", + "x1e.32xlarge", + "x1e.4xlarge", + "x1e.8xlarge", + "x1e.xlarge", + "x2gd.12xlarge", + "x2gd.16xlarge", + "x2gd.2xlarge", + "x2gd.4xlarge", + "x2gd.8xlarge", + "x2gd.large", + "x2gd.medium", + "x2gd.metal", + "x2gd.xlarge", + "x2idn.16xlarge", + "x2idn.24xlarge", + "x2idn.32xlarge", + "x2idn.metal", + "x2iedn.16xlarge", + "x2iedn.24xlarge", + "x2iedn.2xlarge", + "x2iedn.32xlarge", + "x2iedn.4xlarge", + "x2iedn.8xlarge", + "x2iedn.metal", + "x2iedn.xlarge", + "x2iezn.12xlarge", + "x2iezn.2xlarge", + "x2iezn.4xlarge", + "x2iezn.6xlarge", + "x2iezn.8xlarge", + "x2iezn.metal", + "z1d.12xlarge", + "z1d.2xlarge", + "z1d.3xlarge", + "z1d.6xlarge", + "z1d.large", + "z1d.metal", + "z1d.xlarge" + ] + }, + { + "op": "add", + "path": "/definitions/CapacityReservationSpecification/properties/CapacityReservationPreference/enum", + "value": [ + "none", + "open" + ] + }, + { + "op": "add", + "path": "/definitions/MetadataOptions/properties/HttpTokens/enum", + "value": [ + "optional", + "required" + ] + }, + { + "op": "add", + "path": "/definitions/MetadataOptions/properties/HttpEndpoint/enum", + "value": [ + "disabled", + "enabled" + ] + }, + { + "op": "add", + "path": "/definitions/MetadataOptions/properties/HttpProtocolIpv6/enum", + "value": [ + "disabled", + "enabled" + ] + }, + { + "op": "add", + "path": "/definitions/MetadataOptions/properties/InstanceMetadataTags/enum", + "value": [ + "disabled", + "enabled" + ] + }, + { + "op": "add", + "path": "/definitions/InstanceRequirements/properties/BareMetal/enum", + "value": [ + "excluded", + "included", + "required" + ] + }, + { + "op": "add", + "path": "/definitions/InstanceRequirements/properties/BurstablePerformance/enum", + "value": [ + "excluded", + "included", + "required" + ] + }, + { + "op": "add", + "path": "/definitions/InstanceRequirements/properties/LocalStorage/enum", + "value": [ + "excluded", + "included", + "required" + ] + }, + { + "op": "add", + "path": "/definitions/PrivateDnsNameOptions/properties/HostnameType/enum", + "value": [ + "ip-name", + "resource-name" + ] + }, + { + "op": "add", + "path": "/definitions/MaintenanceOptions/properties/AutoRecovery/enum", + "value": [ + "default", + "disabled" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayattachment/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayattachment/boto.json new file mode 100644 index 0000000000..8ff4a9e5a5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayattachment/boto.json @@ -0,0 +1,34 @@ +[ + { + "op": "add", + "path": "/properties/Options/properties/DnsSupport/enum", + "value": [ + "disable", + "enable" + ] + }, + { + "op": "add", + "path": "/properties/Options/properties/SecurityGroupReferencingSupport/enum", + "value": [ + "disable", + "enable" + ] + }, + { + "op": "add", + "path": "/properties/Options/properties/Ipv6Support/enum", + "value": [ + "disable", + "enable" + ] + }, + { + "op": "add", + "path": "/properties/Options/properties/ApplianceModeSupport/enum", + "value": [ + "disable", + "enable" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayconnect/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayconnect/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayconnect/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayconnect/boto.json new file mode 100644 index 0000000000..ec287053a5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayconnect/boto.json @@ -0,0 +1,9 @@ +[ + { + "op": "add", + "path": "/definitions/TransitGatewayConnectOptions/properties/Protocol/enum", + "value": [ + "gre" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewaymulticastdomain/__init__.py b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewaymulticastdomain/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewaymulticastdomain/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewaymulticastdomain/boto.json new file mode 100644 index 0000000000..76b859976b --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewaymulticastdomain/boto.json @@ -0,0 +1,26 @@ +[ + { + "op": "add", + "path": "/properties/Options/properties/Igmpv2Support/enum", + "value": [ + "disable", + "enable" + ] + }, + { + "op": "add", + "path": "/properties/Options/properties/StaticSourcesSupport/enum", + "value": [ + "disable", + "enable" + ] + }, + { + "op": "add", + "path": "/properties/Options/properties/AutoAcceptSharedAssociations/enum", + "value": [ + "disable", + "enable" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayvpcattachment/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayvpcattachment/boto.json new file mode 100644 index 0000000000..8ff4a9e5a5 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_transitgatewayvpcattachment/boto.json @@ -0,0 +1,34 @@ +[ + { + "op": "add", + "path": "/properties/Options/properties/DnsSupport/enum", + "value": [ + "disable", + "enable" + ] + }, + { + "op": "add", + "path": "/properties/Options/properties/SecurityGroupReferencingSupport/enum", + "value": [ + "disable", + "enable" + ] + }, + { + "op": "add", + "path": "/properties/Options/properties/Ipv6Support/enum", + "value": [ + "disable", + "enable" + ] + }, + { + "op": "add", + "path": "/properties/Options/properties/ApplianceModeSupport/enum", + "value": [ + "disable", + "enable" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_verifiedaccessendpoint/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_verifiedaccessendpoint/boto.json index 772b47528e..d47c4cb043 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_verifiedaccessendpoint/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ec2_verifiedaccessendpoint/boto.json @@ -13,5 +13,21 @@ "value": [ "vpc" ] + }, + { + "op": "add", + "path": "/definitions/LoadBalancerOptions/properties/Protocol/enum", + "value": [ + "http", + "https" + ] + }, + { + "op": "add", + "path": "/definitions/NetworkInterfaceOptions/properties/Protocol/enum", + "value": [ + "http", + "https" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ecr_repositorycreationtemplate/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ecr_repositorycreationtemplate/boto.json new file mode 100644 index 0000000000..00e4b1e77f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ecr_repositorycreationtemplate/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/KmsKey/pattern", + "value": "^$|arn:aws:kms:[a-z0-9-]+:[0-9]{12}:key\\/[a-z0-9-]+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_cluster/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_cluster/boto.json new file mode 100644 index 0000000000..5e3881e28f --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_cluster/boto.json @@ -0,0 +1,11 @@ +[ + { + "op": "add", + "path": "/definitions/ExecuteCommandConfiguration/properties/Logging/enum", + "value": [ + "DEFAULT", + "NONE", + "OVERRIDE" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_service/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_service/boto.json new file mode 100644 index 0000000000..88c5b18d41 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_service/boto.json @@ -0,0 +1,16 @@ +[ + { + "op": "add", + "path": "/definitions/LogConfiguration/properties/LogDriver/enum", + "value": [ + "awsfirelens", + "awslogs", + "fluentd", + "gelf", + "journald", + "json-file", + "splunk", + "syslog" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_taskdefinition/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_taskdefinition/boto.json index 52a54cdd74..6ddb09b1f6 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_taskdefinition/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_ecs_taskdefinition/boto.json @@ -32,5 +32,27 @@ "none", "task" ] + }, + { + "op": "add", + "path": "/definitions/RuntimePlatform/properties/CpuArchitecture/enum", + "value": [ + "ARM64", + "X86_64" + ] + }, + { + "op": "add", + "path": "/definitions/RuntimePlatform/properties/OperatingSystemFamily/enum", + "value": [ + "LINUX", + "WINDOWS_SERVER_2004_CORE", + "WINDOWS_SERVER_2016_FULL", + "WINDOWS_SERVER_2019_CORE", + "WINDOWS_SERVER_2019_FULL", + "WINDOWS_SERVER_2022_CORE", + "WINDOWS_SERVER_2022_FULL", + "WINDOWS_SERVER_20H2_CORE" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_efs_accesspoint/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_efs_accesspoint/boto.json index ee7ecd37a0..8ff77774eb 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_efs_accesspoint/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_efs_accesspoint/boto.json @@ -8,5 +8,10 @@ "op": "add", "path": "/properties/FileSystemId/pattern", "value": "^(arn:aws[-a-z]*:elasticfilesystem:[0-9a-z-:]+:file-system/fs-[0-9a-f]{8,40}|fs-[0-9a-f]{8,40})$" + }, + { + "op": "add", + "path": "/definitions/RootDirectory/properties/Path/pattern", + "value": "^(\\/|(\\/(?!\\.)+[^$#<>;`|&?{}^*/\\n]+){1,4})$" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_emrcontainers_virtualcluster/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_emrcontainers_virtualcluster/boto.json new file mode 100644 index 0000000000..a885aa5cf4 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_emrcontainers_virtualcluster/boto.json @@ -0,0 +1,9 @@ +[ + { + "op": "add", + "path": "/definitions/ContainerProvider/properties/Type/enum", + "value": [ + "EKS" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idmappingworkflow/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idmappingworkflow/boto.json new file mode 100644 index 0000000000..676c4b3ce1 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_idmappingworkflow/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/IntermediateSourceConfiguration/properties/IntermediateS3Path/pattern", + "value": "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_matchingworkflow/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_matchingworkflow/boto.json new file mode 100644 index 0000000000..a74ecfd6a8 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_entityresolution_matchingworkflow/boto.json @@ -0,0 +1,12 @@ +[ + { + "op": "add", + "path": "/definitions/IntermediateSourceConfiguration/properties/IntermediateS3Path/pattern", + "value": "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$" + }, + { + "op": "add", + "path": "/definitions/ProviderProperties/properties/ProviderServiceArn/pattern", + "value": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_events_connection/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_events_connection/boto.json index 011799a043..9bf5546f27 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_events_connection/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_events_connection/boto.json @@ -3,5 +3,40 @@ "op": "add", "path": "/properties/Name/pattern", "value": "[\\.\\-_A-Za-z0-9]+" + }, + { + "op": "add", + "path": "/definitions/BasicAuthParameters/properties/Username/pattern", + "value": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$" + }, + { + "op": "add", + "path": "/definitions/BasicAuthParameters/properties/Password/pattern", + "value": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$" + }, + { + "op": "add", + "path": "/definitions/ClientParameters/properties/ClientID/pattern", + "value": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$" + }, + { + "op": "add", + "path": "/definitions/ClientParameters/properties/ClientSecret/pattern", + "value": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$" + }, + { + "op": "add", + "path": "/definitions/OAuthParameters/properties/AuthorizationEndpoint/pattern", + "value": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$" + }, + { + "op": "add", + "path": "/definitions/ApiKeyAuthParameters/properties/ApiKeyName/pattern", + "value": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$" + }, + { + "op": "add", + "path": "/definitions/ApiKeyAuthParameters/properties/ApiKeyValue/pattern", + "value": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_finspace_environment/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_finspace_environment/boto.json new file mode 100644 index 0000000000..158c26c706 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_finspace_environment/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/FederationParameters/properties/FederationURN/pattern", + "value": "^[A-Za-z0-9._\\-:\\/#\\+]+$" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_fis_experimenttemplate/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_fis_experimenttemplate/boto.json index a8f579005b..4725496a1b 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_fis_experimenttemplate/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_fis_experimenttemplate/boto.json @@ -8,5 +8,20 @@ "op": "add", "path": "/definitions/RoleArn/pattern", "value": "[\\S]+" + }, + { + "op": "add", + "path": "/definitions/ExperimentTemplateLogConfiguration/properties/CloudWatchLogsConfiguration/properties/LogGroupArn/pattern", + "value": "[\\S]+" + }, + { + "op": "add", + "path": "/definitions/ExperimentTemplateLogConfiguration/properties/S3Configuration/properties/BucketName/pattern", + "value": "[\\S]+" + }, + { + "op": "add", + "path": "/definitions/ExperimentTemplateLogConfiguration/properties/S3Configuration/properties/Prefix/pattern", + "value": "[\\s\\S]+" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_gameservergroup/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_gameservergroup/boto.json new file mode 100644 index 0000000000..ec7aa90d02 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_gamelift_gameservergroup/boto.json @@ -0,0 +1,7 @@ +[ + { + "op": "add", + "path": "/definitions/LaunchTemplateName/pattern", + "value": "[a-zA-Z0-9\\(\\)\\.\\-/_]+" + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_crawler/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_crawler/boto.json index 9a3e5b8f70..31de5b73bd 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_crawler/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_crawler/boto.json @@ -15,5 +15,14 @@ "LOG", "UPDATE_IN_DATABASE" ] + }, + { + "op": "add", + "path": "/definitions/RecrawlPolicy/properties/RecrawlBehavior/enum", + "value": [ + "CRAWL_EVENT_MODE", + "CRAWL_EVERYTHING", + "CRAWL_NEW_FOLDERS_ONLY" + ] } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_job/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_job/boto.json index c9d948edc3..0816ec84b6 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_job/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_glue_job/boto.json @@ -8,6 +8,11 @@ "VISUAL" ] }, + { + "op": "add", + "path": "/definitions/JobCommand/properties/PythonVersion/pattern", + "value": "^([2-3]|3[.]9)$" + }, { "op": "add", "path": "/properties/GlueVersion/pattern", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_guardduty_malwareprotectionplan/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_guardduty_malwareprotectionplan/boto.json new file mode 100644 index 0000000000..4dfc244ac3 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_guardduty_malwareprotectionplan/boto.json @@ -0,0 +1,10 @@ +[ + { + "op": "add", + "path": "/definitions/CFNTagging/properties/Status/enum", + "value": [ + "DISABLED", + "ENABLED" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_imagerecipe/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_imagerecipe/boto.json index 14ef8793eb..69b47529d4 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_imagerecipe/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_imagebuilder_imagerecipe/boto.json @@ -3,5 +3,10 @@ "op": "add", "path": "/properties/Name/pattern", "value": "^[-_A-Za-z-0-9][-_A-Za-z0-9 ]{1,126}[-_A-Za-z-0-9]$" + }, + { + "op": "add", + "path": "/definitions/AdditionalInstanceConfiguration/properties/UserDataOverride/pattern", + "value": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_domainconfiguration/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_domainconfiguration/boto.json index 8145c9d7ae..8768a4cb96 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_domainconfiguration/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_domainconfiguration/boto.json @@ -3,5 +3,15 @@ "op": "add", "path": "/properties/DomainName/pattern", "value": "[\\s\\S]*" + }, + { + "op": "add", + "path": "/definitions/TlsConfig/properties/SecurityPolicy/pattern", + "value": "[\\s\\S]*" + }, + { + "op": "add", + "path": "/definitions/ClientCertificateConfig/properties/ClientCertificateCallbackArn/pattern", + "value": "[\\s\\S]*" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_fleetmetric/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_fleetmetric/boto.json index 01da0360ed..35afd26506 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_fleetmetric/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_fleetmetric/boto.json @@ -4,6 +4,15 @@ "path": "/properties/MetricName/pattern", "value": "[a-zA-Z0-9_\\-\\.]+" }, + { + "op": "add", + "path": "/definitions/AggregationType/properties/Name/enum", + "value": [ + "Cardinality", + "Percentiles", + "Statistics" + ] + }, { "op": "add", "path": "/properties/Description/pattern", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_provisioningtemplate/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_provisioningtemplate/boto.json index cca6c428f5..4075a9f622 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_provisioningtemplate/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_provisioningtemplate/boto.json @@ -8,5 +8,10 @@ "op": "add", "path": "/properties/TemplateBody/pattern", "value": "[\\s\\S]*" + }, + { + "op": "add", + "path": "/definitions/ProvisioningHook/properties/PayloadVersion/pattern", + "value": "^[0-9-]+$" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_topicrule/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_topicrule/boto.json index 19698099c6..6d2c523d62 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_topicrule/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iot_topicrule/boto.json @@ -3,5 +3,44 @@ "op": "add", "path": "/properties/RuleName/pattern", "value": "^[a-zA-Z0-9_]+$" + }, + { + "op": "add", + "path": "/definitions/DynamoDBAction/properties/HashKeyType/enum", + "value": [ + "NUMBER", + "STRING" + ] + }, + { + "op": "add", + "path": "/definitions/DynamoDBAction/properties/RangeKeyType/enum", + "value": [ + "NUMBER", + "STRING" + ] + }, + { + "op": "add", + "path": "/definitions/SnsAction/properties/MessageFormat/enum", + "value": [ + "JSON", + "RAW" + ] + }, + { + "op": "add", + "path": "/definitions/FirehoseAction/properties/Separator/pattern", + "value": "([\\n\\t])|(\\r\\n)|(,)" + }, + { + "op": "add", + "path": "/definitions/ElasticsearchAction/properties/Endpoint/pattern", + "value": "https?://.*" + }, + { + "op": "add", + "path": "/definitions/OpenSearchAction/properties/Endpoint/pattern", + "value": "https?://.*" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_accesspolicy/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_accesspolicy/boto.json index 95a06ee3c1..9e9daee144 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_accesspolicy/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_accesspolicy/boto.json @@ -1,4 +1,29 @@ [ + { + "op": "add", + "path": "/definitions/User/properties/id/pattern", + "value": "\\S+" + }, + { + "op": "add", + "path": "/definitions/IamUser/properties/arn/pattern", + "value": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$" + }, + { + "op": "add", + "path": "/definitions/IamRole/properties/arn/pattern", + "value": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$" + }, + { + "op": "add", + "path": "/definitions/Portal/properties/id/pattern", + "value": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" + }, + { + "op": "add", + "path": "/definitions/Project/properties/id/pattern", + "value": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" + }, { "op": "add", "path": "/properties/AccessPolicyPermission/enum", diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_gateway/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_gateway/boto.json index 2266319927..7b771b4c18 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_gateway/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_gateway/boto.json @@ -3,5 +3,20 @@ "op": "add", "path": "/properties/GatewayName/pattern", "value": "[^\\u0000-\\u001F\\u007F]+" + }, + { + "op": "add", + "path": "/definitions/Greengrass/properties/GroupArn/pattern", + "value": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$" + }, + { + "op": "add", + "path": "/definitions/GreengrassV2/properties/CoreDeviceThingName/pattern", + "value": "^[a-zA-Z0-9:_-]+$" + }, + { + "op": "add", + "path": "/definitions/SiemensIE/properties/IotCoreThingName/pattern", + "value": "^[a-zA-Z0-9:_-]+$" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_portal/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_portal/boto.json index 35021d57a3..abb31f6f95 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_portal/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotsitewise_portal/boto.json @@ -31,5 +31,15 @@ "op": "add", "path": "/properties/NotificationSenderEmail/pattern", "value": "[^@]+@[^@]+" + }, + { + "op": "add", + "path": "/properties/Alarms/properties/AlarmRoleArn/pattern", + "value": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$" + }, + { + "op": "add", + "path": "/properties/Alarms/properties/NotificationLambdaArn/pattern", + "value": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iotwireless_fuotatask/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotwireless_fuotatask/boto.json new file mode 100644 index 0000000000..3fe6230796 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotwireless_fuotatask/boto.json @@ -0,0 +1,21 @@ +[ + { + "op": "add", + "path": "/definitions/LoRaWAN/properties/RfRegion/enum", + "value": [ + "AS923-1", + "AS923-2", + "AS923-3", + "AS923-4", + "AU915", + "CN470", + "CN779", + "EU433", + "EU868", + "IN865", + "KR920", + "RU864", + "US915" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_iotwireless_multicastgroup/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotwireless_multicastgroup/boto.json new file mode 100644 index 0000000000..080905bf9c --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_iotwireless_multicastgroup/boto.json @@ -0,0 +1,29 @@ +[ + { + "op": "add", + "path": "/definitions/LoRaWAN/properties/RfRegion/enum", + "value": [ + "AS923-1", + "AS923-2", + "AS923-3", + "AS923-4", + "AU915", + "CN470", + "CN779", + "EU433", + "EU868", + "IN865", + "KR920", + "RU864", + "US915" + ] + }, + { + "op": "add", + "path": "/definitions/LoRaWAN/properties/DlClass/enum", + "value": [ + "ClassB", + "ClassC" + ] + } +] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_datasource/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_datasource/boto.json index 88f2973233..c518da321f 100644 --- a/src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_datasource/boto.json +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_kendra_datasource/boto.json @@ -13,5 +13,10 @@ "op": "add", "path": "/definitions/Description/pattern", "value": "^\\P{C}*$" + }, + { + "op": "add", + "path": "/definitions/LambdaArn/pattern", + "value": "/arn:aws[a-zA-Z-]*:lambda:[a-z]+-[a-z]+-[0-9]:[0-9]{12}:function:[a-zA-Z0-9-_]+(\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})?(:[a-zA-Z0-9-_]+)?/" } ] diff --git a/src/cfnlint/data/schemas/patches/extensions/all/aws_kinesisfirehose_deliverystream/boto.json b/src/cfnlint/data/schemas/patches/extensions/all/aws_kinesisfirehose_deliverystream/boto.json new file mode 100644 index 0000000000..1e795ed988 --- /dev/null +++ b/src/cfnlint/data/schemas/patches/extensions/all/aws_kinesisfirehose_deliverystream/boto.json @@ -0,0 +1,107 @@ +[ + { + "op": "add", + "path": "/definitions/KMSEncryptionConfig/properties/AWSKMSKeyARN/pattern", + "value": "arn:.*" + }, + { + "op": "add", + "path": "/definitions/CloudWatchLoggingOptions/properties/LogGroupName/pattern", + "value": "[\\.\\-_/#A-Za-z0-9]*" + }, + { + "op": "add", + "path": "/definitions/CloudWatchLoggingOptions/properties/LogStreamName/pattern", + "value": "[^:*]*" + }, + { + "op": "add", + "path": "/definitions/SchemaConfiguration/properties/CatalogId/pattern", + "value": "^\\S+$" + }, + { + "op": "add", + "path": "/definitions/SchemaConfiguration/properties/DatabaseName/pattern", + "value": "^\\S+$" + }, + { + "op": "add", + "path": "/definitions/SchemaConfiguration/properties/TableName/pattern", + "value": "^\\S+$" + }, + { + "op": "add", + "path": "/definitions/SchemaConfiguration/properties/Region/pattern", + "value": "^\\S+$" + }, + { + "op": "add", + "path": "/definitions/SchemaConfiguration/properties/VersionId/pattern", + "value": "^\\S+$" + }, + { + "op": "add", + "path": "/definitions/ParquetSerDe/properties/Compression/enum", + "value": [ + "GZIP", + "SNAPPY", + "UNCOMPRESSED" + ] + }, + { + "op": "add", + "path": "/definitions/ParquetSerDe/properties/WriterVersion/enum", + "value": [ + "V1", + "V2" + ] + }, + { + "op": "add", + "path": "/definitions/OrcSerDe/properties/Compression/enum", + "value": [ + "NONE", + "SNAPPY", + "ZLIB" + ] + }, + { + "op": "add", + "path": "/definitions/OrcSerDe/properties/FormatVersion/enum", + "value": [ + "V0_11", + "V0_12" + ] + }, + { + "op": "add", + "path": "/definitions/RedshiftDestinationConfiguration/properties/ClusterJDBCURL/pattern", + "value": "jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?;`|&?{}^*/\\n]+){1,4})$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-emrcontainers-virtualcluster.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-emrcontainers-virtualcluster.json index 854fc9762e..fadaeade11 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-emrcontainers-virtualcluster.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-emrcontainers-virtualcluster.json @@ -30,6 +30,9 @@ "$ref": "#/definitions/ContainerInfo" }, "Type": { + "enum": [ + "EKS" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idmappingworkflow.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idmappingworkflow.json index 94ba9eaa72..73e0b2a011 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idmappingworkflow.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-idmappingworkflow.json @@ -131,6 +131,7 @@ "additionalProperties": false, "properties": { "IntermediateS3Path": { + "pattern": "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-matchingworkflow.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-matchingworkflow.json index bd0f9ba6e6..7f27c00d8e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-matchingworkflow.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-entityresolution-matchingworkflow.json @@ -64,6 +64,7 @@ "additionalProperties": false, "properties": { "IntermediateS3Path": { + "pattern": "^s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?$", "type": "string" } }, @@ -140,6 +141,7 @@ "type": "object" }, "ProviderServiceArn": { + "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-events-connection.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-events-connection.json index 788b760794..a801515fe3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-events-connection.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-events-connection.json @@ -8,9 +8,11 @@ "additionalProperties": false, "properties": { "ApiKeyName": { + "pattern": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$", "type": "string" }, "ApiKeyValue": { + "pattern": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$", "type": "string" } }, @@ -61,9 +63,11 @@ "additionalProperties": false, "properties": { "Password": { + "pattern": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$", "type": "string" }, "Username": { + "pattern": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$", "type": "string" } }, @@ -77,9 +81,11 @@ "additionalProperties": false, "properties": { "ClientID": { + "pattern": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$", "type": "string" }, "ClientSecret": { + "pattern": "^[ \\t]*[^\\x00-\\x1F:\\x7F]+([ \\t]+[^\\x00-\\x1F:\\x7F]+)*[ \\t]*$", "type": "string" } }, @@ -119,6 +125,7 @@ "AuthorizationEndpoint": { "maxLength": 2048, "minLength": 1, + "pattern": "^((%[0-9A-Fa-f]{2}|[-()_.!~*';/?:@\\x26=+$,A-Za-z0-9])+)([).!';/?:,])?$", "type": "string" }, "ClientParameters": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-finspace-environment.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-finspace-environment.json index d009cfa18a..19674ebd62 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-finspace-environment.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-finspace-environment.json @@ -47,6 +47,7 @@ "type": "string" }, "FederationURN": { + "pattern": "^[A-Za-z0-9._\\-:\\/#\\+]+$", "type": "string" }, "SamlMetadataDocument": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json index 7c562429fb..0f6640adfc 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-fis-experimenttemplate.json @@ -113,6 +113,7 @@ "LogGroupArn": { "maxLength": 2048, "minLength": 20, + "pattern": "[\\S]+", "type": "string" } }, @@ -131,11 +132,13 @@ "BucketName": { "maxLength": 63, "minLength": 3, + "pattern": "[\\S]+", "type": "string" }, "Prefix": { "maxLength": 1024, "minLength": 1, + "pattern": "[\\s\\S]+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-gameservergroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-gameservergroup.json index 825b6eaa5a..e52c2de726 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-gameservergroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-gamelift-gameservergroup.json @@ -155,6 +155,7 @@ "type": "string" }, "LaunchTemplateName": { + "pattern": "[a-zA-Z0-9\\(\\)\\.\\-/_]+", "type": "string" }, "MaxSize": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-crawler.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-crawler.json index 9b9032ba9a..821db04f2f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-crawler.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-crawler.json @@ -140,6 +140,11 @@ "additionalProperties": false, "properties": { "RecrawlBehavior": { + "enum": [ + "CRAWL_EVENT_MODE", + "CRAWL_EVERYTHING", + "CRAWL_NEW_FOLDERS_ONLY" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-job.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-job.json index 9a677a4bd7..9a68857daa 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-job.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-glue-job.json @@ -45,6 +45,7 @@ "type": "string" }, "PythonVersion": { + "pattern": "^([2-3]|3[.]9)$", "type": "string" }, "Runtime": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-guardduty-malwareprotectionplan.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-guardduty-malwareprotectionplan.json index 305e44a523..399b4cad9e 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-guardduty-malwareprotectionplan.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-guardduty-malwareprotectionplan.json @@ -50,6 +50,10 @@ "additionalProperties": false, "properties": { "Status": { + "enum": [ + "DISABLED", + "ENABLED" + ], "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-imagerecipe.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-imagerecipe.json index 8abb1e4d7b..af514f8e76 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-imagerecipe.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-imagebuilder-imagerecipe.json @@ -18,6 +18,7 @@ "$ref": "#/definitions/SystemsManagerAgent" }, "UserDataOverride": { + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-domainconfiguration.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-domainconfiguration.json index e271b4e93f..8662a07ec6 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-domainconfiguration.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-domainconfiguration.json @@ -29,6 +29,7 @@ "ClientCertificateCallbackArn": { "maxLength": 170, "minLength": 1, + "pattern": "[\\s\\S]*", "type": "string" } }, @@ -86,6 +87,7 @@ "properties": { "SecurityPolicy": { "maxLength": 128, + "pattern": "[\\s\\S]*", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-fleetmetric.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-fleetmetric.json index 986d1b4d9c..cba2a376bb 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-fleetmetric.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-fleetmetric.json @@ -8,6 +8,11 @@ "additionalProperties": false, "properties": { "Name": { + "enum": [ + "Cardinality", + "Percentiles", + "Statistics" + ], "type": "string" }, "Values": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-provisioningtemplate.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-provisioningtemplate.json index d0aed8f694..feb01025b8 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-provisioningtemplate.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-provisioningtemplate.json @@ -9,6 +9,7 @@ "additionalProperties": false, "properties": { "PayloadVersion": { + "pattern": "^[0-9-]+$", "type": "string" }, "TargetArn": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-topicrule.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-topicrule.json index 4b695cb9a9..10d6b95d16 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-topicrule.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iot-topicrule.json @@ -222,6 +222,10 @@ "type": "string" }, "HashKeyType": { + "enum": [ + "NUMBER", + "STRING" + ], "type": "string" }, "HashKeyValue": { @@ -234,6 +238,10 @@ "type": "string" }, "RangeKeyType": { + "enum": [ + "NUMBER", + "STRING" + ], "type": "string" }, "RangeKeyValue": { @@ -270,6 +278,7 @@ "additionalProperties": false, "properties": { "Endpoint": { + "pattern": "https?://.*", "type": "string" }, "Id": { @@ -307,6 +316,7 @@ "type": "string" }, "Separator": { + "pattern": "([\\n\\t])|(\\r\\n)|(,)", "type": "string" } }, @@ -546,6 +556,7 @@ "additionalProperties": false, "properties": { "Endpoint": { + "pattern": "https?://.*", "type": "string" }, "Id": { @@ -716,6 +727,10 @@ "additionalProperties": false, "properties": { "MessageFormat": { + "enum": [ + "JSON", + "RAW" + ], "type": "string" }, "RoleArn": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-accesspolicy.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-accesspolicy.json index 8070fb86a4..8f1c683933 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-accesspolicy.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-accesspolicy.json @@ -32,6 +32,7 @@ "additionalProperties": false, "properties": { "arn": { + "pattern": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$", "type": "string" } }, @@ -41,6 +42,7 @@ "additionalProperties": false, "properties": { "arn": { + "pattern": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$", "type": "string" } }, @@ -50,6 +52,7 @@ "additionalProperties": false, "properties": { "id": { + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", "type": "string" } }, @@ -59,6 +62,7 @@ "additionalProperties": false, "properties": { "id": { + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", "type": "string" } }, @@ -68,6 +72,7 @@ "additionalProperties": false, "properties": { "id": { + "pattern": "\\S+", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-gateway.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-gateway.json index 96dfa8b0cd..beeea11a46 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-gateway.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-gateway.json @@ -61,6 +61,7 @@ "additionalProperties": false, "properties": { "GroupArn": { + "pattern": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$", "type": "string" } }, @@ -73,6 +74,7 @@ "additionalProperties": false, "properties": { "CoreDeviceThingName": { + "pattern": "^[a-zA-Z0-9:_-]+$", "type": "string" } }, @@ -85,6 +87,7 @@ "additionalProperties": false, "properties": { "IotCoreThingName": { + "pattern": "^[a-zA-Z0-9:_-]+$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-portal.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-portal.json index 70b03dd9c1..55de94a3c3 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-portal.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotsitewise-portal.json @@ -34,9 +34,11 @@ "additionalProperties": false, "properties": { "AlarmRoleArn": { + "pattern": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$", "type": "string" }, "NotificationLambdaArn": { + "pattern": "^arn:aws(-cn|-us-gov)?:[a-zA-Z0-9-:\\/_\\.]+$", "type": "string" } }, diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotwireless-fuotatask.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotwireless-fuotatask.json index 50094758e1..3afe40470f 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotwireless-fuotatask.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotwireless-fuotatask.json @@ -5,6 +5,21 @@ "additionalProperties": false, "properties": { "RfRegion": { + "enum": [ + "AS923-1", + "AS923-2", + "AS923-3", + "AS923-4", + "AU915", + "CN470", + "CN779", + "EU433", + "EU868", + "IN865", + "KR920", + "RU864", + "US915" + ], "maxLength": 64, "minLength": 1, "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotwireless-multicastgroup.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotwireless-multicastgroup.json index f80b7e9762..55f6bfe57b 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-iotwireless-multicastgroup.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-iotwireless-multicastgroup.json @@ -5,6 +5,10 @@ "additionalProperties": false, "properties": { "DlClass": { + "enum": [ + "ClassB", + "ClassC" + ], "maxLength": 64, "minLength": 1, "type": "string" @@ -16,6 +20,21 @@ "type": "integer" }, "RfRegion": { + "enum": [ + "AS923-1", + "AS923-2", + "AS923-3", + "AS923-4", + "AU915", + "CN470", + "CN779", + "EU433", + "EU868", + "IN865", + "KR920", + "RU864", + "US915" + ], "maxLength": 64, "minLength": 1, "type": "string" diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-datasource.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-datasource.json index 1710bd48a0..3cb6b4001c 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-datasource.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kendra-datasource.json @@ -821,6 +821,7 @@ "LambdaArn": { "maxLength": 2048, "minLength": 1, + "pattern": "/arn:aws[a-zA-Z-]*:lambda:[a-z]+-[a-z]+-[0-9]:[0-9]{12}:function:[a-zA-Z0-9-_]+(\\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})?(:[a-zA-Z0-9-_]+)?/", "type": "string" }, "LanguageCode": { diff --git a/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisfirehose-deliverystream.json b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisfirehose-deliverystream.json index d307c5670d..31769c9f71 100644 --- a/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisfirehose-deliverystream.json +++ b/src/cfnlint/data/schemas/providers/us_east_1/aws-kinesisfirehose-deliverystream.json @@ -254,6 +254,7 @@ "type": "boolean" }, "LogGroupName": { + "pattern": "[\\.\\-_/#A-Za-z0-9]*", "relationshipRef": { "propertyPath": "/properties/LogGroupName", "typeName": "AWS::Logs::LogGroup" @@ -261,6 +262,7 @@ "type": "string" }, "LogStreamName": { + "pattern": "[^:*]*", "relationshipRef": { "propertyPath": "/properties/LogStreamName", "typeName": "AWS::Logs::LogStream" @@ -680,11 +682,13 @@ "Name": { "maxLength": 256, "minLength": 1, + "pattern": "^(?!\\s*$).+", "type": "string" }, "Url": { "maxLength": 1000, "minLength": 1, + "pattern": "https://.*", "type": "string" } }, @@ -725,6 +729,10 @@ "type": "string" }, "S3BackupMode": { + "enum": [ + "AllData", + "FailedDataOnly" + ], "type": "string" }, "S3Configuration": { @@ -824,6 +832,7 @@ "additionalProperties": false, "properties": { "AWSKMSKeyARN": { + "pattern": "arn:.*", "relationshipRef": { "propertyPath": "/properties/Arn", "typeName": "AWS::KMS::Key" @@ -937,6 +946,11 @@ "type": "number" }, "Compression": { + "enum": [ + "NONE", + "SNAPPY", + "ZLIB" + ], "type": "string" }, "DictionaryKeyThreshold": { @@ -946,6 +960,10 @@ "type": "boolean" }, "FormatVersion": { + "enum": [ + "V0_11", + "V0_12" + ], "type": "string" }, "PaddingTolerance": { @@ -976,6 +994,11 @@ "type": "integer" }, "Compression": { + "enum": [ + "GZIP", + "SNAPPY", + "UNCOMPRESSED" + ], "type": "string" }, "EnableDictionaryCompression": { @@ -988,6 +1011,10 @@ "type": "integer" }, "WriterVersion": { + "enum": [ + "V1", + "V2" + ], "type": "string" } }, @@ -1081,6 +1108,7 @@ "ClusterJDBCURL": { "maxLength": 512, "minLength": 1, + "pattern": "jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?