40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package cfapi
|
|
|
|
import (
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type TunnelClient interface {
|
|
CreateTunnel(name string, tunnelSecret []byte) (*Tunnel, error)
|
|
GetTunnel(tunnelID uuid.UUID) (*Tunnel, error)
|
|
DeleteTunnel(tunnelID uuid.UUID) error
|
|
ListTunnels(filter *TunnelFilter) ([]*Tunnel, error)
|
|
ListActiveClients(tunnelID uuid.UUID) ([]*ActiveClient, error)
|
|
CleanupConnections(tunnelID uuid.UUID, params *CleanupParams) error
|
|
}
|
|
|
|
type HostnameClient interface {
|
|
RouteTunnel(tunnelID uuid.UUID, route HostnameRoute) (HostnameRouteResult, error)
|
|
}
|
|
|
|
type IPRouteClient interface {
|
|
ListRoutes(filter *IpRouteFilter) ([]*DetailedRoute, error)
|
|
AddRoute(newRoute NewRoute) (Route, error)
|
|
DeleteRoute(params DeleteRouteParams) error
|
|
GetByIP(params GetRouteByIpParams) (DetailedRoute, error)
|
|
}
|
|
|
|
type VnetClient interface {
|
|
CreateVirtualNetwork(newVnet NewVirtualNetwork) (VirtualNetwork, error)
|
|
ListVirtualNetworks(filter *VnetFilter) ([]*VirtualNetwork, error)
|
|
DeleteVirtualNetwork(id uuid.UUID) error
|
|
UpdateVirtualNetwork(id uuid.UUID, updates UpdateVirtualNetwork) error
|
|
}
|
|
|
|
type Client interface {
|
|
TunnelClient
|
|
HostnameClient
|
|
IPRouteClient
|
|
VnetClient
|
|
}
|