Documentation
¶
Index ¶
- func DefaultIfNil[T any](value *T) T
- func Deref[T any](value *T) T
- func DerefOrElse(val *string, def string) string
- func EnsureTypedList(ctx context.Context, list types.List, elemType attr.Type) types.List
- func ExpandStringSet(set *schema.Set) []string
- func FlattenMap(m map[string]any) map[string]any
- func FlipMap[K comparable, V comparable](m map[K]V) map[V]K
- func Float32Ptr(v float64) *float32
- func Float64PointerValue(value types.Float64) *float64
- func FormatStrictDateTime(t time.Time) string
- func IsEmpty(v any) bool
- func IsKnown(value attr.Value) bool
- func Itol(value *int) *int64
- func JSONBytesEqual(a, b []byte) (bool, error)
- func ListTypeAs[T any](ctx context.Context, value types.List, p path.Path, diags *diag.Diagnostics) []T
- func ListTypeToMap[T1 any, T2 any](ctx context.Context, value types.List, p path.Path, diags *diag.Diagnostics, ...) map[string]T2
- func ListTypeToSlice[T1 any, T2 any](ctx context.Context, value types.List, p path.Path, diags *diag.Diagnostics, ...) []T2
- func ListTypeToSliceString(ctx context.Context, value types.List, p path.Path, diags *diag.Diagnostics) []string
- func ListValueFrom[T any](ctx context.Context, value []T, elemType attr.Type, p path.Path, ...) types.List
- func Ltoi(value *int64) *int
- func MapRef[K comparable, T any, M ~map[K]T](value M) *M
- func MapToMapType[T1 any, T2 any](ctx context.Context, value map[string]T1, elemType attr.Type, p path.Path, ...) types.Map
- func MapToNormalizedType[T any](value map[string]T, p path.Path, diags *diag.Diagnostics) jsontypes.Normalized
- func MapTypeAs[T any](ctx context.Context, value types.Map, p path.Path, diags *diag.Diagnostics) map[string]T
- func MapTypeToMap[T1 any, T2 any](ctx context.Context, value types.Map, p path.Path, diags *diag.Diagnostics, ...) map[string]T2
- func MapValueFrom[T any](ctx context.Context, value map[string]T, elemType attr.Type, p path.Path, ...) types.Map
- func NonEmptyListOrDefault[T any](ctx context.Context, original types.List, elemType attr.Type, slice []T) (types.List, diag.Diagnostics)
- func NonEmptySetOrDefault[T any](ctx context.Context, original types.Set, elemType attr.Type, slice []T) (types.Set, diag.Diagnostics)
- func NonEmptyStringPointerValue(value types.String) *string
- func NonEmptyStringPtr(s string) *string
- func NonEmptyStringishPointerValue[T ~string](ptr *T) types.String
- func NonEmptyStringishValue[T ~string](value T) types.String
- func NonNilSlice[T any](s []T) []T
- func NormalizedTypeToMap[T any](value jsontypes.Normalized, p path.Path, diags *diag.Diagnostics) map[string]T
- func ObjectTypeAs[T any](ctx context.Context, value types.Object, p path.Path, diags *diag.Diagnostics) *T
- func ObjectTypeToStruct[T1 any, T2 any](ctx context.Context, value types.Object, p path.Path, diags *diag.Diagnostics, ...) *T2
- func ObjectValueFrom[T any](ctx context.Context, value *T, attrTypes map[string]attr.Type, p path.Path, ...) types.Object
- func PointerInterfaceMapFromAnyMap(input map[string]any) map[string]*any
- func SetTypeAs[T any](ctx context.Context, value types.Set, p path.Path, diags *diag.Diagnostics) []T
- func SetValueFrom[T any](ctx context.Context, value []T, elemType attr.Type, p path.Path, ...) types.Set
- func SliceNilIfEmpty[T any, S ~[]T](value S) *S
- func SliceRef[T any, S ~[]T](value S) *S
- func SliceToListType[T1 any, T2 any](ctx context.Context, value []T1, elemType attr.Type, p path.Path, ...) types.List
- func SliceToListTypeString(ctx context.Context, value []string, p path.Path, diags *diag.Diagnostics) types.List
- func StringToHash(s string) (*string, error)
- func StringishPointerValue[T ~string](ptr *T) types.String
- func StringishValue[T ~string](value T) types.String
- func StructToObjectType[T1 any, T2 any](ctx context.Context, value *T1, attrTypes map[string]attr.Type, p path.Path, ...) types.Object
- func TimeToStringValue(t time.Time) types.String
- func TransformMap[T1 any, T2 any](_ context.Context, value map[string]T1, p path.Path, diags *diag.Diagnostics, ...) map[string]T2
- func TransformMapToSlice[T1 any, T2 any](_ context.Context, value map[string]T1, p path.Path, diags *diag.Diagnostics, ...) []T2
- func TransformObject[T1 any, T2 any](_ context.Context, value *T1, p path.Path, diags *diag.Diagnostics, ...) *T2
- func TransformSlice[T1 any, T2 any](_ context.Context, value []T1, p path.Path, diags *diag.Diagnostics, ...) []T2
- func TransformSliceToMap[T1 any, T2 any](_ context.Context, value []T1, p path.Path, diags *diag.Diagnostics, ...) map[string]T2
- func ValueStringPointer(value types.String) *string
- type Elementable
- type ListMeta
- type MapMeta
- type ObjectMeta
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultIfNil ¶ added in v0.15.0
func DefaultIfNil[T any](value *T) T
DefaultIfNil returns the dereferenced value of the pointer, or the zero value of T if the pointer is nil. Deprecated: use Deref instead.
func Deref ¶ added in v0.15.0
func Deref[T any](value *T) T
Deref returns the value referenced by the given pointer. If the pointer is nil, a zero value is returned.
func DerefOrElse ¶ added in v0.15.0
DerefOrElse returns the value pointed to by val if it is non-nil and non-empty, otherwise it returns def. It is the inverse of NonEmptyStringPtr.
func EnsureTypedList ¶ added in v0.14.0
EnsureTypedList converts untyped zero-value lists to properly typed null lists. This is commonly needed during import operations where the framework may create untyped lists with DynamicPseudoType elements, which causes type conversion errors. If the list already has a proper type, it is returned unchanged.
func ExpandStringSet ¶ added in v0.14.3
func FlattenMap ¶ added in v0.15.0
FlattenMap recursively flattens a nested map into a single-level map with dot-separated keys. For example, {"index": {"key": 1}} becomes {"index.key": 1}.
func FlipMap ¶ added in v0.15.0
func FlipMap[K comparable, V comparable](m map[K]V) map[V]K
FlipMap returns a new map with keys and values swapped.
func Float32Ptr ¶ added in v0.15.0
Float32Ptr converts a float64 to a *float32.
func Float64PointerValue ¶ added in v0.15.0
Float64PointerValue returns nil if unknown, otherwise the same as value.ValueFloat64Pointer().
func FormatStrictDateTime ¶ added in v0.15.0
FormatStrictDateTime formats a time.Time as ISO 8601 strict date-time with milliseconds.
func IsEmpty ¶ added in v0.15.0
IsEmpty reports whether v is a zero-like value: zero number, blank string, empty slice/map, or nil.
func JSONBytesEqual ¶ added in v0.15.0
JSONBytesEqual reports whether the JSON in two byte slices is semantically equivalent.
func ListTypeAs ¶ added in v0.14.3
func ListTypeAs[T any](ctx context.Context, value types.List, p path.Path, diags *diag.Diagnostics) []T
ListTypeAs converts a types.List into a tfsdk aware []T.
func ListTypeToMap ¶ added in v0.14.3
func ListTypeToMap[T1 any, T2 any](ctx context.Context, value types.List, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta ListMeta) (key string, elem T2)) map[string]T2
ListTypeToMap converts a types.List first into a tfsdk aware []T1 and transforms the result into a map[string]T2.
func ListTypeToSlice ¶ added in v0.14.3
func ListTypeToSlice[T1 any, T2 any](ctx context.Context, value types.List, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta ListMeta) T2) []T2
ListTypeToSlice converts a types.List first into a tfsdk aware []T1 and transforms the result into a []T2.
func ListTypeToSliceString ¶ added in v0.14.3
func ListTypeToSliceString(ctx context.Context, value types.List, p path.Path, diags *diag.Diagnostics) []string
ListTypeToSliceString converts a types.List into a []string. This is a shorthand ListTypeToSlice helper for strings.
func ListValueFrom ¶ added in v0.14.3
func ListValueFrom[T any](ctx context.Context, value []T, elemType attr.Type, p path.Path, diags *diag.Diagnostics) types.List
ListValueFrom converts a tfsdk aware []T to a types.List.
func MapRef ¶ added in v0.15.0
func MapRef[K comparable, T any, M ~map[K]T](value M) *M
MapRef takes the reference of the given map value. If the value is nil, it returns nil rather than a pointer to nil.
func MapToMapType ¶ added in v0.14.3
func MapToMapType[T1 any, T2 any](ctx context.Context, value map[string]T1, elemType attr.Type, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta MapMeta) T2) types.Map
MapToMapType converts a tfsdk naive map[string]T1 into an types.Map of map[string]T2. This handles both structs and simple types to attr.Values.
func MapToNormalizedType ¶ added in v0.14.3
func MapToNormalizedType[T any](value map[string]T, p path.Path, diags *diag.Diagnostics) jsontypes.Normalized
MapToNormalizedType marshals a map[string]T into a jsontypes.Normalized.
func MapTypeAs ¶ added in v0.14.3
func MapTypeAs[T any](ctx context.Context, value types.Map, p path.Path, diags *diag.Diagnostics) map[string]T
MapTypeAs converts a types.Map into a tfsdk aware map[string]T.
func MapTypeToMap ¶ added in v0.14.3
func MapTypeToMap[T1 any, T2 any](ctx context.Context, value types.Map, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta MapMeta) T2) map[string]T2
MapTypeToMap converts a types.Map first into a tfsdk aware map[string]T1 and transforms the result into a map[string]T2.
func MapValueFrom ¶ added in v0.14.3
func MapValueFrom[T any](ctx context.Context, value map[string]T, elemType attr.Type, p path.Path, diags *diag.Diagnostics) types.Map
MapValueFrom converts a tfsdk aware map[string]T to a types.Map.
func NonEmptyListOrDefault ¶ added in v0.13.1
func NonEmptyListOrDefault[T any](ctx context.Context, original types.List, elemType attr.Type, slice []T) (types.List, diag.Diagnostics)
NonEmptyListOrDefault returns the original list if slice is empty, otherwise converts slice into a types.List.
func NonEmptySetOrDefault ¶ added in v0.13.1
func NonEmptySetOrDefault[T any](ctx context.Context, original types.Set, elemType attr.Type, slice []T) (types.Set, diag.Diagnostics)
NonEmptySetOrDefault returns the original set if slice is empty, otherwise converts slice into a types.Set.
func NonEmptyStringPointerValue ¶ added in v0.15.0
NonEmptyStringPointerValue returns nil if the value is null, unknown, or empty string, otherwise returns a pointer to the string value.
func NonEmptyStringPtr ¶ added in v0.15.0
NonEmptyStringPtr returns a pointer to s, or nil if s is empty.
func NonEmptyStringishValue ¶
func NonNilSlice ¶ added in v0.15.0
func NonNilSlice[T any](s []T) []T
NonNilSlice returns an empty slice if s is nil. Guarantees that json.Marshal and terraform parameters will not treat the empty slice as null.
func NormalizedTypeToMap ¶ added in v0.14.3
func NormalizedTypeToMap[T any](value jsontypes.Normalized, p path.Path, diags *diag.Diagnostics) map[string]T
NormalizedTypeToMap unmarshals a jsontypes.Normalized to a map[string]T.
func ObjectTypeAs ¶ added in v0.14.3
func ObjectTypeAs[T any](ctx context.Context, value types.Object, p path.Path, diags *diag.Diagnostics) *T
ObjectTypeAs converts a types.Object into a tfsdk aware T.
func ObjectTypeToStruct ¶ added in v0.14.3
func ObjectTypeToStruct[T1 any, T2 any](ctx context.Context, value types.Object, p path.Path, diags *diag.Diagnostics, transformee func(item T1, meta ObjectMeta) T2) *T2
ObjectTypeToStruct converts a types.Object first into a tfsdk aware T1 and transforms the result into a T2.
func ObjectValueFrom ¶ added in v0.14.3
func ObjectValueFrom[T any](ctx context.Context, value *T, attrTypes map[string]attr.Type, p path.Path, diags *diag.Diagnostics) types.Object
ObjectValueFrom converts a tfsdk aware T to a types.Object.
func PointerInterfaceMapFromAnyMap ¶ added in v0.15.0
PointerInterfaceMapFromAnyMap converts a map[string]any to map[string]*any by taking pointers to each value. This is needed when constructing API request bodies that require pointer values.
func SetTypeAs ¶ added in v0.14.3
func SetTypeAs[T any](ctx context.Context, value types.Set, p path.Path, diags *diag.Diagnostics) []T
SetTypeAs converts a types.Set into a tfsdk aware []T.
func SetValueFrom ¶ added in v0.14.3
func SetValueFrom[T any](ctx context.Context, value []T, elemType attr.Type, p path.Path, diags *diag.Diagnostics) types.Set
SetValueFrom converts a tfsdk aware []T to a types.Set.
func SliceNilIfEmpty ¶ added in v0.15.0
func SliceNilIfEmpty[T any, S ~[]T](value S) *S
SliceNilIfEmpty takes the reference of the given slice value. If the value is nil or empty, it returns nil rather than a pointer to an empty slice.
func SliceRef ¶ added in v0.15.0
func SliceRef[T any, S ~[]T](value S) *S
SliceRef takes the reference of the given slice value. If the value is nil, it returns nil rather than a pointer to nil.
func SliceToListType ¶ added in v0.14.3
func SliceToListType[T1 any, T2 any](ctx context.Context, value []T1, elemType attr.Type, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta ListMeta) T2) types.List
SliceToListType converts a tfsdk naive []T1 into an types.List of []T2. This handles both structs and simple types to attr.Values.
func SliceToListTypeString ¶ added in v0.14.3
func SliceToListTypeString(ctx context.Context, value []string, p path.Path, diags *diag.Diagnostics) types.List
SliceToListTypeString converts a tfsdk naive []string into a types.List. This is a shorthand SliceToListType helper for strings.
func StringToHash ¶ added in v0.15.0
StringToHash computes a SHA-1 hash of s and returns the hex-encoded result as a pointer.
func StringishPointerValue ¶
StringishPointerValue converts a pointer to a string-like type to a Terraform types.String value.
func StringishValue ¶
StringishValue converts a value of any string-like type T to a Terraform types.String.
func StructToObjectType ¶ added in v0.14.3
func StructToObjectType[T1 any, T2 any]( ctx context.Context, value *T1, attrTypes map[string]attr.Type, p path.Path, diags *diag.Diagnostics, transformee func(item T1, meta ObjectMeta) T2, ) types.Object
StructToObjectType converts a tfsdk naive T1 into an types.Object of T2.
func TimeToStringValue ¶ added in v0.15.0
TimeToStringValue formats a time.Time to ISO 8601 format and returns a types.StringValue.
func TransformMap ¶ added in v0.14.3
func TransformMap[T1 any, T2 any](_ context.Context, value map[string]T1, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta MapMeta) T2) map[string]T2
TransformMap converts map[string]T1 to map[string]T2 via the iteratee.
func TransformMapToSlice ¶ added in v0.14.3
func TransformMapToSlice[T1 any, T2 any](_ context.Context, value map[string]T1, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta MapMeta) T2) []T2
TransformMapToSlice converts map[string]T1 to []T2 via the iteratee.
func TransformObject ¶ added in v0.14.3
func TransformObject[T1 any, T2 any](_ context.Context, value *T1, p path.Path, diags *diag.Diagnostics, transformee func(item T1, meta ObjectMeta) T2) *T2
TransformObject converts T1 to T2 via the transformee.
func TransformSlice ¶ added in v0.14.3
func TransformSlice[T1 any, T2 any](_ context.Context, value []T1, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta ListMeta) T2) []T2
TransformSlice converts []T1 to []T2 via the iteratee.
func TransformSliceToMap ¶ added in v0.14.3
func TransformSliceToMap[T1 any, T2 any](_ context.Context, value []T1, p path.Path, diags *diag.Diagnostics, iteratee func(item T1, meta ListMeta) (key string, elem T2)) map[string]T2
TransformSliceToMap converts []T1 to map[string]T2 via the iteratee.
func ValueStringPointer ¶ added in v0.14.3
ValueStringPointer returns nil if unknown, otherwise the same as value.ValueStringPointer(). Useful for computed optional fields without a default value, as these unknown values return a pointer to an empty string.
Types ¶
type Elementable ¶ added in v0.14.3
type ListMeta ¶ added in v0.14.3
type ListMeta struct {
Index int
Path path.Path
Diags *diag.Diagnostics
}
type MapMeta ¶ added in v0.14.3
type MapMeta struct {
Key string
Path path.Path
Diags *diag.Diagnostics
}
type ObjectMeta ¶ added in v0.14.3
type ObjectMeta struct {
Path path.Path
Diags *diag.Diagnostics
}