loadbalancer

package
v1.10.2 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2022 License: MIT Imports: 3 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

Functions

This section is empty.

Types

type ACL

type ACL struct {
	ID            int            `json:"id"`
	Name          string         `json:"name"`
	ListenerID    int            `json:"listener_id"`
	TargetGroupID int            `json:"target_group_id"`
	Conditions    []ACLCondition `json:"conditions"`
	Actions       []ACLAction    `json:"actions"`
}

ACL represents an ACL

type ACLAction

type ACLAction struct {
	Name      string                 `json:"name"`
	Arguments map[string]ACLArgument `json:"arguments"`
}

ACLAction represents an ACL action

type ACLArgument

type ACLArgument struct {
	Name  string      `json:"name"`
	Value interface{} `json:"value"`
}

ACLArgument represents an ACL condition/action argument

type ACLCondition

type ACLCondition struct {
	Name      string                 `json:"name"`
	Inverted  bool                   `json:"inverted"`
	Arguments map[string]ACLArgument `json:"arguments"`
}

ACLCondition represents an ACL condition

type ACLNotFoundError

type ACLNotFoundError struct {
	ID int
}

ACLNotFoundError indicates a certificate was not found

func (*ACLNotFoundError) Error

func (e *ACLNotFoundError) Error() string

type ACLTemplateAction

type ACLTemplateAction struct {
	Name         string                `json:"name"`
	FriendlyName string                `json:"friendly_name"`
	Description  string                `json:"description"`
	Arguments    []ACLTemplateArgument `json:"arguments"`
}

type ACLTemplateArgument added in v1.9.0

type ACLTemplateArgument struct {
	Name        string      `json:"name"`
	Description string      `json:"description"`
	Example     interface{} `json:"example"`
	Values      []string    `json:"values"`
}

type ACLTemplateCondition

type ACLTemplateCondition struct {
	Name         string                `json:"name"`
	FriendlyName string                `json:"friendly_name"`
	Description  string                `json:"description"`
	Arguments    []ACLTemplateArgument `json:"arguments"`
}

type ACLTemplates

type ACLTemplates struct {
	Conditions []ACLTemplateCondition `json:"conditions"`
	Actions    []ACLTemplateAction    `json:"actions"`
}

ACLTemplates represents a collection of ACL condition/action templates

type AccessIP

type AccessIP struct {
	ID        int                  `json:"id"`
	IP        connection.IPAddress `json:"ip"`
	CreatedAt connection.DateTime  `json:"created_at"`
	UpdatedAt connection.DateTime  `json:"updated_at"`
}

AccessIP represents an access IP

type AccessIPNotFoundError

type AccessIPNotFoundError struct {
	ID int
}

AccessIPNotFoundError indicates an access IP was not found

func (*AccessIPNotFoundError) Error

func (e *AccessIPNotFoundError) Error() string

type Bind

type Bind struct {
	ID         int                 `json:"id"`
	ListenerID int                 `json:"listener_id"`
	VIPID      int                 `json:"vip_id"`
	Port       int                 `json:"port"`
	CreatedAt  connection.DateTime `json:"created_at"`
	UpdatedAt  connection.DateTime `json:"updated_at"`
}

Bind represents a bind

type BindNotFoundError

type BindNotFoundError struct {
	ID int
}

BindNotFoundError indicates a bind was not found

func (*BindNotFoundError) Error

func (e *BindNotFoundError) Error() string

type Certificate

type Certificate struct {
	ID         int                 `json:"id"`
	ListenerID int                 `json:"listener_id"`
	Name       string              `json:"name"`
	CreatedAt  connection.DateTime `json:"created_at"`
	UpdatedAt  connection.DateTime `json:"updated_at"`
}

Certificate represents a certificate

type CertificateNotFoundError

type CertificateNotFoundError struct {
	ID int
}

CertificateNotFoundError indicates a certificate was not found

func (*CertificateNotFoundError) Error

func (e *CertificateNotFoundError) Error() string

type Cluster

type Cluster struct {
	ID         int                 `json:"id"`
	Name       string              `json:"name"`
	Deployed   bool                `json:"deployed"`
	DeployedAt connection.DateTime `json:"deployed_at"`
	CreatedAt  connection.DateTime `json:"created_at"`
	UpdatedAt  connection.DateTime `json:"updated_at"`
}

Cluster represents a cluster

type ClusterNotFoundError

type ClusterNotFoundError struct {
	ID int
}

ClusterNotFoundError indicates a cluster was not found

func (*ClusterNotFoundError) Error

func (e *ClusterNotFoundError) Error() string

type CreateACLRequest

type CreateACLRequest struct {
	Name          string         `json:"name"`
	ListenerID    int            `json:"listener_id,omitempty"`
	TargetGroupID int            `json:"target_group_id,omitempty"`
	Conditions    []ACLCondition `json:"conditions,omitempty"`
	Actions       []ACLAction    `json:"actions"`
}

