package providers import ( "fmt" "strings" ) // HetznerProvider ist der Provider für Hetzner type HetznerProvider struct{} func NewHetznerProvider() *HetznerProvider { return &HetznerProvider{} } func (p *HetznerProvider) GetName() string { return "hetzner" } func (p *HetznerProvider) GetDisplayName() string { return "Hetzner" } func (p *HetznerProvider) GetDescription() string { return "Hetzner SSL Certificate Provider" } func (p *HetznerProvider) ValidateConfig(settings map[string]interface{}) error { apiKey, ok := settings["apiKey"].(string) if !ok || strings.TrimSpace(apiKey) == "" { return fmt.Errorf("apiKey ist erforderlich") } return nil } func (p *HetznerProvider) TestConnection(settings map[string]interface{}) error { // Hier würde die tatsächliche Verbindung zu Hetzner getestet werden // Für jetzt nur Validierung return p.ValidateConfig(settings) } // GetRequiredSettings gibt die erforderlichen Einstellungen zurück func (p *HetznerProvider) GetRequiredSettings() []SettingField { return []SettingField{ { Name: "apiKey", Label: "API Key", Type: "password", Required: true, Description: "Hetzner API Key", }, } } // SignCSR signiert einen CSR (noch nicht implementiert) func (p *HetznerProvider) SignCSR(csrPEM string, settings map[string]interface{}) (*SignCSRResult, error) { return nil, fmt.Errorf("Hetzner CSR-Signierung noch nicht implementiert") } // GetCertificate ruft ein Zertifikat ab (noch nicht implementiert) func (p *HetznerProvider) GetCertificate(certificateID string, settings map[string]interface{}) (string, error) { return "", fmt.Errorf("Hetzner Zertifikat-Abruf noch nicht implementiert") }