loadbalancer

package module
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Jun 12, 2024 License: Apache-2.0 Imports: 22 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CacheExpires

func CacheExpires(r *http.Response) time.Time

CacheExpires helper function to determine remaining time before repeating a request.

func IsNil

func IsNil(i interface{}) bool

IsNil checks if an input is nil

func NewConfiguration

func NewConfiguration() *config.Configuration

NewConfiguration returns a new Configuration object

func ParameterValueToString

func ParameterValueToString(obj interface{}, key string) string

func PtrBool

func PtrBool(v bool) *bool

PtrBool is a helper routine that returns a pointer to given boolean value.

func PtrFloat32

func PtrFloat32(v float32) *float32

PtrFloat32 is a helper routine that returns a pointer to given float value.

func PtrFloat64

func PtrFloat64(v float64) *float64

PtrFloat64 is a helper routine that returns a pointer to given float value.

func PtrInt

func PtrInt(v int) *int

PtrInt is a helper routine that returns a pointer to given integer value.

func PtrInt32

func PtrInt32(v int32) *int32

PtrInt32 is a helper routine that returns a pointer to given integer value.

func PtrInt64

func PtrInt64(v int64) *int64

PtrInt64 is a helper routine that returns a pointer to given integer value.

func PtrString

func PtrString(v string) *string

PtrString is a helper routine that returns a pointer to given string value.

func PtrTime

func PtrTime(v time.Time) *time.Time

PtrTime is helper routine that returns a pointer to given Time value.

Types

type APIClient

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

APIClient manages communication with the Load Balancer API API v1.7.0 In most cases there should be only one, shared, APIClient.

func NewAPIClient

func NewAPIClient(opts ...config.ConfigurationOption) (*APIClient, error)

NewAPIClient creates a new API client. Optionally receives configuration options

func (*APIClient) CreateCredentials

func (a *APIClient) CreateCredentials(ctx context.Context, projectId string) ApiCreateCredentialsRequest

CreateCredentials Create credentials for observability of the Load Balancer

Create credentials can be used to store existing credentials, which are valid to be used for Load Balancer Observability.

This means, e.g. when using ARGUS, that credentials first must be created for that ARGUS instance (by using their API) and
then can be provided to the Load Balancer by storing them with this endpoint.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@return ApiCreateCredentialsRequest

func (*APIClient) CreateCredentialsExecute

func (a *APIClient) CreateCredentialsExecute(ctx context.Context, projectId string) (*CreateCredentialsResponse, error)

func (*APIClient) CreateLoadBalancer

func (a *APIClient) CreateLoadBalancer(ctx context.Context, projectId string) ApiCreateLoadBalancerRequest

CreateLoadBalancer Create a load balancer in a project

Create Load Balancer will create a load balancer.

The default load balancing algorithm is round robin unless useSourceIpAddress in session persistence is enabled for a target pool then it is Maglev.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@return ApiCreateLoadBalancerRequest

func (*APIClient) CreateLoadBalancerExecute

func (a *APIClient) CreateLoadBalancerExecute(ctx context.Context, projectId string) (*LoadBalancer, error)

func (*APIClient) DeleteCredentials

func (a *APIClient) DeleteCredentials(ctx context.Context, projectId string, credentialsRef string) ApiDeleteCredentialsRequest

DeleteCredentials Delete a single credential in a project.

Delete Credential

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@param credentialsRef
@return ApiDeleteCredentialsRequest

func (*APIClient) DeleteCredentialsExecute

func (a *APIClient) DeleteCredentialsExecute(ctx context.Context, projectId string, credentialsRef string) (map[string]interface{}, error)

func (*APIClient) DeleteLoadBalancer

func (a *APIClient) DeleteLoadBalancer(ctx context.Context, projectId string, name string) ApiDeleteLoadBalancerRequest

DeleteLoadBalancer Delete a given load balancer in a project.

DeleteLoadBalancer will delete a given load balancer.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@param name
@return ApiDeleteLoadBalancerRequest

func (*APIClient) DeleteLoadBalancerExecute

func (a *APIClient) DeleteLoadBalancerExecute(ctx context.Context, projectId string, name string) (map[string]interface{}, error)

func (*APIClient) DisableService

func (a *APIClient) DisableService(ctx context.Context, projectId string) ApiDisableServiceRequest

DisableService Disables the functionality of load balancers for the project specified.

