mirror of
https://github.com/opentofu/opentofu.git
synced 2025-01-15 11:13:09 -06:00
fca07d1a61
Fitting with the usual naming scheme, this is the combination of a module instance address and a provider config.
43 lines
1023 B
Go
43 lines
1023 B
Go
package addrs
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// ProviderConfig is the address of a provider configuration.
|
|
type ProviderConfig struct {
|
|
Type string
|
|
|
|
// If not empty, Alias identifies which non-default (aliased) provider
|
|
// configuration this address refers to.
|
|
Alias string
|
|
}
|
|
|
|
// Absolute returns an AbsProviderConfig from the receiver and the given module
|
|
// instance address.
|
|
func (pc ProviderConfig) Absolute(module ModuleInstance) AbsProviderConfig {
|
|
return AbsProviderConfig{
|
|
Module: module,
|
|
ProviderConfig: pc,
|
|
}
|
|
}
|
|
|
|
func (pc ProviderConfig) String() string {
|
|
if pc.Alias != "" {
|
|
return fmt.Sprintf("provider.%s.%s", pc.Type, pc.Alias)
|
|
}
|
|
|
|
return "provider." + pc.Type
|
|
}
|
|
|
|
// AbsProviderConfig is the absolute address of a provider configuration
|
|
// within a particular module instance.
|
|
type AbsProviderConfig struct {
|
|
Module ModuleInstance
|
|
ProviderConfig ProviderConfig
|
|
}
|
|
|
|
func (pc AbsProviderConfig) String() string {
|
|
return fmt.Sprintf("%s.%s", pc.Module.String(), pc.ProviderConfig.String())
|
|
}
|