package vuln

type Config struct {
	Cron                    string   `yaml:"cron" env:"VULN_CRON" flag:"cron"`
	Sources                 []string `yaml:"sources" env:"VULN_SOURCES" flag:"sources"`
	Targets                 []string `yaml:"targets" env:"VULN_TARGETS" flag:"targets"`
	GrypeConfigFile         string   `yaml:"grypeConfigFile" env:"VULN_GRYPE_CONFIG_FILE" flag:"grype-config-file"`
	FilterConfigFile        string   `yaml:"filterConfigFile" env:"VULN_FILTER_CONFIG_FILE" flag:"filter-config-file"`
	OnlyFixed               bool     `yaml:"onlyFixes" env:"VULN_ONLY_FIXED" flag:"only-fixed"`
	MinSeverity             string   `yaml:"minSeverity" env:"VULN_MIN_SEVERITY" flag:"min-severity"`
	GitWorkingTree          string   `yaml:"gitWorkingTree" env:"VULN_GIT_WORKINGTREE" flag:"git-workingtree"`
	GitRepository           string   `yaml:"gitRepository" env:"VULN_GIT_REPOSITORY" flag:"git-repository"`
	GitBranch               string   `yaml:"gitBranch" env:"VULN_GIT_BRANCH" flag:"git-branch"`
	GitPath                 string   `yaml:"gitPath" env:"VULN_GIT_PATH" flag:"git-path"`
	GitAccessToken          string   `yaml:"gitAccessToken" env:"VULN_GIT_ACCESS_TOKEN" flag:"git-access-token"`
	GitUserName             string   `yaml:"gitUserName" env:"VULN_GIT_USERNAME" flag:"git-username"`
	GitPassword             string   `yaml:"gitPassword" env:"VULN_GIT_PASSWORD" flag:"git-password"`
	GitHubAppId             string   `yaml:"githubAppId" env:"VULN_GITHUB_APP_ID" flag:"github-app-id"`
	GitHubAppInstallationId string   `yaml:"githubAppInstallationId" env:"VULN_GITHUB_APP_INSTALLATION_ID" flag:"github-app-installation-id"`
	GitHubPrivateKey        string   `yaml:"githubAppPrivateKey" env:"VULN_GITHUB_APP_PRIVATE_KEY"`
	ReportsDir              string   `yaml:"reportsDir" env:"VULN_REPORTS_DIR" flag:"reports-dir"`
	PodLabelSelector        string   `yaml:"podLabelSelector" env:"VULN_POD_LABEL_SELECTOR" flag:"pod-label-selector"`
	NamespaceLabelSelector  string   `yaml:"namespaceLabelSelector" env:"VULN_NAMESPACE_LABEL_SELECTOR" flag:"namespace-label-selector"`
	Verbosity               string   `env:"VULN_VERBOSITY" flag:"verbosity"`
}

var (
	ConfigKeyCron                    = "cron"
	ConfigKeySources                 = "sources"
	ConfigKeyTargets                 = "targets"
	ConfigKeyGrypeConfigFile         = "grype-config-file"
	ConfigKeyFilterConfigFile        = "filter-config-file"
	ConfigKeyOnlyFixed               = "only-fixed"
	ConfigKeyMinSeverity             = "min-severity"
	ConfigKeyGitWorkingTree          = "git-workingtree"
	ConfigKeyGitRepository           = "git-repository"
	ConfigKeyGitBranch               = "git-branch"
	ConfigKeyGitPath                 = "git-path"
	ConfigKeyGitAccessToken          = "git-access-token"
	ConfigKeyGitUserName             = "git-username"
	ConfigKeyGitPassword             = "git-password"
	ConfigKeyGitHubAppId             = "github-app-id"
	ConfigKeyGitHubAppInstallationId = "github-app-installation-id"
	ConfigKeyReportsDir              = "reports-dir"
	ConfigKeyPodLabelSelector        = "pod-label-selector"
	ConfigKeyNamespaceLabelSelector  = "namespace-label-selector"

	OperatorConfig *Config
)
