internal/provider/must_be_valid_regex.go (22 lines of code) (raw):
package provider
import (
"context"
"regexp"
"github.com/hashicorp/terraform-plugin-framework-validators/helpers/validatordiag"
"github.com/hashicorp/terraform-plugin-framework/schema/validator"
)
type MustBeValidRegex struct {
}
func (m MustBeValidRegex) Description(ctx context.Context) string {
return "value must be a valid regex"
}
func (m MustBeValidRegex) MarkdownDescription(ctx context.Context) string {
return m.Description(ctx)
}
func (m MustBeValidRegex) ValidateString(ctx context.Context, request validator.StringRequest, response *validator.StringResponse) {
item := request.ConfigValue.ValueString()
_, err := regexp.Compile(item)
if err != nil {
response.Diagnostics.Append(validatordiag.InvalidAttributeValueDiagnostic(request.Path, m.Description(ctx), item))
}
}