Files
rainyun-cli/internal/provider/rainyun/rainyun.go
T

46 lines
1.2 KiB
Go

package rainyun
import (
"context"
"git.yoresee.cc/nightstar/ry/internal/provider"
)
func init() {
provider.Register("rainyun", New)
}
// Rainyun provider — 雨云 cloud platform.
type Rainyun struct {
client *client
server *ServerService
}
// New creates a Rainyun provider from config.
func New(cfg provider.ProviderConfig) (provider.Provider, error) {
c := newClient(cfg.Endpoint, cfg.APIKey)
r := &Rainyun{client: c}
r.server = &ServerService{client: c}
return r, nil
}
func (r *Rainyun) Name() string { return "rainyun" }
func (r *Rainyun) DisplayName() string { return "雨云" }
// ValidateAuth checks the API key by hitting the user info endpoint.
func (r *Rainyun) ValidateAuth(ctx context.Context) error {
var data any
return r.client.get(ctx, "/user/", &data)
}
func (r *Rainyun) Server() provider.ServerService {
if r.server == nil {
r.server = &ServerService{client: r.client}
}
return r.server
}
func (r *Rainyun) Domain() provider.DomainService { return nil }
func (r *Rainyun) Storage() provider.StorageService { return nil }
func (r *Rainyun) CDN() provider.CDNService { return nil }
func (r *Rainyun) Billing() provider.BillingService { return nil }