INNER CODE UNIT · Go
requireReplaceIfStateContainsPEMString
hashicorp/terraform-provider-tls · internal/provider/common.go:81
func requireReplaceIfStateContainsPEMString() planmodifier.String {
description := "Attribute requires replacement if it contains a PEM string"
return stringplanmodifier.RequiresReplaceIf(func(ctx context.Context, req planmodifier.StringRequest, resp *stringplanmodifier.RequiresReplaceIfFuncResponse) {
// NOTE: If we reach this point, we know a change has been detected and that is known AND not-null
// If the value is indeed a PEM, and
if regexp.MustCompile(`^-----BEGIN [[:alpha:] ]+-----\n(.|\s)+\n-----END [[:alpha:] ]+-----\n?$`).MatchString(req.StateValue.ValueString()) {
resp.RequiresReplace = true
return
}
}, description, description)
}