Documentation
¶
Overview ¶
Package tailscale provides a minimal control plane API client for internal use. A full client for 3rd party use is available at tailscale.com/client/tailscale/v2. The internal client is provided to avoid having to import that whole package.
Index ¶
- func HandleErrorResponse(b []byte, resp *http.Response) error
- func SendRequest(c *Client, req *http.Request) ([]byte, *http.Response, error)
- type AuthMethod
- type Client
- type Device
- type DeviceFieldsOpts
- type ErrResponse
- type Key
- type KeyCapabilities
- type KeyDeviceCapabilities
- type KeyDeviceCreateCapabilities
- type VIPService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandleErrorResponse ¶
HandleErrorResponse is an alias to tailscale.com/client/tailscale.
Types ¶
type AuthMethod ¶
type AuthMethod = tsclient.AuthMethod
AuthMethod is an alias to tailscale.com/client/tailscale.
type Client ¶
Client is a wrapper of tailscale.com/client/tailscale.
func NewClient ¶
func NewClient(tailnet string, auth AuthMethod) *Client
NewClient is an alias to tailscale.com/client/tailscale.
func (*Client) CreateOrUpdateVIPService ¶
func (client *Client) CreateOrUpdateVIPService(ctx context.Context, svc *VIPService) error
CreateOrUpdateVIPService creates or updates a VIPService by its name. Caller must ensure that, if the VIPService already exists, the VIPService is fetched first to ensure that any auto-allocated IP addresses are not lost during the update. If the VIPService was created without any IP addresses explicitly set (so that they were auto-allocated by Tailscale) any subsequent request to this function that does not set any IP addresses will error.
func (*Client) DeleteVIPService ¶
DeleteVIPService deletes a VIPService by its name. It returns an error if the VIPService does not exist or if the deletion fails.
func (*Client) GetVIPService ¶
func (client *Client) GetVIPService(ctx context.Context, name tailcfg.ServiceName) (*VIPService, error)
GetVIPService retrieves a VIPService by its name. It returns 404 if the VIPService is not found.
type DeviceFieldsOpts ¶
type DeviceFieldsOpts = tsclient.DeviceFieldsOpts
DeviceFieldsOpts is an alias to tailscale.com/client/tailscale.
type ErrResponse ¶
type ErrResponse = tsclient.ErrResponse
ErrResponse is an alias to tailscale.com/client/tailscale.
type KeyCapabilities ¶
type KeyCapabilities = tsclient.KeyCapabilities
KeyCapabilities is an alias to tailscale.com/client/tailscale.
type KeyDeviceCapabilities ¶
type KeyDeviceCapabilities = tsclient.KeyDeviceCapabilities
KeyDeviceCapabilities is an alias to tailscale.com/client/tailscale.
type KeyDeviceCreateCapabilities ¶
type KeyDeviceCreateCapabilities = tsclient.KeyDeviceCreateCapabilities
KeyDeviceCreateCapabilities is an alias to tailscale.com/client/tailscale.
type VIPService ¶
type VIPService struct {
// Name is a VIPService name in form svc:<leftmost-label-of-service-DNS-name>.
Name tailcfg.ServiceName `json:"name,omitempty"`
// Addrs are the IP addresses of the VIP Service. There are two addresses:
// the first is IPv4 and the second is IPv6.
// When creating a new VIP Service, the IP addresses are optional: if no
// addresses are specified then they will be selected. If an IPv4 address is
// specified at index 0, then that address will attempt to be used. An IPv6
// address can not be specified upon creation.
Addrs []string `json:"addrs,omitempty"`
// Comment is an optional text string for display in the admin panel.
Comment string `json:"comment,omitempty"`
// Annotations are optional key-value pairs that can be used to store arbitrary metadata.
Annotations map[string]string `json:"annotations,omitempty"`
// Ports are the ports of a VIPService that will be configured via Tailscale serve config.
// If set, any node wishing to advertise this VIPService must have this port configured via Tailscale serve.
Ports []string `json:"ports,omitempty"`
// Tags are optional ACL tags that will be applied to the VIPService.
Tags []string `json:"tags,omitempty"`
}
VIPService is a Tailscale VIPService with Tailscale API JSON representation.