Skip to main content


Enum icon Sylk Enum

In Sylk, an enum resource is a type of resource that allows you to define a set of named constants, also known as enumeration members or values, that represent a finite list of possible values for a field in a message or a service method request/response.

In the Protocol Buffers language, an enum is a user-defined type that consists of a set of named values, each associated with a unique integer value. The enum type is used to represent a field that can only have one of a fixed set of values.

In Sylk CLI, you can define custom enum resource types using the

# Associate enum to a known package
sylk generate enum

#  foo . bar . v1 . SomeEnum
# | | | |
# | | | |
# | | | └─ The name of the Enum.
# | | └─ The version of the package.
# | └─ The namespace of the package (logical grouping).
# └─ Root namespace.

# Generate enum and interactively chose a package to hold that enum
sylk generate enum SomeEnum
πŸ‘€ Info

sylk generate command options are listed in the CLI Commands section

command, which generates an enum resource template that you can edit to define your enum type. The enum resource template includes fields for the enum name and each of the named values, along with their corresponding integer values.

Once you define a custom enum resource type, you can use it to define fields in your message or service method request/response definitions. This allows you to create complex message and service definitions that accurately reflect your business logic and data model.

Using enum types can help make your message and service definitions more self-documenting and less error-prone, since they limit the possible values of a field and provide meaningful names for those values.