mirror of
https://github.com/netbirdio/netbird.git
synced 2025-08-07 22:39:14 +02:00
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
|
|
}
|
|
}
|