internal/provider/map_validator.go (24 lines of code) (raw):
// Copyright (c) Microsoft Corporation. All rights reserved.
// SPDX-License-Identifier: MPL-2.0
package provider
import (
"context"
"fmt"
"slices"
"github.com/hashicorp/terraform-plugin-framework/schema/validator"
)
var _ validator.Map = mapValidator{}
type mapValidator struct{}
func (m mapValidator) Description(ctx context.Context) string {
return "`tags` could not contains key `event`."
}
func (m mapValidator) MarkdownDescription(ctx context.Context) string {
return "`tags` could not contains key `event`."
}
func (m mapValidator) ValidateMap(ctx context.Context, request validator.MapRequest, response *validator.MapResponse) {
reservedKeys := []string{"event"}
for k := range request.ConfigValue.Elements() {
if slices.Contains(reservedKeys, k) {
errStr := fmt.Sprintf("`tags` must not contains keys %v.", reservedKeys)
response.Diagnostics.AddError(errStr, "")
}
}
}