CreateACLRequest represents a request to create a ACL

type CreateAccessIPRequest

type CreateAccessIPRequest struct {
	IP connection.IPAddress `json:"ip"`
}

CreateAccessIPRequest represents a request to create an access IP

type CreateBindRequest

type CreateBindRequest struct {
	VIPID int `json:"vip_id"`
	Port  int `json:"port"`
}

CreateBindRequest represents a request to create a bind

type CreateCertificateRequest

type CreateCertificateRequest struct {
	Name        string `json:"name"`
	Key         string `json:"key"`
	Certificate string `json:"certificate"`
	CABundle    string `json:"ca_bundle"`
}

CreateCertificateRequest represents a request to create a certificate

type CreateListenerRequest

type CreateListenerRequest struct {
	Name                 string `json:"name"`
	ClusterID            int    `json:"cluster_id"`
	HSTSEnabled          bool   `json:"hsts_enabled"`
	Mode                 Mode   `json:"mode"`
	HSTSMaxAge           int    `json:"hsts_maxage"`
	Close                bool   `json:"close"`
	RedirectHTTPS        bool   `json:"redirect_https"`
	DefaultTargetGroupID int    `json:"default_target_group_id"`
	AccessIsAllowList    bool   `json:"access_is_allow_list"`
	AllowTLSV1           bool   `json:"allow_tlsv1"`
	AllowTLSV11          bool   `json:"allow_tlsv11"`
	DisableTLSV12        bool   `json:"disable_tlsv12"`
	DisableHTTP2         bool   `json:"disable_http2"`
	HTTP2Only            bool   `json:"http2_only"`
	CustomCiphers        string `json:"custom_ciphers"`
}

CreateListenerRequest represents a request to create a listener

type CreateTargetGroupRequest

type CreateTargetGroupRequest struct {
	ClusterID                int                      `json:"cluster_id"`
	Name                     string                   `json:"name"`
	Balance                  TargetGroupBalance       `json:"balance"`
	Mode                     Mode                     `json:"mode"`
	Close                    bool                     `json:"close"`
	Sticky                   bool                     `json:"sticky"`
	CookieOpts               string                   `json:"cookie_opts,omitempty"`
	Source                   string                   `json:"source,omitempty"`
	TimeoutsConnect          int                      `json:"timeouts_connect,omitempty"`
	TimeoutsServer           int                      `json:"timeouts_server,omitempty"`
	CustomOptions            string                   `json:"custom_options,omitempty"`
	MonitorURL               string                   `json:"monitor_url,omitempty"`
	MonitorMethod            TargetGroupMonitorMethod `json:"monitor_method,omitempty"`
	MonitorHost              string                   `json:"monitor_host,omitempty"`
	MonitorHTTPVersion       string                   `json:"monitor_http_version,omitempty"`
	MonitorExpect            string                   `json:"monitor_expect,omitempty"`
	MonitorExpectString      string                   `json:"monitor_expect_string,omitempty"`
	MonitorExpectStringRegex bool                     `json:"monitor_expect_string_regex"`
	MonitorTCPMonitoring     bool                     `json:"monitor_tcp_monitoring"`
	CheckPort                int                      `json:"check_port,omitempty"`
	SendProxy                bool                     `json:"send_proxy"`
	SendProxyV2              bool                     `json:"send_proxy_v2"`
	SSL                      bool                     `json:"ssl"`
	SSLVerify                bool                     `json:"ssl_verify"`
	SNI                      bool                     `json:"sni"`
}

CreateTargetGroupRequest represents a request to create a target group

type CreateTargetRequest

type CreateTargetRequest struct {
	Name          string               `json:"name,omitempty"`
	IP            connection.IPAddress `json:"ip"`
	Port          int                  `json:"port,omitempty"`
	Weight        int                  `json:"weight,omitempty"`
	Backup        bool                 `json:"backup"`
	CheckInterval int                  `json:"check_interval,omitempty"`
	CheckSSL      bool                 `json:"check_ssl"`
	CheckRise     int                  `json:"check_rise,omitempty"`
	CheckFall     int                  `json:"check_fall,omitempty"`
	DisableHTTP2  bool                 `json:"disable_http2"`
	HTTP2Only     bool                 `json:"http2_only"`
	Active        bool                 `json:"active"`
}

CreateTargetRequest represents a request to create a target

type CreateVIPRequest

type CreateVIPRequest struct {
	ClusterID int    `json:"cluster_id"`
	Type      string `json:"type"`
	CIDR      string `json:"cidr"`
}

CreateVIPRequest represents a request to create a target group

type Header struct {
	Header string `json:"header"`
}

Header represents a header

type Listener

