github.com/paultyng/terraform@v0.6.11-0.20180227224804-66ff8f8bed40/configs/variable_type_hint.go (about) 1 package configs 2 3 // VariableTypeHint is an enumeration used for the Variable.TypeHint field, 4 // which is an incompletely-specified type for the variable which is used 5 // as a hint for whether a value provided in an ambiguous context (on the 6 // command line or in an environment variable) should be taken literally as a 7 // string or parsed as an HCL expression to produce a data structure. 8 // 9 // The type hint is applied to runtime values as well, but since it does not 10 // accurately describe a precise type it is not fully-sufficient to infer 11 // the dynamic type of a value passed through a variable. 12 // 13 // These hints use inaccurate terminology for historical reasons. Full details 14 // are in the documentation for each constant in this enumeration, but in 15 // summary: 16 // 17 // TypeHintString requires a primitive type 18 // TypeHintList requires a type that could be converted to a tuple 19 // TypeHintMap requires a type that could be converted to an object 20 type VariableTypeHint rune 21 22 //go:generate stringer -type VariableTypeHint 23 24 // TypeHintNone indicates the absense of a type hint. Values specified in 25 // ambiguous contexts will be treated as literal strings, as if TypeHintString 26 // were selected, but no runtime value checks will be applied. This is reasonable 27 // type hint for a module that is never intended to be used at the top-level 28 // of a configuration, since descendent modules never recieve values from 29 // ambiguous contexts. 30 const TypeHintNone VariableTypeHint = 0 31 32 // TypeHintString spec indicates that a value provided in an ambiguous context 33 // should be treated as a literal string, and additionally requires that the 34 // runtime value for the variable is of a primitive type (string, number, bool). 35 const TypeHintString VariableTypeHint = 'S' 36 37 // TypeHintList indicates that a value provided in an ambiguous context should 38 // be treated as an HCL expression, and additionally requires that the 39 // runtime value for the variable is of an tuple, list, or set type. 40 const TypeHintList VariableTypeHint = 'L' 41 42 // TypeHintMap indicates that a value provided in an ambiguous context should 43 // be treated as an HCL expression, and additionally requires that the 44 // runtime value for the variable is of an object or map type. 45 const TypeHintMap VariableTypeHint = 'M'