DEPRECATED! Disabling the load balancer functionality is now automatic. The endpoint is kept for compatibility.

Disable will disable the load balancer functionality for the project specified.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@return ApiDisableServiceRequest

Deprecated

func (*APIClient) DisableServiceExecute

func (a *APIClient) DisableServiceExecute(ctx context.Context, projectId string) (map[string]interface{}, error)

func (*APIClient) EnableService

func (a *APIClient) EnableService(ctx context.Context, projectId string) ApiEnableServiceRequest

EnableService Enables the functionality of load balancers for the project specified.

DEPRECATED! Use CreateLoadBalancer directly instead.

Enable will enable the load balancer functionality for the project specified.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@return ApiEnableServiceRequest

Deprecated

func (*APIClient) EnableServiceExecute

func (a *APIClient) EnableServiceExecute(ctx context.Context, projectId string) (map[string]interface{}, error)

func (*APIClient) GetConfig

func (c *APIClient) GetConfig() *config.Configuration

Allow modification of underlying config for alternate implementations and testing Caution: modifying the configuration while live can cause data races and potentially unwanted behavior

func (*APIClient) GetCredentials

func (a *APIClient) GetCredentials(ctx context.Context, projectId string, credentialsRef string) ApiGetCredentialsRequest

GetCredentials Get a single credential reference in a project.

Get Credentials

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@param credentialsRef
@return ApiGetCredentialsRequest

func (*APIClient) GetCredentialsExecute

func (a *APIClient) GetCredentialsExecute(ctx context.Context, projectId string, credentialsRef string) (*GetCredentialsResponse, error)

func (*APIClient) GetLoadBalancer

func (a *APIClient) GetLoadBalancer(ctx context.Context, projectId string, name string) ApiGetLoadBalancerRequest

GetLoadBalancer Get a single load balancer in a project.

Get Load Balancer will get a single load balancer of a project. This contains all the information set during

creation or updates. Additionally, it will have information about the state of the load balancer in the form
of a status field and error description feedback.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@param name
@return ApiGetLoadBalancerRequest

func (*APIClient) GetLoadBalancerExecute

func (a *APIClient) GetLoadBalancerExecute(ctx context.Context, projectId string, name string) (*LoadBalancer, error)

func (*APIClient) GetQuota added in v0.12.0

func (a *APIClient) GetQuota(ctx context.Context, projectId string) ApiGetQuotaRequest

GetQuota Get the quota of Load Balancers and Target Pools in a project.

GetQuota gets the configured load balancer quota for the project. Default is 3.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@return ApiGetQuotaRequest

func (*APIClient) GetQuotaExecute added in v0.12.0

func (a *APIClient) GetQuotaExecute(ctx context.Context, projectId string) (*GetQuotaResponse, error)

func (*APIClient) GetServiceStatus

func (a *APIClient) GetServiceStatus(ctx context.Context, projectId string) ApiGetServiceStatusRequest

GetServiceStatus Return the status of load balancer functionality for the project specified.

DEPRECATED! Projects are auto-enabled on SE side, meaning status is always enabled.

Status will return the load balancer functionality status for the project specified.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@return ApiGetServiceStatusRequest

Deprecated

func (*APIClient) GetServiceStatusExecute

func (a *APIClient) GetServiceStatusExecute(ctx context.Context, projectId string) (*GetServiceStatusResponse, error)

func (*APIClient) ListCredentials

func (a *APIClient) ListCredentials(ctx context.Context, projectId string) ApiListCredentialsRequest

ListCredentials List all credentials in a project.

List Credentials

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@return ApiListCredentialsRequest

func (*APIClient) ListCredentialsExecute

func (a *APIClient) ListCredentialsExecute(ctx context.Context, projectId string) (*ListCredentialsResponse, error)

func (*APIClient) ListLoadBalancers

func (a *APIClient) ListLoadBalancers(ctx context.Context, projectId string) ApiListLoadBalancersRequest

ListLoadBalancers List load balancers in a project.

ListLoadBalancer will list load balancers of a project. This contains information set during

creation or updates for every load balancer in the project. Additionally, it will have information about
the state of the load balancer in the form of a status field and error description feedback.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@return ApiListLoadBalancersRequest

func (*APIClient) ListLoadBalancersExecute

func (a *APIClient) ListLoadBalancersExecute(ctx context.Context, projectId string) (*ListLoadBalancersResponse, error)

