package config

import "time"

type IntegrationsConfig struct {
	Kubernetes KubernetesConfig `yaml:"kubernetes"`
}

func NewDefaultIntegrationsConfig() IntegrationsConfig {
	return IntegrationsConfig{
		Kubernetes: KubernetesConfig{
			Enabled:                    false,
			WriterTokenSecret:          "",
			WriterTokenSecretNamespace: "",
			ReaderTokenSecretNamespace: "",
			PrivateKeySecret:           "",
			PrivateKeySecretNamespace:  "",
			ReaderTokenSecret:          "",
			LockTimeout:                *NewInterpolatedDuration(30 * time.Second),
		},
	}
}

type KubernetesConfig struct {
	Enabled                    InterpolatedBool     `yaml:"enabled"`
	WriterTokenSecret          InterpolatedString   `yaml:"writerTokenSecret"`
	WriterTokenSecretNamespace InterpolatedString   `yaml:"writerTokenSecretNamespace"`
	ReaderTokenSecret          InterpolatedString   `yaml:"readerTokenSecret"`
	ReaderTokenSecretNamespace InterpolatedString   `yaml:"readerTokenSecretNamespace"`
	PrivateKeySecret           InterpolatedString   `yaml:"privateKeySecret"`
	PrivateKeySecretNamespace  InterpolatedString   `yaml:"privateKeySecretNamespace"`
	LockTimeout                InterpolatedDuration `yaml:"lockTimeout"`
}