type Listener struct {
	ID                   int                 `json:"id"`
	Name                 string              `json:"name"`
	ClusterID            int                 `json:"cluster_id"`
	HSTSEnabled          bool                `json:"hsts_enabled"`
	Mode                 Mode                `json:"mode"`
	HSTSMaxAge           int                 `json:"hsts_maxage"`
	Close                bool                `json:"close"`
	RedirectHTTPS        bool                `json:"redirect_https"`
	DefaultTargetGroupID int                 `json:"default_target_group_id"`
	AccessIsAllowList    bool                `json:"access_is_allow_list"`
	AllowTLSV1           bool                `json:"allow_tlsv1"`
	AllowTLSV11          bool                `json:"allow_tlsv11"`
	DisableTLSV12        bool                `json:"disable_tlsv12"`
	DisableHTTP2         bool                `json:"disable_http2"`
	HTTP2Only            bool                `json:"http2_only"`
	CustomCiphers        string              `json:"custom_ciphers"`
	CreatedAt            connection.DateTime `json:"created_at"`
	UpdatedAt            connection.DateTime `json:"updated_at"`
}

Listener represents a listener / frontend

type ListenerNotFoundError

type ListenerNotFoundError struct {
	ID int
}

ListenerNotFoundError indicates a listener was not found

func (*ListenerNotFoundError) Error

func (e *ListenerNotFoundError) Error() string

type LoadBalancerService

type LoadBalancerService interface {
	// Cluster
	GetClusters(parameters connection.APIRequestParameters) ([]Cluster, error)
	GetClustersPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Cluster], error)
	GetCluster(clusterID int) (Cluster, error)
	PatchCluster(clusterID int, req PatchClusterRequest) error
	DeployCluster(clusterID int) error
	ValidateCluster(clusterID int) error

	// Cluster ACL Templates
	GetClusterACLTemplates(clusterID int) (ACLTemplates, error)

	// Target Group
	GetTargetGroups(parameters connection.APIRequestParameters) ([]TargetGroup, error)
	GetTargetGroupsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[TargetGroup], error)
	GetTargetGroup(groupID int) (TargetGroup, error)
	CreateTargetGroup(req CreateTargetGroupRequest) (int, error)
	PatchTargetGroup(groupID int, req PatchTargetGroupRequest) error
	DeleteTargetGroup(groupID int) error

	// Target Group ACL
	GetTargetGroupACLs(targetGroupID int, parameters connection.APIRequestParameters) ([]ACL, error)
	GetTargetGroupACLsPaginated(targetGroupID int, parameters connection.APIRequestParameters) (*connection.Paginated[ACL], error)

	// Target Group Target
	GetTargetGroupTargets(groupID int, parameters connection.APIRequestParameters) ([]Target, error)
	GetTargetGroupTargetsPaginated(groupID int, parameters connection.APIRequestParameters) (*connection.Paginated[Target], error)
	GetTargetGroupTarget(groupID int, targetID int) (Target, error)
	CreateTargetGroupTarget(groupID int, req CreateTargetRequest) (int, error)
	PatchTargetGroupTarget(groupID int, targetID int, req PatchTargetRequest) error
	DeleteTargetGroupTarget(groupID int, targetID int) error

	// VIP
	GetVIPs(parameters connection.APIRequestParameters) ([]VIP, error)
	GetVIPsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[VIP], error)
	GetVIP(vipID int) (VIP, error)

	// Listener
	GetListeners(parameters connection.APIRequestParameters) ([]Listener, error)
	GetListenersPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Listener], error)
	GetListener(listenerID int) (Listener, error)
	CreateListener(req CreateListenerRequest) (int, error)
	PatchListener(listenerID int, req PatchListenerRequest) error
	DeleteListener(listenerID int) error

	// Listener ACL
	GetListenerACLs(listenerID int, parameters connection.APIRequestParameters) ([]ACL, error)
	GetListenerACLsPaginated(listenerID int, parameters connection.APIRequestParameters) (*connection.Paginated[ACL], error)

	// Listener Access IP
	GetListenerAccessIPs(listenerID int, parameters connection.APIRequestParameters) ([]AccessIP, error)
	GetListenerAccessIPsPaginated(listenerID int, parameters connection.APIRequestParameters) (*connection.Paginated[AccessIP], error)
	CreateListenerAccessIP(listenerID int, req CreateAccessIPRequest) (int, error)

	// Listener Bind
	GetListenerBinds(listenerID int, parameters connection.APIRequestParameters) ([]Bind, error)
	GetListenerBindsPaginated(listenerID int, parameters connection.APIRequestParameters) (*connection.Paginated[Bind], error)
	GetListenerBind(listenerID int, bindID int) (Bind, error)
	CreateListenerBind(listenerID int, req CreateBindRequest) (int, error)
	PatchListenerBind(listenerID int, bindID int, req PatchBindRequest) error
	DeleteListenerBind(listenerID int, bindID int) error

	// Access IP
	GetAccessIP(accessIP int) (AccessIP, error)
	PatchAccessIP(accessIP int, req PatchAccessIPRequest) error
	DeleteAccessIP(accessIP int) error

	// Listener Certificate
	GetListenerCertificates(listenerID int, parameters connection.APIRequestParameters) ([]Certificate, error)
	GetListenerCertificatesPaginated(listenerID int, parameters connection.APIRequestParameters) (*connection.Paginated[Certificate], error)
	GetListenerCertificate(listenerID int, certificateID int) (Certificate, error)
	CreateListenerCertificate(listenerID int, req CreateCertificateRequest) (int, error)
	PatchListenerCertificate(listenerID int, certificateID int, req PatchCertificateRequest) error
	DeleteListenerCertificate(listenerID int, certificateID int) error

	// Bind
	GetBinds(parameters connection.APIRequestParameters) ([]Bind, error)
	GetBindsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Bind], error)

	// Header
	GetHeaders(parameters connection.APIRequestParameters) ([]Header, error)
	GetHeadersPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Header], error)

	// ACL
	GetACLs(parameters connection.APIRequestParameters) ([]ACL, error)
	GetACLsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[ACL], error)
	GetACL(aclID int) (ACL, error)
	CreateACL(req CreateACLRequest) (int, error)
	PatchACL(aclID int, req PatchACLRequest) error
	DeleteACL(aclID int) error
}