func (*APIClient) UpdateCredentials added in v0.12.0

func (a *APIClient) UpdateCredentials(ctx context.Context, projectId string, credentialsRef string) ApiUpdateCredentialsRequest

UpdateCredentials Update credentials for observability in a project.

Update Credentials

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@param credentialsRef
@return ApiUpdateCredentialsRequest

func (*APIClient) UpdateCredentialsExecute added in v0.12.0

func (a *APIClient) UpdateCredentialsExecute(ctx context.Context, projectId string, credentialsRef string) (*UpdateCredentialsResponse, error)

func (*APIClient) UpdateLoadBalancer

func (a *APIClient) UpdateLoadBalancer(ctx context.Context, projectId string, name string) ApiUpdateLoadBalancerRequest

UpdateLoadBalancer Update a load balancer in a project.

Update Load Balancer allows the change of listeners and target pools of an existing Load Balancer.

The Load balancer resource version needs to be the current version to ensure concurrency safe updates.
The default load balancing algorithm is round robin unless useSourceIpAddress in session persistence is enabled for a target pool then it is Maglev.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@param name
@return ApiUpdateLoadBalancerRequest

func (*APIClient) UpdateLoadBalancerExecute

func (a *APIClient) UpdateLoadBalancerExecute(ctx context.Context, projectId string, name string) (*LoadBalancer, error)

func (*APIClient) UpdateTargetPool

func (a *APIClient) UpdateTargetPool(ctx context.Context, projectId string, name string, targetPoolName string) ApiUpdateTargetPoolRequest

UpdateTargetPool Update a single target pool of a load balancer in a project.

ReplaceTargetPool will replace a specific target pool of a load balancer with new content.

Useful to  add/remove target servers. will update a load balancer.
Only replaces the mentioned target pools and leaves others unchanged.
Cannot be used to create or rename a target pool.

@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param projectId
@param name
@param targetPoolName
@return ApiUpdateTargetPoolRequest

func (*APIClient) UpdateTargetPoolExecute

func (a *APIClient) UpdateTargetPoolExecute(ctx context.Context, projectId string, name string, targetPoolName string) (*TargetPool, error)

type ActiveHealthCheck

type ActiveHealthCheck struct {
	// Healthy threshold of the health checking
	HealthyThreshold *int64 `json:"healthyThreshold,omitempty"`
	// Interval duration of health checking in seconds
	Interval *string `json:"interval,omitempty"`
	// Interval duration threshold of the health checking in seconds
	IntervalJitter *string `json:"intervalJitter,omitempty"`
	// Active health checking timeout duration in seconds
	Timeout *string `json:"timeout,omitempty"`
	// Unhealthy threshold of the health checking
	UnhealthyThreshold *int64 `json:"unhealthyThreshold,omitempty"`
}

type ApiCreateCredentialsRequest

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

func (ApiCreateCredentialsRequest) CreateCredentialsPayload

func (r ApiCreateCredentialsRequest) CreateCredentialsPayload(createCredentialsPayload CreateCredentialsPayload) ApiCreateCredentialsRequest

func (ApiCreateCredentialsRequest) Execute

func (ApiCreateCredentialsRequest) XRequestID

type ApiCreateLoadBalancerRequest

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

func (ApiCreateLoadBalancerRequest) CreateLoadBalancerPayload

func (r ApiCreateLoadBalancerRequest) CreateLoadBalancerPayload(createLoadBalancerPayload CreateLoadBalancerPayload) ApiCreateLoadBalancerRequest

func (ApiCreateLoadBalancerRequest) Execute

func (ApiCreateLoadBalancerRequest) XRequestID

type ApiDeleteCredentialsRequest

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

func (ApiDeleteCredentialsRequest) Execute

func (r ApiDeleteCredentialsRequest) Execute() (map[string]interface{}, error)

type ApiDeleteLoadBalancerRequest

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

func (ApiDeleteLoadBalancerRequest) Execute

func (r ApiDeleteLoadBalancerRequest) Execute() (map[string]interface{}, error)

type ApiDisableServiceRequest

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

func (ApiDisableServiceRequest) Execute

func (r ApiDisableServiceRequest) Execute() (map[string]interface{}, error)

type ApiEnableServiceRequest

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

func (ApiEnableServiceRequest) Execute

