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
|
||
|
}
|