LoadBalancerService is an interface for managing the LoadBalancer service

type Mode

type Mode string
const (
	ModeHTTP Mode = "http"
	ModeTCP  Mode = "tcp"
)

func ParseMode

func ParseMode(s string) (Mode, error)

ParseMode attempts to parse a Mode from string

func (Mode) String

func (s Mode) String() string

type PatchACLRequest

type PatchACLRequest struct {
	Name       string         `json:"name,omitempty"`
	Conditions []ACLCondition `json:"conditions,omitempty"`
	Actions    []ACLAction    `json:"actions,omitempty"`
}

PatchListenerACLRequest represents a request to patch a ACL

type PatchAccessIPRequest

type PatchAccessIPRequest struct {
	IP connection.IPAddress `json:"ip,omitempty"`
}

PatchAccessIPRequest represents a request to patch an access IP

type PatchBindRequest

type PatchBindRequest struct {
	VIPID int `json:"vip_id,omitempty"`
	Port  int `json:"port,omitempty"`
}

PatchBindRequest represents a request to patch a bind

type PatchCertificateRequest

type PatchCertificateRequest struct {
	Name        string `json:"name,omitempty"`
	Key         string `json:"key,omitempty"`
	Certificate string `json:"certificate,omitempty"`
	CABundle    string `json:"ca_bundle,omitempty"`
}

PatchListenerCertificateRequest represents a request to patch a certificate

type PatchClusterRequest

type PatchClusterRequest struct {
	Name string `json:"name,omitempty"`
}

PatchClusterRequest represents a request to patch a cluster

type PatchListenerRequest

type PatchListenerRequest struct {
	Name                 string `json:"name,omitempty"`
	HSTSEnabled          *bool  `json:"hsts_enabled,omitempty"`
	Mode                 Mode   `json:"mode,omitempty"`
	HSTSMaxAge           int    `json:"hsts_maxage,omitempty"`
	Close                *bool  `json:"close,omitempty"`
	RedirectHTTPS        *bool  `json:"redirect_https,omitempty"`
	DefaultTargetGroupID int    `json:"default_target_group_id,omitempty"`
	AccessIsAllowList    *bool  `json:"access_is_allow_list,omitempty"`
	AllowTLSV1           *bool  `json:"allow_tlsv1,omitempty"`
	AllowTLSV11          *bool  `json:"allow_tlsv11,omitempty"`
	DisableTLSV12        *bool  `json:"disable_tlsv12,omitempty"`
	DisableHTTP2         *bool  `json:"disable_http2,omitempty"`
	HTTP2Only            *bool  `json:"http2_only,omitempty"`
	CustomCiphers        string `json:"custom_ciphers,omitempty"`
}

PatchListenerRequest represents a request to patch a listener

type PatchTargetGroupRequest