func (r ApiEnableServiceRequest) Execute() (map[string]interface{}, error)

func (ApiEnableServiceRequest) XRequestID

func (r ApiEnableServiceRequest) XRequestID(xRequestID string) ApiEnableServiceRequest

type ApiGetCredentialsRequest

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

func (ApiGetCredentialsRequest) Execute

type ApiGetLoadBalancerRequest

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

func (ApiGetLoadBalancerRequest) Execute

type ApiGetQuotaRequest added in v0.12.0

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

func (ApiGetQuotaRequest) Execute added in v0.12.0

func (r ApiGetQuotaRequest) Execute() (*GetQuotaResponse, error)

type ApiGetServiceStatusRequest

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

func (ApiGetServiceStatusRequest) Execute

type ApiListCredentialsRequest

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

func (ApiListCredentialsRequest) Execute

type ApiListLoadBalancersRequest

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

func (ApiListLoadBalancersRequest) Execute

type ApiUpdateCredentialsRequest added in v0.12.0

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

func (ApiUpdateCredentialsRequest) Execute added in v0.12.0

func (ApiUpdateCredentialsRequest) UpdateCredentialsPayload added in v0.12.0

func (r ApiUpdateCredentialsRequest) UpdateCredentialsPayload(updateCredentialsPayload UpdateCredentialsPayload) ApiUpdateCredentialsRequest

type ApiUpdateLoadBalancerRequest

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

func (ApiUpdateLoadBalancerRequest) Execute

func (ApiUpdateLoadBalancerRequest) UpdateLoadBalancerPayload

func (r ApiUpdateLoadBalancerRequest) UpdateLoadBalancerPayload(updateLoadBalancerPayload UpdateLoadBalancerPayload) ApiUpdateLoadBalancerRequest

type ApiUpdateTargetPoolRequest

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

func (ApiUpdateTargetPoolRequest) Execute

func (ApiUpdateTargetPoolRequest) UpdateTargetPoolPayload

func (r ApiUpdateTargetPoolRequest) UpdateTargetPoolPayload(updateTargetPoolPayload UpdateTargetPoolPayload) ApiUpdateTargetPoolRequest

type CreateCredentialsPayload

type CreateCredentialsPayload struct {
	// Credential name
	DisplayName *string `json:"displayName,omitempty"`
	// A valid password used for an existing ARGUS instance, which is used during basic auth.
	Password *string `json:"password,omitempty"`
	// A valid username used for an existing ARGUS instance, which is used during basic auth.
	Username *string `json:"username,omitempty"`
}

type CreateCredentialsResponse

type CreateCredentialsResponse struct {
	Credential *CredentialsResponse `json:"credential,omitempty"`
}

type CreateLoadBalancerPayload

type CreateLoadBalancerPayload struct {
	// Reports all errors a load balancer has.
	Errors *[]LoadBalancerError `json:"errors,omitempty"`
	// External load balancer IP address where this load balancer is exposed. Not changeable after creation.
	ExternalAddress *string `json:"externalAddress,omitempty"`
	// There is a maximum listener count of 20.  Port and protocol limitations:  - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener.
	Listeners *[]Listener `json:"listeners,omitempty"`
	// Load balancer name. Not changeable after creation.
	Name *string `json:"name,omitempty"`
	// List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation.
	Networks *[]Network           `json:"networks,omitempty"`
	Options  *LoadBalancerOptions `json:"options,omitempty"`
	// Service Plan configures the size of the Load Balancer. Currently supported plans are p10, p25, p50, p250 and p750. This list can change in the future where plan ids will be removed and new plans by added. That is the reason this is not an enum.
	PlanId *string `json:"planId,omitempty"`
	// Transient private load balancer IP address that can change any time.
	PrivateAddress *string `json:"privateAddress,omitempty"`
	Status         *string `json:"status,omitempty"`
	// List of all target pools which will be used in the load balancer. Limited to 20.
	TargetPools *[]TargetPool `json:"targetPools,omitempty"`
	// Load balancer resource version. Must be empty or unset for creating load balancers, non-empty for updating load balancers. Semantics: While retrieving load balancers, this is the current version of this load balancer resource that changes during updates of the load balancers. On updates this field specified the load balancer version you calculated your update for instead of the future version to enable concurrency safe updates. Update calls will then report the new version in their result as you would see with a load balancer retrieval call later. There exist no total order of the version, so you can only compare it for equality, but not for less/greater than another version. Since the creation of load balancer is always intended to create the first version of it, there should be no existing version. That's why this field must by empty of not present in that case.
	Version *string `json:"version,omitempty"`
}

