addrs: AbsProviderConfig type

Fitting with the usual naming scheme, this is the combination of a
module instance address and a provider config.
This commit is contained in:
Martin Atkins 2018-04-06 18:45:16 -07:00
parent dd62cd97c9
commit fca07d1a61
1 changed files with 32 additions and 0 deletions

View File

@ -1,5 +1,9 @@
package addrs
import (
"fmt"
)
// ProviderConfig is the address of a provider configuration.
type ProviderConfig struct {
Type string
@ -8,3 +12,31 @@ type ProviderConfig struct {
// 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())
}