in internal/services/dynamic/dynamic.go [389:437]
func IsFullyKnown(val attr.Value) bool {
if val == nil {
return true
}
if val.IsUnknown() {
return false
}
switch v := val.(type) {
case types.Dynamic:
return IsFullyKnown(v.UnderlyingValue())
case types.List:
for _, e := range v.Elements() {
if !IsFullyKnown(e) {
return false
}
}
return true
case types.Set:
for _, e := range v.Elements() {
if !IsFullyKnown(e) {
return false
}
}
return true
case types.Tuple:
for _, e := range v.Elements() {
if !IsFullyKnown(e) {
return false
}
}
return true
case types.Map:
for _, e := range v.Elements() {
if !IsFullyKnown(e) {
return false
}
}
return true
case types.Object:
for _, e := range v.Attributes() {
if !IsFullyKnown(e) {
return false
}
}
return true
default:
return true
}
}