Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CompareResult ¶
type CompareResult int
const ( CompareResultInvalid CompareResult = iota CompareResultNewer CompareResultNotEqual CompareResultEqual CompareResultStatusNotEqual )
type Gateway ¶
type Gateway interface {
ID() core.GatewayID
Meta() map[string]string
Compare(other Gateway) CompareResult
Listeners() []Listener
ShouldBind(route Route) bool
}
Gateway describes a gateway.
type Listener ¶
type Listener interface {
ID() string
CanBind(route Route) (bool, error)
Certificates() []string
Config() ListenerConfig
}
Listener describes the basic methods of a gateway listener.
type ListenerConfig ¶
ListenerConfig contains the common configuration options of a listener.
type Route ¶
type Route interface {
ID() string
Compare(other Route) CompareResult
Resolve(listener Listener) *core.ResolvedRoute
}
Route should be implemented by all route source integrations
type RouteTrackingListener ¶
type RouteTrackingListener interface {
Listener
OnRouteAdded(route Route)
OnRouteRemoved(id string)
}
RouteTrackingListener is an optional extension to Listener that tracks when routes have been bound to it.
type StatusTrackingGateway ¶
type StatusTrackingGateway interface {
Gateway
TrackSync(ctx context.Context, sync func() (bool, error)) error
}
StatusTrackingGateway is an optional extension of Gateway. If supported by a Store, when a Gateway is synced to an external location, its corresponding callbacks should be called.
type StatusTrackingRoute ¶
type StatusTrackingRoute interface {
Route
SyncStatus(ctx context.Context) error
OnBound(gateway Gateway)
OnBindFailed(err error, gateway Gateway)
OnGatewayRemoved(gateway Gateway)
}
StatusTrackingRoute is an optional extension of Route. If supported by a Store, when a Route is bound or fails to be bound to a gateway, its corresponding callbacks should be called. At the end of any methods affecting the route's binding, SyncStatus should be called.
type Store ¶
type Store interface {
GatewayExists(ctx context.Context, id core.GatewayID) (bool, error)
CanFetchSecrets(ctx context.Context, id core.GatewayID, secrets []string) (bool, error)
DeleteGateway(ctx context.Context, id core.GatewayID) error
UpsertGateway(ctx context.Context, gateway Gateway) error
DeleteRoute(ctx context.Context, id string) error
UpsertRoute(ctx context.Context, route Route) error
Sync(ctx context.Context) error
}
Store is used for persisting and querying gateways and routes