/
map_value.go
50 lines (41 loc) · 1.92 KB
/
map_value.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package types
import (
"context"
"github.com/hashicorp/terraform-plugin-framework/attr"
"github.com/hashicorp/terraform-plugin-framework/diag"
"github.com/hashicorp/terraform-plugin-framework/types/basetypes"
)
type Map = basetypes.MapValue
// MapNull creates a Map with a null value. Determine whether the value is
// null via the Map type IsNull method.
func MapNull(elementType attr.Type) basetypes.MapValue {
return basetypes.NewMapNull(elementType)
}
// MapUnknown creates a Map with an unknown value. Determine whether the
// value is unknown via the Map type IsUnknown method.
func MapUnknown(elementType attr.Type) basetypes.MapValue {
return basetypes.NewMapUnknown(elementType)
}
// MapValue creates a Map with a known value. Access the value via the Map
// type Elements or ElementsAs methods.
func MapValue(elementType attr.Type, elements map[string]attr.Value) (basetypes.MapValue, diag.Diagnostics) {
return basetypes.NewMapValue(elementType, elements)
}
// MapValueFrom creates a Map with a known value, using reflection rules.
// The elements must be a map which can convert into the given element type.
// Access the value via the Map type Elements or ElementsAs methods.
func MapValueFrom(ctx context.Context, elementType attr.Type, elements any) (basetypes.MapValue, diag.Diagnostics) {
return basetypes.NewMapValueFrom(ctx, elementType, elements)
}
// MapValueMust creates a Map with a known value, converting any diagnostics
// into a panic at runtime. Access the value via the Map
// type Elements or ElementsAs methods.
//
// This creation function is only recommended to create Map values which will
// not potentially affect practitioners, such as testing, or exhaustively
// tested provider logic.
func MapValueMust(elementType attr.Type, elements map[string]attr.Value) basetypes.MapValue {
return basetypes.NewMapValueMust(elementType, elements)
}