type CredentialsResponse

type CredentialsResponse struct {
	// The credentials reference can be used for observability of the Load Balancer.
	CredentialsRef *string `json:"credentialsRef,omitempty"`
	// Credential name
	DisplayName *string `json:"displayName,omitempty"`
	// The username used for the ARGUS instance
	Username *string `json:"username,omitempty"`
}

type DefaultApiService

type DefaultApiService service

DefaultApiService DefaultApi service

type GetCredentialsResponse

type GetCredentialsResponse struct {
	Credential *CredentialsResponse `json:"credential,omitempty"`
}

type GetQuotaResponse

type GetQuotaResponse struct {
	// The maximum number of load balancing servers in this project. Unlimited if set to -1.
	MaxLoadBalancers *int64 `json:"maxLoadBalancers,omitempty"`
	// Project identifier
	ProjectId *string `json:"projectId,omitempty"`
}

type GetServiceStatusResponse

type GetServiceStatusResponse struct {
	// status of the project
	Status *string `json:"status,omitempty"`
}

type ListCredentialsResponse

type ListCredentialsResponse struct {
	Credentials *[]CredentialsResponse `json:"credentials,omitempty"`
}

type ListLoadBalancersResponse

type ListLoadBalancersResponse struct {
	LoadBalancers *[]LoadBalancer `json:"loadBalancers,omitempty"`
}

type Listener

type Listener struct {
	DisplayName *string `json:"displayName,omitempty"`
	// Will be used to reference a listener and will replace display name in the future. Currently uses <protocol>-<port> as the name if no display name is given.
	Name *string `json:"name,omitempty"`
	// Port number where we listen for traffic
	Port *int64 `json:"port,omitempty"`
	// Protocol is the highest network protocol we understand to load balance. Currently only PROTOCOL_TCP, PROTOCOL_TCP_PROXY and PROTOCOL_TLS_PASSTHROUGH are supported.
	Protocol *string `json:"protocol,omitempty"`
	// Server Name Idicators config for domains to be routed to the desired target pool for this listener.
	ServerNameIndicators *[]ServerNameIndicator `json:"serverNameIndicators,omitempty"`
	// Reference target pool by target pool name.
	TargetPool *string     `json:"targetPool,omitempty"`
	Tcp        *OptionsTCP `json:"tcp,omitempty"`
	Udp        *OptionsUDP `json:"udp,omitempty"`
}

type LoadBalancer

type LoadBalancer struct {
	// Reports all errors a load balancer has.
	Errors *[]LoadBalancerError `json:"errors,omitempty"`
	// External load balancer IP address where this load balancer is exposed. Not changeable after creation.
	ExternalAddress *string `json:"externalAddress,omitempty"`
	// There is a maximum listener count of 20.  Port and protocol limitations:  - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener.
	Listeners *[]Listener `json:"listeners,omitempty"`
	// Load balancer name. Not changeable after creation.
	Name *string `json:"name,omitempty"`
	// List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation.
	Networks *[]Network           `json:"networks,omitempty"`
	Options  *LoadBalancerOptions `json:"options,omitempty"`
	// Service Plan configures the size of the Load Balancer. Currently supported plans are p10, p25, p50, p250 and p750. This list can change in the future where plan ids will be removed and new plans by added. That is the reason this is not an enum.
	PlanId *string `json:"planId,omitempty"`
	// Transient private load balancer IP address that can change any time.
	PrivateAddress *string `json:"privateAddress,omitempty"`
	Status         *string `json:"status,omitempty"`
	// List of all target pools which will be used in the load balancer. Limited to 20.
	TargetPools *[]TargetPool `json:"targetPools,omitempty"`
	// Load balancer resource version. Must be empty or unset for creating load balancers, non-empty for updating load balancers. Semantics: While retrieving load balancers, this is the current version of this load balancer resource that changes during updates of the load balancers. On updates this field specified the load balancer version you calculated your update for instead of the future version to enable concurrency safe updates. Update calls will then report the new version in their result as you would see with a load balancer retrieval call later. There exist no total order of the version, so you can only compare it for equality, but not for less/greater than another version. Since the creation of load balancer is always intended to create the first version of it, there should be no existing version. That's why this field must by empty of not present in that case.
	Version *string `json:"version,omitempty"`
}

