List of Puppet data types

The following data types are available in the Puppet language.

For details on each data type, see the linked documentation or the specification document.

Data type Purpose Type category
Any The parent type of all types. Abstract
Array The data type of arrays. Data
Binary A type representing a sequence of bytes. Data
Boolean The data type of Boolean values. Data, Scalar
Callable Something that can be called (such as a function or lambda). Platform
CatalogEntry The parent type of all types that are included in a Puppet catalog. Abstract
Class A special data type used to declare classes. Catalog
Collection A parent type of Array and Hash. Abstract
Data A parent type of all data directly representable as JSON. Abstract
Default The "default value" type. Platform
Deferred A type describing a call to be resolved in the future. Platform
Enum An enumeration of strings. Abstract
Error A type used to communicate when a function has produced an error.  
Float The data type of floating point numbers. Data, Scalar
Hash The data type of hashes. Data
Init A type used to accept values that are compatible of some other type's "new".  
Integer The data type of integers. Data, Scalar
Iterable A type that represents all types that allow iteration. Abstract
Iterator A special kind of lazy Iterable suitable for chaining. Abstract
NotUndef A type that represents all types not assignable from the Undef type. Abstract
Numeric The parent type of all numeric data types. Abstract
Object Experimental. Can be a simple object only having attributes, or a more complex object also supporting callable methods.  
Optional Either Undef or a specific type. Abstract
Pattern An enumeration of regular expression patterns. Abstract
Regexp The data type of regular expressions. Scalar
Resource A special data type used to declare resources. Catalog
RichData A parent type of all data types except the non serializeable types Callable, Iterator, Iterable, and Runtime. Abstract
Runtime The type of runtime (non Puppet) types. Platform
Scalar Represents the abstract notion of "value". Abstract
ScalarData A parent type of all single valued data types that are directly representable in JSON. Abstract
SemVer A type representing semantic versions. Scalar
SemVerRange A range of SemVer versions. Abstract
Sensitive A type that represents a data type that has "clear text" restrictions. Platform
String The data type of strings. Data, Scalar
Struct A Hash where each entry is individually named and typed. Abstract
Timespan A type representing a duration of time. Scalar
Timestamp A type representing a specific point in time Scalar
Tuple An Array where each slot is typed individually Abstract
Type The type of types. Platform
Typeset Experimental. Represents a collection of Object-based data types.  
Undef The "no value" type. Data, Platform
URI A type representing a Uniform Resource Identifier Data
Variant One of a selection of types. Abstract