26 lines
673 B
Go
26 lines
673 B
Go
package access
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
func Validate(req ClosureRequest) error {
|
|
switch strings.TrimSpace(req.Mode) {
|
|
case ModeSubscription:
|
|
if len(req.Subscriptions) == 0 {
|
|
return fmt.Errorf("subscription access requires at least one subscription target")
|
|
}
|
|
case ModeSelfService:
|
|
if selfServiceProbeAPIKey(req) == "" {
|
|
return fmt.Errorf("self_service access requires probe api key")
|
|
}
|
|
default:
|
|
return fmt.Errorf("unsupported access mode %q", req.Mode)
|
|
}
|
|
if strings.TrimSpace(req.Mode) != ModeSubscription && selfServiceProbeAPIKey(req) == "" {
|
|
return fmt.Errorf("access probe api key is required to verify gateway closure")
|
|
}
|
|
return nil
|
|
}
|