package config

import (
	"time"

	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/client-go/rest"
)

// Config is manager config.
type Config struct {
	Kubeconfig      *rest.Config
	InfraKubeconfig *rest.Config

	MetricsBindAddress     string
	WebhookPort            int
	HealthProbeBindAddress string
	EnableLeaderElection   bool

	OIDCProviderARN        string
	ConfigServiceUrl       string
	BaseProxy              string
	PublicHostedZoneDomain string
	PublicHostedZoneId     string

	AddonConfigMapNamespace string
	AddonConfigMapName      string

	DNSPodSelector *metav1.LabelSelector
	DNSNamespace   string

	KubeClusterName  string
	RemoteWriteUrl   string
	EvictPodDuration time.Duration

	LoadBalancerClusterName string
	LoadBalancerCIDRs       []string

	// aws specified
	AWSAccountID  string
	ImportRoleARN string
	AWSRegion     string

	// gcp specified
	GCPProjectID string
}
