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