This is useful if you, for instance, want Terraform to be 100% responsible for creation of resources (outside of the static ones that cannot be removed or modified, like u_anon). This will mean using the recovery mechanism for initial setup, but that isn't an issue once TF supports that :-)
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package base
|
|
|
|
// getOpts - iterate the inbound Options and return a struct.
|
|
func getOpts(opt ...Option) Options {
|
|
opts := getDefaultOptions()
|
|
for _, o := range opt {
|
|
o(&opts)
|
|
}
|
|
return opts
|
|
}
|
|
|
|
// Option - how Options are passed as arguments.
|
|
type Option func(*Options)
|
|
|
|
// Options - how Options are represented.
|
|
type Options struct {
|
|
withNoTokenScope bool
|
|
withNoTokenValue bool
|
|
withSkipAuthMethodCreation bool
|
|
}
|
|
|
|
func getDefaultOptions() Options {
|
|
return Options{}
|
|
}
|
|
|
|
// WithNoTokenScope tells the client not to set a scope for the client from a
|
|
// saved token's scope, as this can cause confusing behavior at authentication
|
|
// time.
|
|
func WithNoTokenScope() Option {
|
|
return func(o *Options) {
|
|
o.withNoTokenScope = true
|
|
}
|
|
}
|
|
|
|
// WithNoTokenValue tells the client not to set a token for the client from a
|
|
// saved token's value, as this can cause confusing behavior at authentication
|
|
// time.
|
|
func WithNoTokenValue() Option {
|
|
return func(o *Options) {
|
|
o.withNoTokenValue = true
|
|
}
|
|
}
|
|
|
|
// WithSkipAuthMethodCreation tells the command not to instantiate an auth
|
|
// method on first run.
|
|
func WithSkipAuthMethodCreation() Option {
|
|
return func(o *Options) {
|
|
o.withSkipAuthMethodCreation = true
|
|
}
|
|
}
|