You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform/internal/addrs/remove_target_kind.go

35 lines
960 B

// Copyright IBM Corp. 2014, 2026
// SPDX-License-Identifier: BUSL-1.1
package addrs
import "fmt"
// RemoveTargetKind represents the different kinds of object that a remove
// target address can refer to.
type RemoveTargetKind rune
//go:generate go tool golang.org/x/tools/cmd/stringer -type RemoveTargetKind
const (
// RemoveTargetModule indicates that a remove target refers to
// all instances of a particular module call.
RemoveTargetModule RemoveTargetKind = 'M'
// RemoveTargetResource indicates that a remove target refers to
// all instances of a particular resource.
RemoveTargetResource RemoveTargetKind = 'R'
)
func removeTargetKind(addr ConfigMoveable) RemoveTargetKind {
switch addr := addr.(type) {
case Module:
return RemoveTargetModule
case ConfigResource:
return RemoveTargetResource
default:
// The above should be exhaustive for all ConfigMoveable types.
panic(fmt.Sprintf("unsupported address type %T", addr))
}
}