type LoadBalancerError

type LoadBalancerError struct {
	// The error description contains additional helpful user information to fix the error state of the load balancer. For example the IP 45.135.247.139 does not exist in the project, then the description will report: Floating IP \"45.135.247.139\" could not be found.
	Description *string `json:"description,omitempty"`
	// The error type specifies which part of the load balancer encountered the error. I.e. the API will not check if a provided public IP is actually available in the project. Instead the load balancer with try to use the provided IP and if not available reports TYPE_FIP_NOT_CONFIGURED error.
	Type *string `json:"type,omitempty"`
}

type LoadBalancerOptions

type LoadBalancerOptions struct {
	AccessControl    *LoadbalancerOptionAccessControl `json:"accessControl,omitempty"`
	EphemeralAddress *bool                            `json:"ephemeralAddress,omitempty"`
	Observability    *LoadbalancerOptionObservability `json:"observability,omitempty"`
	// Load Balancer is accessible only via a private network ip address. Not changeable after creation.
	PrivateNetworkOnly *bool `json:"privateNetworkOnly,omitempty"`
}

type LoadbalancerOptionAccessControl

type LoadbalancerOptionAccessControl struct {
	// Load Balancer is accessible only from an IP address in this range
	AllowedSourceRanges *[]string `json:"allowedSourceRanges,omitempty"`
}

type LoadbalancerOptionLogs

type LoadbalancerOptionLogs struct {
	// Credentials reference for logging. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the logging solution the push URL points to. Then this enables monitoring via remote write for the Load Balancer.
	CredentialsRef *string `json:"credentialsRef,omitempty"`
	// The ARGUS/Loki remote write Push URL you want the logs to be shipped to.
	PushUrl *string `json:"pushUrl,omitempty"`
}

type LoadbalancerOptionMetrics

type LoadbalancerOptionMetrics struct {
	// Credentials reference for metrics. This reference is created via the observability create endpoint and the credential needs to contain the basic auth username and password for the metrics solution the push URL points to. Then this enables monitoring via remote write for the Load Balancer.
	CredentialsRef *string `json:"credentialsRef,omitempty"`
	// The ARGUS/Prometheus remote write Push URL you want the metrics to be shipped to.
	PushUrl *string `json:"pushUrl,omitempty"`
}

type LoadbalancerOptionObservability

type LoadbalancerOptionObservability struct {
	Logs    *LoadbalancerOptionLogs    `json:"logs,omitempty"`
	Metrics *LoadbalancerOptionMetrics `json:"metrics,omitempty"`
}

type MappedNullable

type MappedNullable interface {
	ToMap() (map[string]interface{}, error)
}

type Network

type Network struct {
	// Openstack network ID
	NetworkId *string `json:"networkId,omitempty"`
	// The role defines how the load balancer is using the network. Currently only ROLE_LISTENERS_AND_TARGETS is supported.
	Role *string `json:"role,omitempty"`
}

type NullableBool

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

func NewNullableBool

func NewNullableBool(val *bool) *NullableBool

func (NullableBool) Get

func (v NullableBool) Get() *bool

func (NullableBool) IsSet

func (v NullableBool) IsSet() bool

func (NullableBool) MarshalJSON

func (v NullableBool) MarshalJSON() ([]byte, error)

func (*NullableBool) Set

func (v *NullableBool) Set(val *bool)

func (*NullableBool) UnmarshalJSON

func (v *NullableBool) UnmarshalJSON(src []byte) error

func (*NullableBool) Unset

func (v *NullableBool) Unset()

type NullableFloat32

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

func NewNullableFloat32

func NewNullableFloat32(val *float32) *NullableFloat32

func (NullableFloat32) Get

func (v NullableFloat32) Get() *float32

func (NullableFloat32) IsSet

func (v NullableFloat32) IsSet() bool

func (NullableFloat32) MarshalJSON

func (v NullableFloat32) MarshalJSON() ([]byte, error)

func (*NullableFloat32) Set

func (v *NullableFloat32) Set(val *float32)

func (*NullableFloat32) UnmarshalJSON

func (v *NullableFloat32) UnmarshalJSON(src []byte) error

func (*NullableFloat32) Unset