type PatchTargetGroupRequest struct {
	Name                     string                   `json:"name,omitempty"`
	Balance                  TargetGroupBalance       `json:"balance,omitempty"`
	Mode                     Mode                     `json:"mode,omitempty"`
	Close                    *bool                    `json:"close,omitempty"`
	Sticky                   *bool                    `json:"sticky,omitempty"`
	CookieOpts               string                   `json:"cookie_opts,omitempty"`
	Source                   string                   `json:"source,omitempty"`
	TimeoutsConnect          int                      `json:"timeouts_connect,omitempty"`
	TimeoutsServer           int                      `json:"timeouts_server,omitempty"`
	CustomOptions            string                   `json:"custom_options,omitempty"`
	MonitorURL               string                   `json:"monitor_url,omitempty"`
	MonitorMethod            TargetGroupMonitorMethod `json:"monitor_method,omitempty"`
	MonitorHost              string                   `json:"monitor_host,omitempty"`
	MonitorHTTPVersion       string                   `json:"monitor_http_version,omitempty"`
	MonitorExpect            string                   `json:"monitor_expect,omitempty"`
	MonitorExpectString      string                   `json:"monitor_expect_string,omitempty"`
	MonitorExpectStringRegex *bool                    `json:"monitor_expect_string_regex,omitempty"`
	MonitorTCPMonitoring     *bool                    `json:"monitor_tcp_monitoring,omitempty"`
	CheckPort                int                      `json:"check_port,omitempty"`
	SendProxy                *bool                    `json:"send_proxy,omitempty"`
	SendProxyV2              *bool                    `json:"send_proxy_v2,omitempty"`
	SSL                      *bool                    `json:"ssl,omitempty"`
	SSLVerify                *bool                    `json:"ssl_verify,omitempty"`
	SNI                      *bool                    `json:"sni,omitempty"`
}

PatchTargetGroupRequest represents a request to patch a target group

type PatchTargetRequest

type PatchTargetRequest struct {
	Name          string               `json:"name,omitempty"`
	IP            connection.IPAddress `json:"ip,omitempty"`
	Port          int                  `json:"port,omitempty"`
	Weight        int                  `json:"weight,omitempty"`
	Backup        *bool                `json:"backup,omitempty"`
	CheckInterval int                  `json:"check_interval,omitempty"`
	CheckSSL      *bool                `json:"check_ssl,omitempty"`
	CheckRise     int                  `json:"check_rise,omitempty"`
	CheckFall     int                  `json:"check_fall,omitempty"`
	DisableHTTP2  *bool                `json:"disable_http2,omitempty"`
	HTTP2Only     *bool                `json:"http2_only,omitempty"`
	Active        *bool                `json:"active,omitempty"`
}

PatchTargetRequest represents a request to patch a target

type PatchVIPRequest

type PatchVIPRequest struct {
	Type string `json:"type,omitempty"`
	CIDR string `json:"cidr,omitempty"`
}

PatchVIPRequest represents a request to patch a target group

type Service

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

Service implements LoadBalancerService for managing LoadBalancer certificates via the UKFast API

func NewService

func NewService(connection connection.Connection) *Service

NewService returns a new instance of LoadBalancerService

func (*Service) CreateACL

func (s *Service) CreateACL(req CreateACLRequest) (int, error)

CreateACL creates an ACL

func (*Service) CreateListener

func (s *Service) CreateListener(req CreateListenerRequest) (int, error)

CreateListener creates a listener

func (*Service) CreateListenerAccessIP

func (s *Service) CreateListenerAccessIP(listenerID int, req CreateAccessIPRequest) (int, error)

CreateListenerAccessIP creates an access IP

func (*Service) CreateListenerBind

func (s *Service) CreateListenerBind(listenerID int, req CreateBindRequest) (int, error)

CreateListenerBind creates an bind

func (*Service) CreateListenerCertificate

func (s *Service) CreateListenerCertificate(listenerID int, req CreateCertificateRequest) (int, error)

CreateListenerCertificate creates an certificate

func (*Service) CreateTargetGroup

func (s *Service) CreateTargetGroup(req CreateTargetGroupRequest) (int, error)

PatchTargetGroup patches a target group

func (*Service) CreateTargetGroupTarget

func (s *Service) CreateTargetGroupTarget(groupID int, req CreateTargetRequest) (int, error)

CreateTargetGroupTarget creates a target

func (*Service) DeleteACL

func (s *Service) DeleteACL(aclID int) error

DeleteACL deletes an ACL

func (*Service) DeleteAccessIP

func (s *Service) DeleteAccessIP(accessID int) error

DeleteAccessIP deletes an access IP

func (*Service) DeleteListener

func (s *Service) DeleteListener(listenerID int) error

DeleteListener deletes a listener

func (*Service) DeleteListenerBind

func (s *Service) DeleteListenerBind(listenerID int, bindID int) error

DeleteListenerBind deletes a bind

func (*Service) DeleteListenerCertificate

func (s *Service) DeleteListenerCertificate(listenerID int, certificateID int) error

DeleteListenerCertificate deletes a certificate

func (*Service) DeleteTargetGroup

func (s *Service) DeleteTargetGroup(groupID int) error

PatchTargetGroup patches a target group

func (*Service) DeleteTargetGroupTarget

func (s *Service) DeleteTargetGroupTarget(groupID int, targetID int) error

DeleteTargetGroupTarget deletes a target

func (*Service) DeployCluster

