Linter rulesAsyncAPIschema-enum-naming
schema-enum-naming
Since 0.9.0
This rule ensures that all string values defined in the enum properties of
schema objects adhere to a predefined naming convention.
Rule Details
Adhering to a consistent naming convention enhances the readability and maintainability of the API’s structure.
The schema-enum-naming rule checks the string values of the enum list of
every schema of an AsyncAPI document. For every value that is not in the
expected convention, it reports
Schema enum value '<value>' is not in the '<convention>' convention.
Values of other types (numbers, booleans, null, …) are ignored.
The recognised naming conventions are:
const- THIS_IS_CONST_CASEcamel- thisIsCamelCase, also with acronyms (userID)camel-strict- thisIsCamelCase, but no two capitals in a row (userId, not userID)kebab- this-is-kebab-casepascal- ThisIsPascalCase, also with acronyms (HTTPServer)pascal-strict- ThisIsPascalCase, but no two capitals in a row (HttpServer, not HTTPServer)header- This-Is-Header-Casesnake- this_is_snake_case
The default convention is const.
Configuration
The configuration block is a naming convention name (see the “Rule Details” section for a list of recognized names).
version: "1.0"
commands:
lint:
asyncapi:
rules:
schema-enum-naming: [warning, kebab]
Examples
Good. With the default configuration.
asyncapi: 3.0.0
info:
title: User Events
version: 1.0.0
components:
schemas:
UserStatus:
type: string
enum:
- ACTIVE
- INACTIVE
- BLOCKED
Bad. To use UserStatus properly, a consumer must always consult the
documentation.
asyncapi: 3.0.0
info:
title: User Events
version: 1.0.0
components:
schemas:
UserStatus:
type: string
enum:
- activeStatus
- inactive_status
- BLOCKED_STATUS
When Not to Use It
If your API does not follow a specific naming convention for enum values
in its schema objects, you may not need to use this rule.
Compatibility
This rule is compatible with AsyncAPI 3.x documents. AsyncAPI 2.x documents are rejected by the reader and are not linted.