terraform-provider-gitea/vendor/github.com/hashicorp/terraform-exec/tfexec/options.go
Malar Invention 00ebcd295e add vendor
2022-04-03 09:37:16 +05:30

412 lines
8.3 KiB
Go

package tfexec
import (
"encoding/json"
)
// AllowMissingConfigOption represents the -allow-missing-config flag.
type AllowMissingConfigOption struct {
allowMissingConfig bool
}
// AllowMissingConfig represents the -allow-missing-config flag.
func AllowMissingConfig(allowMissingConfig bool) *AllowMissingConfigOption {
return &AllowMissingConfigOption{allowMissingConfig}
}
// AllowMissingOption represents the -allow-missing flag.
type AllowMissingOption struct {
allowMissing bool
}
// AllowMissing represents the -allow-missing flag.
func AllowMissing(allowMissing bool) *AllowMissingOption {
return &AllowMissingOption{allowMissing}
}
// BackendOption represents the -backend flag.
type BackendOption struct {
backend bool
}
// Backend represents the -backend flag.
func Backend(backend bool) *BackendOption {
return &BackendOption{backend}
}
// BackendConfigOption represents the -backend-config flag.
type BackendConfigOption struct {
path string
}
// BackendConfig represents the -backend-config flag.
func BackendConfig(backendConfig string) *BackendConfigOption {
return &BackendConfigOption{backendConfig}
}
type BackupOutOption struct {
path string
}
// BackupOutOption represents the -backup-out flag.
func BackupOut(path string) *BackupOutOption {
return &BackupOutOption{path}
}
// BackupOption represents the -backup flag.
type BackupOption struct {
path string
}
// Backup represents the -backup flag.
func Backup(path string) *BackupOption {
return &BackupOption{path}
}
// DisableBackup is a convenience method for Backup("-"), indicating backup state should be disabled.
func DisableBackup() *BackupOption {
return &BackupOption{"-"}
}
// ConfigOption represents the -config flag.
type ConfigOption struct {
path string
}
// Config represents the -config flag.
func Config(path string) *ConfigOption {
return &ConfigOption{path}
}
// CopyStateOption represents the -state flag for terraform workspace new. This flag is used
// to copy an existing state file in to the new workspace.
type CopyStateOption struct {
path string
}
// CopyState represents the -state flag for terraform workspace new. This flag is used
// to copy an existing state file in to the new workspace.
func CopyState(path string) *CopyStateOption {
return &CopyStateOption{path}
}
type DirOption struct {
path string
}
func Dir(path string) *DirOption {
return &DirOption{path}
}
type DirOrPlanOption struct {
path string
}
func DirOrPlan(path string) *DirOrPlanOption {
return &DirOrPlanOption{path}
}
// DestroyFlagOption represents the -destroy flag.
type DestroyFlagOption struct {
// named to prevent conflict with DestroyOption interface
destroy bool
}
// Destroy represents the -destroy flag.
func Destroy(destroy bool) *DestroyFlagOption {
return &DestroyFlagOption{destroy}
}
type DrawCyclesOption struct {
drawCycles bool
}
// DrawCycles represents the -draw-cycles flag.
func DrawCycles(drawCycles bool) *DrawCyclesOption {
return &DrawCyclesOption{drawCycles}
}
type DryRunOption struct {
dryRun bool
}
// DryRun represents the -dry-run flag.
func DryRun(dryRun bool) *DryRunOption {
return &DryRunOption{dryRun}
}
type FSMirrorOption struct {
fsMirror string
}
// FSMirror represents the -fs-mirror option (path to filesystem mirror directory)
func FSMirror(fsMirror string) *FSMirrorOption {
return &FSMirrorOption{fsMirror}
}
type ForceOption struct {
force bool
}
func Force(force bool) *ForceOption {
return &ForceOption{force}
}
type ForceCopyOption struct {
forceCopy bool
}
func ForceCopy(forceCopy bool) *ForceCopyOption {
return &ForceCopyOption{forceCopy}
}
type FromModuleOption struct {
source string
}
func FromModule(source string) *FromModuleOption {
return &FromModuleOption{source}
}
type GetOption struct {
get bool
}
func Get(get bool) *GetOption {
return &GetOption{get}
}
type GetPluginsOption struct {
getPlugins bool
}
func GetPlugins(getPlugins bool) *GetPluginsOption {
return &GetPluginsOption{getPlugins}
}
// LockOption represents the -lock flag.
type LockOption struct {
lock bool
}
// Lock represents the -lock flag.
func Lock(lock bool) *LockOption {
return &LockOption{lock}
}
// LockTimeoutOption represents the -lock-timeout flag.
type LockTimeoutOption struct {
timeout string
}
// LockTimeout represents the -lock-timeout flag.
func LockTimeout(lockTimeout string) *LockTimeoutOption {
// TODO: should this just use a duration instead?
return &LockTimeoutOption{lockTimeout}
}
type NetMirrorOption struct {
netMirror string
}
// NetMirror represents the -net-mirror option (base URL of a network mirror)
func NetMirror(netMirror string) *NetMirrorOption {
return &NetMirrorOption{netMirror}
}
type OutOption struct {
path string
}
func Out(path string) *OutOption {
return &OutOption{path}
}
type ParallelismOption struct {
parallelism int
}
func Parallelism(n int) *ParallelismOption {
return &ParallelismOption{n}
}
type GraphPlanOption struct {
file string
}
// GraphPlan represents the -plan flag which is a specified plan file string
func GraphPlan(file string) *GraphPlanOption {
return &GraphPlanOption{file}
}
type PlatformOption struct {
platform string
}
// Platform represents the -platform flag which is an os_arch string
func Platform(platform string) *PlatformOption {
return &PlatformOption{platform}
}
type PluginDirOption struct {
pluginDir string
}
func PluginDir(pluginDir string) *PluginDirOption {
return &PluginDirOption{pluginDir}
}
type ProviderOption struct {
provider string
}
// Provider represents the positional argument (provider source address)
func Provider(providers string) *ProviderOption {
return &ProviderOption{providers}
}
type ReattachInfo map[string]ReattachConfig
// ReattachConfig holds the information Terraform needs to be able to attach
// itself to a provider process, so it can drive the process.
type ReattachConfig struct {
Protocol string
ProtocolVersion int
Pid int
Test bool
Addr ReattachConfigAddr
}
// ReattachConfigAddr is a JSON-encoding friendly version of net.Addr.
type ReattachConfigAddr struct {
Network string
String string
}
type ReattachOption struct {
info ReattachInfo
}
func (info ReattachInfo) marshalString() (string, error) {
reattachStr, err := json.Marshal(info)
if err != nil {
return "", err
}
return string(reattachStr), nil
}
func Reattach(info ReattachInfo) *ReattachOption {
return &ReattachOption{info}
}
type ReconfigureOption struct {
reconfigure bool
}
func Reconfigure(reconfigure bool) *ReconfigureOption {
return &ReconfigureOption{reconfigure}
}
type RecursiveOption struct {
recursive bool
}
func Recursive(r bool) *RecursiveOption {
return &RecursiveOption{r}
}
type RefreshOption struct {
refresh bool
}
func Refresh(refresh bool) *RefreshOption {
return &RefreshOption{refresh}
}
type ReplaceOption struct {
address string
}
func Replace(address string) *ReplaceOption {
return &ReplaceOption{address}
}
type StateOption struct {
path string
}
// State represents the -state flag.
//
// Deprecated: The -state CLI flag is a legacy flag and should not be used.
// If you need a different state file for every run, you can instead use the
// local backend.
// See https://github.com/hashicorp/terraform/issues/25920#issuecomment-676560799
func State(path string) *StateOption {
return &StateOption{path}
}
type StateOutOption struct {
path string
}
func StateOut(path string) *StateOutOption {
return &StateOutOption{path}
}
type TargetOption struct {
target string
}
func Target(resource string) *TargetOption {
return &TargetOption{resource}
}
type GraphTypeOption struct {
graphType string
}
func GraphType(graphType string) *GraphTypeOption {
return &GraphTypeOption{graphType}
}
type UpdateOption struct {
update bool
}
func Update(update bool) *UpdateOption {
return &UpdateOption{update}
}
type UpgradeOption struct {
upgrade bool
}
func Upgrade(upgrade bool) *UpgradeOption {
return &UpgradeOption{upgrade}
}
type VarOption struct {
assignment string
}
func Var(assignment string) *VarOption {
return &VarOption{assignment}
}
type VarFileOption struct {
path string
}
func VarFile(path string) *VarFileOption {
return &VarFileOption{path}
}
type VerifyPluginsOption struct {
verifyPlugins bool
}
func VerifyPlugins(verifyPlugins bool) *VerifyPluginsOption {
return &VerifyPluginsOption{verifyPlugins}
}