func (s *Service) DeployCluster(clusterID int) error

DeployCluster deploys a Cluster

func (*Service) GetACL

func (s *Service) GetACL(aclID int) (ACL, error)

GetACL retrieves a single ACL by id

func (*Service) GetACLs

func (s *Service) GetACLs(parameters connection.APIRequestParameters) ([]ACL, error)

GetACLs retrieves a list of ACLs Currently, a target_group_id or listener_id filter must be provided for this to return data

func (*Service) GetACLsPaginated

func (s *Service) GetACLsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[ACL], error)

GetACLsPaginated retrieves a paginated list of ACLs Currently, a target_group_id or listener_id filter must be provided for this to return data

func (*Service) GetAccessIP

func (s *Service) GetAccessIP(accessID int) (AccessIP, error)

GetAccessIP retrieves a single access IP by id

func (*Service) GetBinds

func (s *Service) GetBinds(parameters connection.APIRequestParameters) ([]Bind, error)

GetBinds retrieves a list of binds

func (*Service) GetBindsPaginated

func (s *Service) GetBindsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Bind], error)

GetBindsPaginated retrieves a paginated list of binds

func (*Service) GetCluster

func (s *Service) GetCluster(clusterID int) (Cluster, error)

GetCluster retrieves a single cluster by id

func (*Service) GetClusterACLTemplates

func (s *Service) GetClusterACLTemplates(clusterID int) (ACLTemplates, error)

GetCluster retrieves a single cluster by id

func (*Service) GetClusters

func (s *Service) GetClusters(parameters connection.APIRequestParameters) ([]Cluster, error)

GetClusters retrieves a list of clusters

func (*Service) GetClustersPaginated

func (s *Service) GetClustersPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Cluster], error)

GetClustersPaginated retrieves a paginated list of clusters

func (*Service) GetHeaders

func (s *Service) GetHeaders(parameters connection.APIRequestParameters) ([]Header, error)

GetHeaders retrieves a list of headers

func (*Service) GetHeadersPaginated

func (s *Service) GetHeadersPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Header], error)

GetHeadersPaginated retrieves a paginated list of headers

func (*Service) GetListener

func (s *Service) GetListener(listenerID int) (Listener, error)

GetListener retrieves a single listener by id

func (*Service) GetListenerACLs

func (s *Service) GetListenerACLs(listenerID int, parameters connection.APIRequestParameters) ([]ACL, error)

GetListenerACLs retrieves a list of ACLs

func (*Service) GetListenerACLsPaginated

func (s *Service) GetListenerACLsPaginated(listenerID int, parameters connection.APIRequestParameters) (*connection.Paginated[ACL], error)

GetListenerACLsPaginated retrieves a paginated list of ACLs

func (*Service) GetListenerAccessIP

func (s *Service) GetListenerAccessIP(listenerID int, accessID int) (AccessIP, error)

GetListenerAccessIP retrieves a single access IP by id

func (*Service) GetListenerAccessIPs

func (s *Service) GetListenerAccessIPs(listenerID int, parameters connection.APIRequestParameters) ([]AccessIP, error)

GetListenerAccessIPs retrieves a list of access IPs

func (*Service) GetListenerAccessIPsPaginated

func (s *Service) GetListenerAccessIPsPaginated(listenerID int, parameters connection.APIRequestParameters) (*connection.Paginated[AccessIP], error)

GetListenerAccessIPsPaginated retrieves a paginated list of access IPs

func (*Service) GetListenerBind

func (s *Service) GetListenerBind(listenerID int, bindID int) (Bind, error)

GetListenerBind retrieves a single bind by id

func (*Service) GetListenerBinds

func (s *Service) GetListenerBinds(listenerID int, parameters connection.APIRequestParameters) ([]Bind, error)

GetListenerBinds retrieves a list of binds

func (*Service) GetListenerBindsPaginated

func (s *Service) GetListenerBindsPaginated(listenerID int, parameters connection.APIRequestParameters) (*connection.Paginated[Bind], error)

GetListenerBindsPaginated retrieves a paginated list of binds

func (*Service) GetListenerCertificate

func (s *Service) GetListenerCertificate(listenerID int, certificateID int) (Certificate, error)

GetListenerCertificate retrieves a single certificate by id

func (*Service) GetListenerCertificates

func (s *Service) GetListenerCertificates(listenerID int, parameters connection.APIRequestParameters) ([]Certificate, error)

GetListenerCertificates retrieves a list of certificates

func (*Service) GetListenerCertificatesPaginated

func (s *Service) GetListenerCertificatesPaginated(listenerID int, parameters connection.APIRequestParameters) (*connection.Paginated[Certificate], error)

GetListenerCertificatesPaginated retrieves a paginated list of certificates

func (*Service) GetListeners

func (s *Service) GetListeners(parameters connection.APIRequestParameters) ([]Listener, error)

