Files
elmprodvpn/selective-vpn-api/app/apiroutes/register.go

199 lines
8.5 KiB
Go

package apiroutes
import "net/http"
type Handlers struct {
Healthz http.HandlerFunc
EventsStream http.HandlerFunc
GetStatus http.HandlerFunc
VPNLoginState http.HandlerFunc
SystemdState http.HandlerFunc
RoutesServiceStart http.HandlerFunc
RoutesServiceStop http.HandlerFunc
RoutesServiceRestart http.HandlerFunc
RoutesService http.HandlerFunc
RoutesUpdate http.HandlerFunc
RoutesTimer http.HandlerFunc
RoutesTimerToggle http.HandlerFunc
RoutesRollback http.HandlerFunc
RoutesClear http.HandlerFunc
RoutesCacheRestore http.HandlerFunc
RoutesPrecheckDebug http.HandlerFunc
RoutesFixPolicyRoute http.HandlerFunc
RoutesFixPolicyAlias http.HandlerFunc
TrafficMode http.HandlerFunc
TrafficModeTest http.HandlerFunc
TrafficAdvancedReset http.HandlerFunc
TrafficInterfaces http.HandlerFunc
TrafficCandidates http.HandlerFunc
TrafficAppMarks http.HandlerFunc
TrafficAppMarksItems http.HandlerFunc
TrafficAppProfiles http.HandlerFunc
TrafficAudit http.HandlerFunc
TransportClients http.HandlerFunc
TransportClientByID http.HandlerFunc
TransportInterfaces http.HandlerFunc
TransportRuntimeObservability http.HandlerFunc
TransportPolicies http.HandlerFunc
TransportPoliciesValidate http.HandlerFunc
TransportPoliciesApply http.HandlerFunc
TransportPoliciesRollback http.HandlerFunc
TransportConflicts http.HandlerFunc
TransportOwnership http.HandlerFunc
TransportOwnerLocks http.HandlerFunc
TransportOwnerLocksClear http.HandlerFunc
TransportCapabilities http.HandlerFunc
TransportHealthRefresh http.HandlerFunc
TransportNetnsToggle http.HandlerFunc
TransportSingBoxProfiles http.HandlerFunc
TransportSingBoxProfileByID http.HandlerFunc
TransportSingBoxFeatures http.HandlerFunc
EgressIdentityGet http.HandlerFunc
EgressIdentityRefresh http.HandlerFunc
TraceTailPlain http.HandlerFunc
TraceJSON http.HandlerFunc
TraceAppend http.HandlerFunc
DNSUpstreams http.HandlerFunc
DNSUpstreamPool http.HandlerFunc
DNSStatus http.HandlerFunc
DNSModeSet http.HandlerFunc
DNSBenchmark http.HandlerFunc
DNSSmartdnsService http.HandlerFunc
SmartdnsService http.HandlerFunc
SmartdnsRuntime http.HandlerFunc
SmartdnsPrewarm http.HandlerFunc
SmartdnsWildcards http.HandlerFunc
DomainsTable http.HandlerFunc
DomainsFile http.HandlerFunc
VPNAutoloopStatus http.HandlerFunc
VPNStatus http.HandlerFunc
VPNAutoconnect http.HandlerFunc
VPNListLocations http.HandlerFunc
VPNSetLocation http.HandlerFunc
VPNLoginSessionStart http.HandlerFunc
VPNLoginSessionState http.HandlerFunc
VPNLoginSessionAction http.HandlerFunc
VPNLoginSessionStop http.HandlerFunc
VPNLogout http.HandlerFunc
}
func Register(mux *http.ServeMux, h Handlers) {
registerCoreRoutes(mux, h)
registerRoutesControlRoutes(mux, h)
registerTrafficRoutes(mux, h)
registerTransportRoutes(mux, h)
registerTraceRoutes(mux, h)
registerDNSRoutes(mux, h)
registerSmartDNSRoutes(mux, h)
registerDomainsRoutes(mux, h)
registerVPNRoutes(mux, h)
}
func registerCoreRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/healthz", h.Healthz)
mux.HandleFunc("/api/v1/events/stream", h.EventsStream)
mux.HandleFunc("/api/v1/status", h.GetStatus)
mux.HandleFunc("/api/v1/routes/status", h.GetStatus)
mux.HandleFunc("/api/v1/vpn/login-state", h.VPNLoginState)
mux.HandleFunc("/api/v1/systemd/state", h.SystemdState)
}
func registerRoutesControlRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/api/v1/routes/service/start", h.RoutesServiceStart)
mux.HandleFunc("/api/v1/routes/service/stop", h.RoutesServiceStop)
mux.HandleFunc("/api/v1/routes/service/restart", h.RoutesServiceRestart)
mux.HandleFunc("/api/v1/routes/service", h.RoutesService)
mux.HandleFunc("/api/v1/routes/update", h.RoutesUpdate)
mux.HandleFunc("/api/v1/routes/timer", h.RoutesTimer)
mux.HandleFunc("/api/v1/routes/timer/toggle", h.RoutesTimerToggle)
mux.HandleFunc("/api/v1/routes/rollback", h.RoutesRollback)
mux.HandleFunc("/api/v1/routes/clear", h.RoutesClear)
mux.HandleFunc("/api/v1/routes/cache/restore", h.RoutesCacheRestore)
mux.HandleFunc("/api/v1/routes/precheck/debug", h.RoutesPrecheckDebug)
mux.HandleFunc("/api/v1/routes/fix-policy-route", h.RoutesFixPolicyRoute)
mux.HandleFunc("/api/v1/routes/fix-policy", h.RoutesFixPolicyAlias)
}
func registerTrafficRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/api/v1/traffic/mode", h.TrafficMode)
mux.HandleFunc("/api/v1/traffic/mode/test", h.TrafficModeTest)
mux.HandleFunc("/api/v1/traffic/advanced/reset", h.TrafficAdvancedReset)
mux.HandleFunc("/api/v1/traffic/interfaces", h.TrafficInterfaces)
mux.HandleFunc("/api/v1/traffic/candidates", h.TrafficCandidates)
mux.HandleFunc("/api/v1/traffic/appmarks", h.TrafficAppMarks)
mux.HandleFunc("/api/v1/traffic/appmarks/items", h.TrafficAppMarksItems)
mux.HandleFunc("/api/v1/traffic/app-profiles", h.TrafficAppProfiles)
mux.HandleFunc("/api/v1/traffic/audit", h.TrafficAudit)
}
func registerTransportRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/api/v1/transport/clients", h.TransportClients)
mux.HandleFunc("/api/v1/transport/clients/", h.TransportClientByID)
mux.HandleFunc("/api/v1/transport/interfaces", h.TransportInterfaces)
mux.HandleFunc("/api/v1/transport/runtime/observability", h.TransportRuntimeObservability)
mux.HandleFunc("/api/v1/transport/policies", h.TransportPolicies)
mux.HandleFunc("/api/v1/transport/policies/validate", h.TransportPoliciesValidate)
mux.HandleFunc("/api/v1/transport/policies/apply", h.TransportPoliciesApply)
mux.HandleFunc("/api/v1/transport/policies/rollback", h.TransportPoliciesRollback)
mux.HandleFunc("/api/v1/transport/conflicts", h.TransportConflicts)
mux.HandleFunc("/api/v1/transport/owners", h.TransportOwnership)
mux.HandleFunc("/api/v1/transport/owner-locks", h.TransportOwnerLocks)
mux.HandleFunc("/api/v1/transport/owner-locks/clear", h.TransportOwnerLocksClear)
mux.HandleFunc("/api/v1/transport/capabilities", h.TransportCapabilities)
mux.HandleFunc("/api/v1/transport/health/refresh", h.TransportHealthRefresh)
mux.HandleFunc("/api/v1/transport/netns/toggle", h.TransportNetnsToggle)
mux.HandleFunc("/api/v1/transport/singbox/profiles", h.TransportSingBoxProfiles)
mux.HandleFunc("/api/v1/transport/singbox/profiles/", h.TransportSingBoxProfileByID)
mux.HandleFunc("/api/v1/transport/singbox/features", h.TransportSingBoxFeatures)
mux.HandleFunc("/api/v1/egress/identity", h.EgressIdentityGet)
mux.HandleFunc("/api/v1/egress/identity/refresh", h.EgressIdentityRefresh)
}
func registerTraceRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/api/v1/trace", h.TraceTailPlain)
mux.HandleFunc("/api/v1/trace-json", h.TraceJSON)
mux.HandleFunc("/api/v1/trace/append", h.TraceAppend)
}
func registerDNSRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/api/v1/dns-upstreams", h.DNSUpstreams)
mux.HandleFunc("/api/v1/dns/upstream-pool", h.DNSUpstreamPool)
mux.HandleFunc("/api/v1/dns/status", h.DNSStatus)
mux.HandleFunc("/api/v1/dns/mode", h.DNSModeSet)
mux.HandleFunc("/api/v1/dns/benchmark", h.DNSBenchmark)
mux.HandleFunc("/api/v1/dns/smartdns-service", h.DNSSmartdnsService)
}
func registerSmartDNSRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/api/v1/smartdns/service", h.SmartdnsService)
mux.HandleFunc("/api/v1/smartdns/runtime", h.SmartdnsRuntime)
mux.HandleFunc("/api/v1/smartdns/prewarm", h.SmartdnsPrewarm)
mux.HandleFunc("/api/v1/smartdns/wildcards", h.SmartdnsWildcards)
}
func registerDomainsRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/api/v1/domains/table", h.DomainsTable)
mux.HandleFunc("/api/v1/domains/file", h.DomainsFile)
}
func registerVPNRoutes(mux *http.ServeMux, h Handlers) {
mux.HandleFunc("/api/v1/vpn/autoloop-status", h.VPNAutoloopStatus)
mux.HandleFunc("/api/v1/vpn/status", h.VPNStatus)
mux.HandleFunc("/api/v1/vpn/autoconnect", h.VPNAutoconnect)
mux.HandleFunc("/api/v1/vpn/locations", h.VPNListLocations)
mux.HandleFunc("/api/v1/vpn/location", h.VPNSetLocation)
mux.HandleFunc("/api/v1/vpn/login/session/start", h.VPNLoginSessionStart)
mux.HandleFunc("/api/v1/vpn/login/session/state", h.VPNLoginSessionState)
mux.HandleFunc("/api/v1/vpn/login/session/action", h.VPNLoginSessionAction)
mux.HandleFunc("/api/v1/vpn/login/session/stop", h.VPNLoginSessionStop)
mux.HandleFunc("/api/v1/vpn/logout", h.VPNLogout)
}