The format keyword

April 7, 2026 ยท View on GitHub

The format keyword in JSON Schema is used to define a regular expression pattern that a string value should match. It provides a way to validate that a string adheres to a specific format or pattern.

In cfn-lint, we have extended the format keyword to support custom formats that are specific to AWS resources. These custom formats help validate values against specific patterns or constraints defined by AWS.

Custom Formats

cfn-lint supports the following custom formats:

AWS::EC2::VPC.Id

This format ensures that the value is a valid VPC ID, which is a string of the pattern vpc-[0-9a-f]{8} or vpc-[0-9a-f]{17}.

AWS::EC2::SecurityGroup.Id

This format validates that the value is a valid security group ID, which is a string of the pattern sg-[0-9a-f]{8} or sg-[0-9a-f]{17}.

AWS::EC2::SecurityGroup.Ids

This format validates that the value is a valid list of security group IDs, which is a string of the pattern sg-[0-9a-f]{8} or sg-[0-9a-f]{17}.

AWS::EC2::SecurityGroup.Name

This format validates that the value is a valid security group name, which must be a string of 1 to 255 characters, starting with a letter, and containing only letters, numbers, and certain special characters.

AWS::EC2::SecurityGroup.Names

This format validates that the value is a valid list of security group names, which must be a string of 1 to 255 characters, starting with a letter, and containing only letters, numbers, and certain special characters.

AWS::EC2::Image.Id

This format validates that the value is a valid Amazon Machine Image (AMI), which is a string of the pattern ami-[0-9a-f]{8} or ami-[0-9a-f]{17}. More info in docs

AWS::IAM::Role.Arn

This format validates that the value is a valid IAM Role ARN, which is a string of the pattern ^arn:aws[a-zA-Z-]*:iam::\d{12}:role/.+$. More info in docs

AWS::KMS::Key.Arn

This format validates that the value is a valid KMS key ARN (key or alias), which is a string of the pattern ^arn:aws[a-zA-Z-]*:kms:[a-z0-9-]+:\d{12}:(key|alias)/.+$. More info in docs

AWS::KMS::Key.Id

This format validates that the value is a valid KMS key identifier (UUID, multi-region key ID, or alias name). Matches patterns: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$, ^mrk-[0-9a-f]{32}$, or ^alias/[a-zA-Z0-9/_-]+$. More info in docs

AWS::KMS::Alias.AliasName

This format validates that the value is a valid KMS alias name, which is a string of the pattern ^alias/[a-zA-Z0-9:/_-]+$. More info in docs

AWS::SNS::Topic.Arn

This format validates that the value is a valid SNS topic ARN, which is a string of the pattern ^arn:aws[a-zA-Z-]*:sns:[a-z0-9-]+:\d{12}:.+$. More info in docs

AWS::ACM::Certificate.Arn

This format validates that the value is a valid ACM certificate ARN, which is a string of the pattern ^arn:aws[a-zA-Z-]*:acm:[a-z0-9-]+:\d{12}:certificate/.+$. More info in docs

AWS::Lambda::Function.Arn

This format validates that the value is a valid Lambda function ARN with optional version or alias qualifier, which is a string of the pattern ^arn:aws[a-zA-Z-]*:lambda:[a-z0-9-]+:\d{12}:function:.+(:.+)?$. More info in docs

AWS::Lambda::Function.Name

This format validates that the value is a valid Lambda function name (not an ARN), which is a string of the pattern ^[a-zA-Z0-9_-]{1,140}$. More info in docs

AWS::S3::Bucket.Name

This format validates that the value is a valid S3 bucket name, which must be 3-63 characters, lowercase letters, numbers, dots, and hyphens. More info in docs

AWS::Logs::LogGroup.Name

This format validates that the value is a valid log group name, which is a string of the pattern ^[\.\-_\/#A-Za-z0-9]{1,512}\Z. More info in docs

ipv4-network

Validates the value against the python implementation of validating an IPV4 network

ipv6-network

Validates the value against the python implementation of validating an IPV6 network