GetListeners retrieves a list of listeners

func (*Service) GetListenersPaginated

func (s *Service) GetListenersPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[Listener], error)

GetListenersPaginated retrieves a paginated list of listeners

func (*Service) GetTargetGroup

func (s *Service) GetTargetGroup(groupID int) (TargetGroup, error)

GetTargetGroup retrieves a single target group by id

func (*Service) GetTargetGroupACLs

func (s *Service) GetTargetGroupACLs(targetGroupID int, parameters connection.APIRequestParameters) ([]ACL, error)

GetTargetGroupACLs retrieves a list of ACLs

func (*Service) GetTargetGroupACLsPaginated

func (s *Service) GetTargetGroupACLsPaginated(targetGroupID int, parameters connection.APIRequestParameters) (*connection.Paginated[ACL], error)

GetTargetGroupACLsPaginated retrieves a paginated list of ACLs

func (*Service) GetTargetGroupTarget

func (s *Service) GetTargetGroupTarget(groupID int, targetID int) (Target, error)

GetTargetGroupTarget retrieves a single target by id

func (*Service) GetTargetGroupTargets

func (s *Service) GetTargetGroupTargets(groupID int, parameters connection.APIRequestParameters) ([]Target, error)

GetTargetGroupTargets retrieves a list of targets

func (*Service) GetTargetGroupTargetsPaginated

func (s *Service) GetTargetGroupTargetsPaginated(groupID int, parameters connection.APIRequestParameters) (*connection.Paginated[Target], error)

GetTargetGroupTargetsPaginated retrieves a paginated list of targets

func (*Service) GetTargetGroups

func (s *Service) GetTargetGroups(parameters connection.APIRequestParameters) ([]TargetGroup, error)

GetTargetGroups retrieves a list of target groups

func (*Service) GetTargetGroupsPaginated

func (s *Service) GetTargetGroupsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[TargetGroup], error)

GetTargetGroupsPaginated retrieves a paginated list of target groups

func (*Service) GetVIP

func (s *Service) GetVIP(vipID int) (VIP, error)

GetVIP retrieves a single VIP by id

func (*Service) GetVIPs

func (s *Service) GetVIPs(parameters connection.APIRequestParameters) ([]VIP, error)

GetVIPs retrieves a list of VIPs

func (*Service) GetVIPsPaginated

func (s *Service) GetVIPsPaginated(parameters connection.APIRequestParameters) (*connection.Paginated[VIP], error)

GetVIPsPaginated retrieves a paginated list of VIPs

func (*Service) PatchACL

func (s *Service) PatchACL(aclID int, req PatchACLRequest) error

PatchACL patches an ACL

func (*Service) PatchAccessIP

func (s *Service) PatchAccessIP(accessID int, req PatchAccessIPRequest) error

PatchAccessIP patches an access IP

func (*Service) PatchCluster

func (s *Service) PatchCluster(clusterID int, req PatchClusterRequest) error

PatchCluster patches a Cluster

func (*Service) PatchListener

func (s *Service) PatchListener(listenerID int, req PatchListenerRequest) error

PatchListener patches a listener

func (*Service) PatchListenerBind

func (s *Service) PatchListenerBind(listenerID int, bindID int, req PatchBindRequest) error

PatchListenerBind patches an bind

func (*Service) PatchListenerCertificate

func (s *Service) PatchListenerCertificate(listenerID int, certificateID int, req PatchCertificateRequest) error

PatchListenerCertificate patches an certificate

func (*Service) PatchTargetGroup

func (s *Service) PatchTargetGroup(groupID int, req PatchTargetGroupRequest) error

PatchTargetGroup patches a target group

func (*Service) PatchTargetGroupTarget

func (s *Service) PatchTargetGroupTarget(groupID int, targetID int, req PatchTargetRequest) error

PatchTargetGroupTarget patches a target

func (*Service) ValidateCluster

func (s *Service) ValidateCluster(clusterID int) error

ValidateCluster validates a cluster

type Target

type Target struct {
	ID            int                  `json:"id"`
	TargetGroupID int                  `json:"target_group_id"`
	Name          string               `json:"name"`
	IP            connection.IPAddress `json:"ip"`
	Port          int                  `json:"port"`
	Weight        int                  `json:"weight"`
	Backup        bool                 `json:"backup"`
	CheckInterval int                  `json:"check_interval"`
	CheckSSL      bool                 `json:"check_ssl"`
	CheckRise     int                  `json:"check_rise"`
	CheckFall     int                  `json:"check_fall"`
	DisableHTTP2  bool                 `json:"disable_http2"`
	HTTP2Only     bool                 `json:"http2_only"`
	Active        bool                 `json:"active"`
	CreatedAt     connection.DateTime  `json:"created_at"`
	UpdatedAt     connection.DateTime  `json:"updated_at"`
}