func (v *NullableFloat32) Unset()

type NullableFloat64

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

func NewNullableFloat64

func NewNullableFloat64(val *float64) *NullableFloat64

func (NullableFloat64) Get

func (v NullableFloat64) Get() *float64

func (NullableFloat64) IsSet

func (v NullableFloat64) IsSet() bool

func (NullableFloat64) MarshalJSON

func (v NullableFloat64) MarshalJSON() ([]byte, error)

func (*NullableFloat64) Set

func (v *NullableFloat64) Set(val *float64)

func (*NullableFloat64) UnmarshalJSON

func (v *NullableFloat64) UnmarshalJSON(src []byte) error

func (*NullableFloat64) Unset

func (v *NullableFloat64) Unset()

type NullableInt

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

func NewNullableInt

func NewNullableInt(val *int) *NullableInt

func (NullableInt) Get

func (v NullableInt) Get() *int

func (NullableInt) IsSet

func (v NullableInt) IsSet() bool

func (NullableInt) MarshalJSON

func (v NullableInt) MarshalJSON() ([]byte, error)

func (*NullableInt) Set

func (v *NullableInt) Set(val *int)

func (*NullableInt) UnmarshalJSON

func (v *NullableInt) UnmarshalJSON(src []byte) error

func (*NullableInt) Unset

func (v *NullableInt) Unset()

type NullableInt32

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

func NewNullableInt32

func NewNullableInt32(val *int32) *NullableInt32

func (NullableInt32) Get

func (v NullableInt32) Get() *int32

func (NullableInt32) IsSet

func (v NullableInt32) IsSet() bool

func (NullableInt32) MarshalJSON

func (v NullableInt32) MarshalJSON() ([]byte, error)

func (*NullableInt32) Set

func (v *NullableInt32) Set(val *int32)

func (*NullableInt32) UnmarshalJSON

func (v *NullableInt32) UnmarshalJSON(src []byte) error

func (*NullableInt32) Unset

func (v *NullableInt32) Unset()

type NullableInt64

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

func NewNullableInt64

func NewNullableInt64(val *int64) *NullableInt64

func (NullableInt64) Get

func (v NullableInt64) Get() *int64

func (NullableInt64) IsSet

func (v NullableInt64) IsSet() bool

func (NullableInt64) MarshalJSON

func (v NullableInt64) MarshalJSON() ([]byte, error)

func (*NullableInt64) Set

func (v *NullableInt64) Set(val *int64)

func (*NullableInt64) UnmarshalJSON

func (v *NullableInt64) UnmarshalJSON(src []byte) error

func (*NullableInt64) Unset

func (v *NullableInt64) Unset()

type NullableString

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

func NewNullableString

func NewNullableString(val *string) *NullableString

func (NullableString) Get

func (v NullableString) Get() *string

func (NullableString) IsSet

func (v NullableString) IsSet() bool

func (NullableString) MarshalJSON

func (v NullableString) MarshalJSON() ([]byte, error)

func (*NullableString) Set

func (v *NullableString) Set(val *string)

func (*NullableString) UnmarshalJSON

func (v *NullableString) UnmarshalJSON(src []byte) error

func (*NullableString) Unset

func (v *NullableString) Unset()

type NullableTime

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

func NewNullableTime

func NewNullableTime(val *time.Time) *NullableTime

func (NullableTime) Get

func (v NullableTime) Get() *time.Time

func (NullableTime) IsSet

func (v NullableTime) IsSet() bool

func (NullableTime) MarshalJSON

func (v NullableTime) MarshalJSON() ([]byte, error)

func (*NullableTime) Set

func (v *NullableTime) Set(val *time.Time)

func (*NullableTime) UnmarshalJSON

func (v *NullableTime) UnmarshalJSON(src []byte) error

func (*NullableTime) Unset

func (v *NullableTime) Unset()

type OptionsTCP added in v0.10.0

type OptionsTCP struct {
	// The connection idle timeout to be used with the protocol. The default value is set to 5 minutes, and the maximum value is one hour.
	IdleTimeout *string `json:"idleTimeout,omitempty"`
}

type OptionsUDP added in v0.10.0

type OptionsUDP struct {
	// The connection idle timeout to be used with the protocol. The default value is set to 1 minute, and the maximum value is 2 minutes.
	IdleTimeout *string `json:"idleTimeout,omitempty"`
}

