package schema

// Configuration object extracted from YAML configuration file.
type Configuration struct {
	Host                      string `yaml:"host"`
	Port                      int    `yaml:"port"`
	LogsLevel                 string `yaml:"logs_level"`
	JWTSecret                 string `yaml:"jwt_secret"`
	DefaultRedirectionURL     string `yaml:"default_redirection_url"`
	GoogleAnalyticsTrackingID string `yaml:"google_analytics"`

	AuthenticationBackend AuthenticationBackendConfiguration `yaml:"authentication_backend"`
	Session               SessionConfiguration               `yaml:"session"`

	TOTP          *TOTPConfiguration          `yaml:"totp"`
	DuoAPI        *DuoAPIConfiguration        `yaml:"duo_api"`
	AccessControl *AccessControlConfiguration `yaml:"access_control"`
	Regulation    *RegulationConfiguration    `yaml:"regulation"`
	Storage       *StorageConfiguration       `yaml:"storage"`
	Notifier      *NotifierConfiguration      `yaml:"notifier"`
}