Target represents a target

type TargetGroup

type TargetGroup struct {
	ID                       int                      `json:"id"`
	ClusterID                int                      `json:"cluster_id"`
	Name                     string                   `json:"name"`
	Balance                  TargetGroupBalance       `json:"balance"`
	Mode                     Mode                     `json:"mode"`
	Close                    bool                     `json:"close"`
	Sticky                   bool                     `json:"sticky"`
	CookieOpts               string                   `json:"cookie_opts"`
	Source                   string                   `json:"source"`
	TimeoutsConnect          int                      `json:"timeouts_connect"`
	TimeoutsServer           int                      `json:"timeouts_server"`
	CustomOptions            string                   `json:"custom_options"`
	MonitorURL               string                   `json:"monitor_url"`
	MonitorMethod            TargetGroupMonitorMethod `json:"monitor_method"`
	MonitorHost              string                   `json:"monitor_host"`
	MonitorHTTPVersion       string                   `json:"monitor_http_version"`
	MonitorExpect            string                   `json:"monitor_expect"`
	MonitorExpectString      string                   `json:"monitor_expect_string"`
	MonitorExpectStringRegex bool                     `json:"monitor_expect_string_regex"`
	MonitorTCPMonitoring     bool                     `json:"monitor_tcp_monitoring"`
	CheckPort                int                      `json:"check_port"`
	SendProxy                bool                     `json:"send_proxy"`
	SendProxyV2              bool                     `json:"send_proxy_v2"`
	SSL                      bool                     `json:"ssl"`
	SSLVerify                bool                     `json:"ssl_verify"`
	SNI                      bool                     `json:"sni"`
	CreatedAt                connection.DateTime      `json:"created_at"`
	UpdatedAt                connection.DateTime      `json:"updated_at"`
}

TargetGroup represents a target group

type TargetGroupBalance

type TargetGroupBalance string
const (
	TargetGroupBalanceRoundRobin TargetGroupBalance = "roundrobin"
	TargetGroupBalanceStaticRR   TargetGroupBalance = "static-rr"
	TargetGroupBalanceLeastConn  TargetGroupBalance = "leastconn"
	TargetGroupBalanceFirst      TargetGroupBalance = "first"
	TargetGroupBalanceRDPCookie  TargetGroupBalance = "rdp-cookie"
	TargetGroupBalanceURI        TargetGroupBalance = "uri"
	TargetGroupBalanceHDR        TargetGroupBalance = "hdr"
	TargetGroupBalanceURLParam   TargetGroupBalance = "url_param"
	TargetGroupBalanceSource     TargetGroupBalance = "source"
)

func ParseTargetGroupBalance

func ParseTargetGroupBalance(s string) (TargetGroupBalance, error)

ParseTargetGroupBalance attempts to parse a TargetGroupBalance from string

func (TargetGroupBalance) String

func (s TargetGroupBalance) String() string

type TargetGroupMonitorMethod

type TargetGroupMonitorMethod string
const (
	TargetGroupMonitorMethodGET     TargetGroupMonitorMethod = "GET"
	TargetGroupMonitorMethodHEAD    TargetGroupMonitorMethod = "HEAD"
	TargetGroupMonitorMethodOPTIONS TargetGroupMonitorMethod = "OPTIONS"
)

func ParseTargetGroupMonitorMethod

func ParseTargetGroupMonitorMethod(s string) (TargetGroupMonitorMethod, error)

ParseTargetGroupMonitorMethod attempts to parse a TargetGroupMonitorMethod from string

func (TargetGroupMonitorMethod) String

func (s TargetGroupMonitorMethod) String() string

type TargetGroupNotFoundError

type TargetGroupNotFoundError struct {
	ID int
}

TargetGroupNotFoundError indicates a target group was not found

func (*TargetGroupNotFoundError) Error

func (e *TargetGroupNotFoundError) Error() string

type TargetNotFoundError

type TargetNotFoundError struct {
	ID int
}

TargetNotFoundError indicates a target was not found

func (*TargetNotFoundError) Error

func (e *TargetNotFoundError) Error() string

type VIP

type VIP struct {
	ID           int                 `json:"id"`
	ClusterID    int                 `json:"cluster_id"`
	InternalCIDR string              `json:"internal_cidr"`
	ExternalCIDR string              `json:"external_cidr"`
	MACAddress   string              `json:"mac_address"`
	CreatedAt    connection.DateTime `json:"created_at"`
	UpdatedAt    connection.DateTime `json:"updated_at"`
}

VIP represents a target virtual IP address

type VIPNotFoundError

type VIPNotFoundError struct {
	ID int
}

VIPNotFoundError indicates a VIP was not found

func (*VIPNotFoundError) Error

func (e *VIPNotFoundError) Error() string

Jump to

Keyboard shortcuts

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