type ServerNameIndicator added in v0.9.0

type ServerNameIndicator struct {
	// The domain name for this SNI config.
	Name *string `json:"name,omitempty"`
}

type SessionPersistence added in v0.9.0

type SessionPersistence struct {
	// If enabled then all connections from one source IP address are redirected to the same target. This setting changes the load balancing algorithm to Maglev.
	UseSourceIpAddress *bool `json:"useSourceIpAddress,omitempty"`
}

type Target

type Target struct {
	// Target name
	DisplayName *string `json:"displayName,omitempty"`
	// Target IP. Must by unique within a target pool.
	Ip *string `json:"ip,omitempty"`
}

type TargetPool

type TargetPool struct {
	ActiveHealthCheck *ActiveHealthCheck `json:"activeHealthCheck,omitempty"`
	// Target pool name
	Name               *string             `json:"name,omitempty"`
	SessionPersistence *SessionPersistence `json:"sessionPersistence,omitempty"`
	// The number identifying the port where each target listens for traffic.
	TargetPort *int64 `json:"targetPort,omitempty"`
	// List of all targets which will be used in the pool. Limited to 250.
	Targets *[]Target `json:"targets,omitempty"`
}

type UpdateCredentialsPayload added in v0.12.0

type UpdateCredentialsPayload struct {
	// Credential name
	DisplayName *string `json:"displayName,omitempty"`
	// A valid password used for an existing ARGUS instance, which is used during basic auth.
	Password *string `json:"password,omitempty"`
	// A valid username used for an existing ARGUS instance, which is used during basic auth.
	Username *string `json:"username,omitempty"`
}

type UpdateCredentialsResponse added in v0.10.0

type UpdateCredentialsResponse struct {
	Credential *CredentialsResponse `json:"credential,omitempty"`
}

type UpdateLoadBalancerPayload

type UpdateLoadBalancerPayload struct {
	// Reports all errors a load balancer has.
	Errors *[]LoadBalancerError `json:"errors,omitempty"`
	// External load balancer IP address where this load balancer is exposed. Not changeable after creation.
	ExternalAddress *string `json:"externalAddress,omitempty"`
	// There is a maximum listener count of 20.  Port and protocol limitations:  - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener.
	Listeners *[]Listener `json:"listeners,omitempty"`
	// Load balancer name. Not changeable after creation.
	Name *string `json:"name,omitempty"`
	// List of networks that listeners and targets reside in. Currently limited to one. Not changeable after creation.
	Networks *[]Network           `json:"networks,omitempty"`
	Options  *LoadBalancerOptions `json:"options,omitempty"`
	// Service Plan configures the size of the Load Balancer. Currently supported plans are p10, p25, p50, p250 and p750. This list can change in the future where plan ids will be removed and new plans by added. That is the reason this is not an enum.
	PlanId *string `json:"planId,omitempty"`
	// Transient private load balancer IP address that can change any time.
	PrivateAddress *string `json:"privateAddress,omitempty"`
	Status         *string `json:"status,omitempty"`
	// List of all target pools which will be used in the load balancer. Limited to 20.
	TargetPools *[]TargetPool `json:"targetPools,omitempty"`
	// Load balancer resource version. Must be empty or unset for creating load balancers, non-empty for updating load balancers. Semantics: While retrieving load balancers, this is the current version of this load balancer resource that changes during updates of the load balancers. On updates this field specified the load balancer version you calculated your update for instead of the future version to enable concurrency safe updates. Update calls will then report the new version in their result as you would see with a load balancer retrieval call later. There exist no total order of the version, so you can only compare it for equality, but not for less/greater than another version. Since the creation of load balancer is always intended to create the first version of it, there should be no existing version. That's why this field must by empty of not present in that case.
	Version *string `json:"version,omitempty"`
}

type UpdateTargetPoolPayload

type UpdateTargetPoolPayload struct {
	ActiveHealthCheck *ActiveHealthCheck `json:"activeHealthCheck,omitempty"`
	// Target pool name
	Name               *string             `json:"name,omitempty"`
	SessionPersistence *SessionPersistence `json:"sessionPersistence,omitempty"`
	// The number identifying the port where each target listens for traffic.
	TargetPort *int64 `json:"targetPort,omitempty"`
	// List of all targets which will be used in the pool. Limited to 250.
	Targets *[]Target `json:"targets,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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