mirror of
https://github.com/hashicorp/terraform.git
synced 2026-02-18 18:29:44 -05:00
34 lines
960 B
Go
34 lines
960 B
Go
// 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))
|
|
}
|
|
}
|