controlclient

package
v0.1.0-rc.35 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package controlclient calls the tnl control API.

Responses cannot exceed 64 KiB. A successful response other than HTTP 204 must contain one non-null JSON value that matches the generated schema. Most requests time out after 20 seconds; certificate requests time out after 150 seconds. Requests do not follow redirects. Network and read failures wrap ErrUnavailable, but caller cancellation, invalid responses, and oversized responses do not. Known server problem codes take precedence over status.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnauthenticated   = errors.New("controlclient: unauthenticated")
	ErrNotFound          = errors.New("controlclient: not found")
	ErrNameUnavailable   = errors.New("controlclient: public URL hostname unavailable")
	ErrStatusConflict    = errors.New("controlclient: status conflict")
	ErrCertificateStatus = errors.New("controlclient: certificate status conflict")
	ErrDNSProofPending   = errors.New("controlclient: DNS setup pending")
	ErrRateLimited       = errors.New("controlclient: rate limited")
	ErrUnavailable       = errors.New("controlclient: temporarily unavailable")
	ErrUnsupported       = errors.New("controlclient: unsupported")
)

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func New

func New(server string, httpClient *http.Client, access credentials.AccessToken) (*Client, error)

func NewExternallyAuthenticated

func NewExternallyAuthenticated(server string, httpClient *http.Client) (*Client, error)

NewExternallyAuthenticated creates a client whose HTTP transport adds authorization.

func (*Client) AdminDrainRelay

func (c *Client) AdminDrainRelay(ctx context.Context, relayID string, body controlv1.AdminDrainRelayRequest) (controlv1.AdminRelayLease, error)

func (*Client) AdminListMaintenanceControls

func (c *Client) AdminListMaintenanceControls(ctx context.Context) ([]controlv1.MaintenanceControl, error)

func (*Client) AdminListRelays

func (c *Client) AdminListRelays(ctx context.Context) (controlv1.AdminRelayPage, error)

func (*Client) AdminServerStatus

func (c *Client) AdminServerStatus(ctx context.Context) (controlv1.AdminServerStatus, error)

func (*Client) AdminSetMaintenanceControl

func (c *Client) AdminSetMaintenanceControl(ctx context.Context, name controlv1.MaintenanceControlName, allowed bool) (controlv1.MaintenanceControl, error)

func (*Client) ClientIP

func (c *Client) ClientIP(ctx context.Context) (controlv1.ClientIPResponse, error)

func (*Client) ClosePublishRun

func (c *Client) ClosePublishRun(ctx context.Context, publishRunID string, token credentials.PublishRunToken) error

func (*Client) CreateCertificateIssuance

func (c *Client) CreateCertificateIssuance(ctx context.Context, publishRunID string, publishRunNumber uint64, token credentials.PublishRunToken, csrDER []byte, idempotencyKey string) (controlv1.CertificateIssuance, error)

func (*Client) CreatePublicURL

func (c *Client) CreatePublicURL(ctx context.Context, body controlv1.CreatePublicURLRequest, idempotencyKey string) (controlv1.PublicURL, error)

func (*Client) CreatePublishRun

func (c *Client) CreatePublishRun(ctx context.Context, publicURLID, idempotencyKey string) (controlv1.PublishRunSetup, error)

func (*Client) DeletePublicURL

func (c *Client) DeletePublicURL(ctx context.Context, publicURLID string) error

func (*Client) Discovery

func (c *Client) Discovery(ctx context.Context) (controlv1.ControlDiscovery, error)

func (*Client) GetCertificateIssuance

func (c *Client) GetCertificateIssuance(ctx context.Context, issuanceID string, token credentials.PublishRunToken) (controlv1.CertificateIssuance, error)

func (*Client) GetPublicURL

func (c *Client) GetPublicURL(ctx context.Context, publicURLID string) (controlv1.PublicURL, error)

func (*Client) GetPublicURLByHostname

func (c *Client) GetPublicURLByHostname(ctx context.Context, teamID, hostname string) (controlv1.PublicURL, error)

GetPublicURLByHostname uses one filtered request instead of paging through a team's routes. Reject unfiltered responses from servers ignoring the filter.

func (*Client) HeartbeatPublishRun

func (c *Client) HeartbeatPublishRun(ctx context.Context, publishRunID string, publishRunNumber uint64, token credentials.PublishRunToken) (controlv1.PublishRunHeartbeat, error)

func (*Client) ListPublicURLs

func (c *Client) ListPublicURLs(ctx context.Context, teamID string) ([]controlv1.PublicURL, error)

func (*Client) MarkCertificateChallengeReady

func (c *Client) MarkCertificateChallengeReady(ctx context.Context, issuanceID string, token credentials.PublishRunToken) (controlv1.CertificateIssuance, error)

func (*Client) MarkCertificateChallengeRemoved

func (c *Client) MarkCertificateChallengeRemoved(ctx context.Context, issuanceID string, token credentials.PublishRunToken) error

func (*Client) MarkPublishRunCertificateInstalled

func (c *Client) MarkPublishRunCertificateInstalled(ctx context.Context, publishRunID string, publishRunNumber uint64, issuanceID string, notAfter time.Time, token credentials.PublishRunToken) error

func (*Client) MarkPublishRunReady

func (c *Client) MarkPublishRunReady(ctx context.Context, publishRunID string, publishRunNumber uint64, token credentials.PublishRunToken) error

func (*Client) UpdatePublicURL

func (c *Client) UpdatePublicURL(ctx context.Context, publicURLID string, body controlv1.UpdatePublicURLRequest) (controlv1.PublicURL, error)

type ProblemError

type ProblemError struct {
	Status  int
	Problem controlv1.Problem
}

func (*ProblemError) Error

func (e *ProblemError) Error() string

type RateLimitError

type RateLimitError struct{ RetryAfter time.Duration }

func (*RateLimitError) Error

func (e *RateLimitError) Error() string

func (*RateLimitError) Unwrap

func (e *RateLimitError) Unwrap() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL