mirror of
https://github.com/netbirdio/netbird.git
synced 2025-08-21 03:40:01 +02:00
Moved the following directories: ``` - management/client → shared/management/client - management/domain → shared/management/domain - management/proto → shared/management/proto - signal/client → shared/signal/client - signal/proto → shared/signal/proto - relay/client → shared/relay/client - relay/auth → shared/relay/auth ``` and adjusted import paths
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package rest
|
|
|
|
import "net/http"
|
|
|
|
// option modifier for creation of Client
|
|
type option func(*Client)
|
|
|
|
// HTTPClient interface for HTTP client
|
|
type HttpClient interface {
|
|
Do(req *http.Request) (*http.Response, error)
|
|
}
|
|
|
|
// WithHTTPClient overrides HTTPClient used
|
|
func WithHttpClient(client HttpClient) option {
|
|
return func(c *Client) {
|
|
c.httpClient = client
|
|
}
|
|
}
|
|
|
|
// WithBearerToken uses provided bearer token acquired from SSO for authentication
|
|
func WithBearerToken(token string) option {
|
|
return WithAuthHeader("Bearer " + token)
|
|
}
|
|
|
|
// WithPAT uses provided Personal Access Token
|
|
// (created from NetBird Management Dashboard) for authentication
|
|
func WithPAT(token string) option {
|
|
return WithAuthHeader("Token " + token)
|
|
}
|
|
|
|
// WithManagementURL overrides target NetBird Management server
|
|
func WithManagementURL(url string) option {
|
|
return func(c *Client) {
|
|
c.managementURL = url
|
|
}
|
|
}
|
|
|
|
// WithAuthHeader overrides auth header completely, this should generally not be used
|
|
// and WithBearerToken or WithPAT should be used instead
|
|
func WithAuthHeader(value string) option {
|
|
return func(c *Client) {
|
|
c.authHeader = value
|
|
}
|
|
}
|