Terraform
Tuple types
Tuple types store an ordered collection of elements where each element has it's own type. Values must have exactly the same number of elements (no more and no fewer), and the value in each position must match the specified type for that position.
The tuple type is used to express Terraform's tuple type constraint.
Schema Definitions
The tuple type is not supported in framework schema definitions as it has limited real world application.
Accessing Values
Access types.Tuple information via the following methods:
(types.Tuple).IsNull() bool: Returnstrueif the tuple is null.(types.Tuple).IsUnknown() bool: Returnstrueif the tuple is unknown. Returnsfalseif the number of elements is known, any of which may be unknown.(types.Tuple).Elements() []attr.Value: Returns the known[]attr.Valuevalue, ornilif null or unknown.
Setting Values
Call one of the following to create a types.Tuple value:
types.TupleNull([]attr.Type) types.Tuple: A null tuple value with the given element types.types.TupleUnknown([]attr.Type) types.Tuple: An unknown tuple value with the given element types.types.TupleValue([]attr.Type, []attr.Value) (types.Tuple, diag.Diagnostics): A known value with the given element types and values.types.TupleValueMust([]attr.Type, []attr.Value) types.Tuple: A known value with the given element types and values. Any diagnostics are converted to a runtime panic. This is recommended only for testing or exhaustively tested logic.
In this example, a known tuple value (["one", true, 123]) is created from framework types:
elementTypes := []attr.Type{
types.StringType,
types.BoolType,
types.Int64Type,
}
elements := []attr.Value{
types.StringValue("one"),
types.BoolValue(true),
types.Int64Value(123),
}
tupleValue, diags := types.TupleValue(elementTypes, elements)