Documentation ¶
Index ¶
- type ClientSslProfileBinding
- type LbActiveMonitor
- type LbAppProfile
- type LbAppProfileListResult
- type LbClientSslProfile
- type LbClientSslProfileListResult
- type LbCookiePersistenceProfile
- type LbCookieTime
- type LbFastTcpProfile
- type LbFastUdpProfile
- type LbHttpMonitor
- type LbHttpProfile
- type LbHttpRedirectAction
- type LbHttpRejectAction
- type LbHttpRequestBodyCondition
- type LbHttpRequestCookieCondition
- type LbHttpRequestHeader
- type LbHttpRequestHeaderCondition
- type LbHttpRequestHeaderRewriteAction
- type LbHttpRequestMethodCondition
- type LbHttpRequestUriArgumentsCondition
- type LbHttpRequestUriCondition
- type LbHttpRequestUriRewriteAction
- type LbHttpRequestVersionCondition
- type LbHttpResponseHeaderCondition
- type LbHttpResponseHeaderRewriteAction
- type LbHttpsMonitor
- type LbIcmpMonitor
- type LbIpHeaderCondition
- type LbMonitor
- type LbMonitorListResult
- type LbPassiveMonitor
- type LbPersistenceCookieTime
- type LbPersistenceProfile
- type LbPersistenceProfileListResult
- type LbPool
- type LbPoolListResult
- type LbPoolMemberStatistics
- type LbPoolMemberStatus
- type LbPoolStatistics
- type LbPoolStatus
- type LbRule
- type LbRuleAction
- type LbRuleCondition
- type LbRuleListResult
- type LbSelectPoolAction
- type LbSelectServerAction
- type LbServerSslProfile
- type LbServerSslProfileListResult
- type LbService
- type LbServiceDebugInfo
- type LbServiceListResult
- type LbServiceStatistics
- type LbServiceStatisticsCounter
- type LbServiceStatus
- type LbSessionCookieTime
- type LbSnatAutoMap
- type LbSnatIpElement
- type LbSnatIpPool
- type LbSnatTranslation
- type LbSourceIpPersistenceProfile
- type LbSslCipherAndProtocolListResult
- type LbSslCipherInfo
- type LbSslProfile
- type LbSslProfileListResult
- type LbSslProtocolInfo
- type LbStatisticsCounter
- type LbTcpHeaderCondition
- type LbTcpMonitor
- type LbTcpProfile
- type LbTcpProfileListResult
- type LbUdpMonitor
- type LbVirtualServer
- type LbVirtualServerListResult
- type LbVirtualServerStatistics
- type LbVirtualServerStatus
- type PoolMember
- type PoolMemberGroup
- type PoolMemberSetting
- type PoolMemberSettingList
- type ServerSslProfileBinding
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClientSslProfileBinding ¶
type ClientSslProfileBinding struct { // authentication depth is used to set the verification depth in the client certificates chain. CertificateChainDepth int64 `json:"certificate_chain_depth,omitempty"` // client authentication mode ClientAuth string `json:"client_auth,omitempty"` // If client auth type is REQUIRED, client certificate must be signed by one of the trusted Certificate Authorities (CAs), also referred to as root CAs, whose self signed certificates are specified. ClientAuthCaIds []string `json:"client_auth_ca_ids,omitempty"` // A Certificate Revocation List (CRL) can be specified in the client-side SSL profile binding to disallow compromised client certificates. ClientAuthCrlIds []string `json:"client_auth_crl_ids,omitempty"` // A default certificate should be specified which will be used if the server does not host multiple hostnames on the same IP address or if the client does not support SNI extension. DefaultCertificateId string `json:"default_certificate_id"` // Client-side SSL profile binding allows multiple certificates, for different hostnames, to be bound to the same virtual server. SniCertificateIds []string `json:"sni_certificate_ids,omitempty"` // Client SSL profile defines reusable, application-independent client side SSL properties. SslProfileId string `json:"ssl_profile_id,omitempty"` }
type LbActiveMonitor ¶
type LbActiveMonitor struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Load balancers monitor the health of backend servers to ensure traffic is not black holed. There are two types of healthchecks: active and passive. Passive healthchecks depend on failures in actual client traffic (e.g. RST from server in response to a client connection) to detect that the server or the application is down. In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Currently, active health monitors are supported for HTTP, HTTPS, TCP, UDP and ICMP protocols. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // num of consecutive checks must fail before marking it down FallCount int64 `json:"fall_count,omitempty"` // the frequency at which the system issues the monitor check (in second) Interval int64 `json:"interval,omitempty"` // If the monitor port is specified, it would override pool member port setting for healthcheck. A port range is not supported. MonitorPort string `json:"monitor_port,omitempty"` // num of consecutive checks must pass before marking it up RiseCount int64 `json:"rise_count,omitempty"` // the number of seconds the target has in which to respond to the monitor request Timeout int64 `json:"timeout,omitempty"` }
type LbAppProfile ¶
type LbAppProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // An application profile can be bound to a virtual server to specify the application protocol characteristics. It is used to influence how load balancing is performed. Currently, three types of application profiles are supported: LbFastTCPProfile, LbFastUDPProfile and LbHttpProfile. LbFastTCPProfile or LbFastUDPProfile is typically used when the application is using a custom protocol or a standard protocol not supported by the load balancer. It is also used in cases where the user only wants L4 load balancing mainly because L4 load balancing has much higher performance and scalability, and/or supports connection mirroring. LbHttpProfile is used for both HTTP and HTTPS applications. Though application rules, if bound to the virtual server, can be used to accomplish the same goal, LbHttpProfile is intended to simplify enabling certain common use cases. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` }
type LbAppProfileListResult ¶
type LbAppProfileListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of load balancer application profiles Results []LbAppProfile `json:"results"` }
type LbClientSslProfile ¶
type LbClientSslProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // The type of this resource. ResourceType string `json:"resource_type,omitempty"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // supported SSL cipher list to client side Ciphers []string `json:"ciphers,omitempty"` // This flag is set to true when all the ciphers and protocols are secure. It is set to false when one of the ciphers or protocols is insecure. IsSecure bool `json:"is_secure,omitempty"` // During SSL handshake as part of the SSL client Hello client sends an ordered list of ciphers that it can support (or prefers) and typically server selects the first one from the top of that list it can also support. For Perfect Forward Secrecy(PFS), server could override the client's preference. PreferServerCiphers bool `json:"prefer_server_ciphers"` // SSL versions TLS1.1 and TLS1.2 are supported and enabled by default. SSLv2, SSLv3, and TLS1.0 are supported, but disabled by default. Protocols []string `json:"protocols,omitempty"` // SSL session caching allows SSL client and server to reuse previously negotiated security parameters avoiding the expensive public key operation during handshake. SessionCacheEnabled bool `json:"session_cache_enabled"` // Session cache timeout specifies how long the SSL session parameters are held on to and can be reused. SessionCacheTimeout int64 `json:"session_cache_timeout,omitempty"` }
type LbClientSslProfileListResult ¶
type LbClientSslProfileListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of load balancer client SSL profiles Results []LbClientSslProfile `json:"results"` }
type LbCookiePersistenceProfile ¶
type LbCookiePersistenceProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Source-ip persistence ensures all connections from a client (identified by IP address) are sent to the same backend server for a specified period. Cookie persistence allows related client connections, identified by the same cookie in HTTP requests, to be redirected to the same server. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` PersistenceShared bool `json:"persistence_shared"` // HTTP cookie domain could be configured, only available for insert mode. CookieDomain string `json:"cookie_domain,omitempty"` // If fallback is true, once the cookie points to a server that is down (i.e. admin state DISABLED or healthcheck state is DOWN), then a new server is selected by default to handle that request. If fallback is false, it will cause the request to be rejected if cookie points to a server CookieFallback bool `json:"cookie_fallback"` // If garble is set to true, cookie value (server IP and port) would be encrypted. If garble is set to false, cookie value would be plain text. CookieGarble bool `json:"cookie_garble"` // cookie persistence mode CookieMode string `json:"cookie_mode,omitempty"` // cookie name CookieName string `json:"cookie_name"` // HTTP cookie path could be set, only available for insert mode. CookiePath string `json:"cookie_path,omitempty"` // Both session cookie and persistence cookie are supported, if not specified, it's a session cookie. It expires when the browser is closed. CookieTime *LbCookieTime `json:"cookie_time,omitempty"` }
type LbCookieTime ¶
type LbCookieTime struct { // Both session cookie and persistence cookie are supported, Use LbSessionCookieTime for session cookie time setting, Use LbPersistenceCookieTime for persistence cookie time setting Type_ string `json:"type"` // Instead of using HTTP Cookie max-age and relying on client to expire the cookie, max idle time and/or max lifetime of the cookie can be used. Max idle time, if configured, specifies the maximum interval the cookie is valid for from the last time it was seen in a request. It is available for insert mode. CookieMaxIdle int64 `json:"cookie_max_idle,omitempty"` // Max life time, if configured, specifies the maximum interval the cookie is valid for from the first time the cookie was seen in a request. It is available for insert mode. CookieMaxLife int64 `json:"cookie_max_life,omitempty"` }
type LbFastTcpProfile ¶
type LbFastTcpProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // An application profile can be bound to a virtual server to specify the application protocol characteristics. It is used to influence how load balancing is performed. Currently, three types of application profiles are supported: LbFastTCPProfile, LbFastUDPProfile and LbHttpProfile. LbFastTCPProfile or LbFastUDPProfile is typically used when the application is using a custom protocol or a standard protocol not supported by the load balancer. It is also used in cases where the user only wants L4 load balancing mainly because L4 load balancing has much higher performance and scalability, and/or supports connection mirroring. LbHttpProfile is used for both HTTP and HTTPS applications. Though application rules, if bound to the virtual server, can be used to accomplish the same goal, LbHttpProfile is intended to simplify enabling certain common use cases. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // It is used to specify how long a closing TCP connection (both FINs received or a RST is received) should be kept for this application before cleaning up the connection. CloseTimeout int64 `json:"close_timeout,omitempty"` // If flow mirroring is enabled, all the flows to the bounded virtual server are mirrored to the standby node. HaFlowMirroringEnabled bool `json:"ha_flow_mirroring_enabled"` // It is used to configure how long an idle TCP connection in ESTABLISHED state should be kept for this application before cleaning up. IdleTimeout int64 `json:"idle_timeout,omitempty"` }
type LbFastUdpProfile ¶
type LbFastUdpProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // An application profile can be bound to a virtual server to specify the application protocol characteristics. It is used to influence how load balancing is performed. Currently, three types of application profiles are supported: LbFastTCPProfile, LbFastUDPProfile and LbHttpProfile. LbFastTCPProfile or LbFastUDPProfile is typically used when the application is using a custom protocol or a standard protocol not supported by the load balancer. It is also used in cases where the user only wants L4 load balancing mainly because L4 load balancing has much higher performance and scalability, and/or supports connection mirroring. LbHttpProfile is used for both HTTP and HTTPS applications. Though application rules, if bound to the virtual server, can be used to accomplish the same goal, LbHttpProfile is intended to simplify enabling certain common use cases. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // If flow mirroring is enabled, all the flows to the bounded virtual server are mirrored to the standby node. FlowMirroringEnabled bool `json:"flow_mirroring_enabled"` // Though UDP is a connectionless protocol, for the purposes of load balancing, all UDP packets with the same flow signature (source and destination IP/ports and IP protocol) received within the idle timeout period are considered to belong to the same connection and are sent to the same backend server. If no packets are received for idle timeout period, the connection (association between flow signature and the selected server) is cleaned up. IdleTimeout int64 `json:"idle_timeout,omitempty"` }
type LbHttpMonitor ¶
type LbHttpMonitor struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Load balancers monitor the health of backend servers to ensure traffic is not black holed. There are two types of healthchecks: active and passive. Passive healthchecks depend on failures in actual client traffic (e.g. RST from server in response to a client connection) to detect that the server or the application is down. In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Currently, active health monitors are supported for HTTP, HTTPS, TCP, UDP and ICMP protocols. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // num of consecutive checks must fail before marking it down FallCount int64 `json:"fall_count,omitempty"` // the frequency at which the system issues the monitor check (in second) Interval int64 `json:"interval,omitempty"` // If the monitor port is specified, it would override pool member port setting for healthcheck. A port range is not supported. MonitorPort string `json:"monitor_port,omitempty"` // num of consecutive checks must pass before marking it up RiseCount int64 `json:"rise_count,omitempty"` // the number of seconds the target has in which to respond to the monitor request Timeout int64 `json:"timeout,omitempty"` // String to send as part of HTTP health check request body. Valid only for certain HTTP methods like POST. RequestBody string `json:"request_body,omitempty"` // Array of HTTP request headers RequestHeaders []LbHttpRequestHeader `json:"request_headers,omitempty"` // the health check method for HTTP monitor type RequestMethod string `json:"request_method,omitempty"` // URL used for HTTP monitor RequestUrl string `json:"request_url,omitempty"` // HTTP request version RequestVersion string `json:"request_version,omitempty"` // If HTTP response body match string (regular expressions not supported) is specified (using LbHttpMonitor.response_body) then the healthcheck HTTP response body is matched against the specified string and server is considered healthy only if there is a match. If the response body string is not specified, HTTP healthcheck is considered successful if the HTTP response status code is 2xx, but it can be configured to accept other status codes as successful. ResponseBody string `json:"response_body,omitempty"` // The HTTP response status code should be a valid HTTP status code. ResponseStatusCodes []int32 `json:"response_status_codes,omitempty"` }
type LbHttpProfile ¶
type LbHttpProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // An application profile can be bound to a virtual server to specify the application protocol characteristics. It is used to influence how load balancing is performed. Currently, three types of application profiles are supported: LbFastTCPProfile, LbFastUDPProfile and LbHttpProfile. LbFastTCPProfile or LbFastUDPProfile is typically used when the application is using a custom protocol or a standard protocol not supported by the load balancer. It is also used in cases where the user only wants L4 load balancing mainly because L4 load balancing has much higher performance and scalability, and/or supports connection mirroring. LbHttpProfile is used for both HTTP and HTTPS applications. Though application rules, if bound to the virtual server, can be used to accomplish the same goal, LbHttpProfile is intended to simplify enabling certain common use cases. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // If a website is temporarily down or has moved, incoming requests for that virtual server can be temporarily redirected to a URL HttpRedirectTo string `json:"http_redirect_to,omitempty"` // Certain secure applications may want to force communication over SSL, but instead of rejecting non-SSL connections, they may choose to redirect the client automatically to use SSL. HttpRedirectToHttps bool `json:"http_redirect_to_https"` // It is used to specify the HTTP application idle time out, instead of TCP socket setting which should be configured in TCP profile. IdleTimeout int64 `json:"idle_timeout,omitempty"` // NTLM is an authentication protocol that can be used over HTTP. If the flag is set to true, LB will use NTLM challenge/response methodology. Ntlm bool `json:"ntlm"` // If it is not specified, it means that request body size is unlimited. RequestBodySize int64 `json:"request_body_size,omitempty"` // A request with header larger than request_header_size will be processed as best effort whereas a request with header below this specified size is guaranteed to be processed. RequestHeaderSize int64 `json:"request_header_size,omitempty"` // If server doesnt send any packet within this time, the connection is closed. ResponseTimeout int64 `json:"response_timeout,omitempty"` // insert or replace x_forwarded_for XForwardedFor string `json:"x_forwarded_for,omitempty"` }
type LbHttpRedirectAction ¶
type LbHttpRedirectAction struct { // Type of load balancer rule action Type_ string `json:"type"` // HTTP response status code RedirectStatus string `json:"redirect_status"` // The URL that the HTTP request is redirected to RedirectUrl string `json:"redirect_url"` }
This action is used to redirect HTTP request messages to a new URL. The reply_status value specified in this action is used as the status code of HTTP response message which is sent back to client (Normally a browser). The HTTP status code for redirection is 3xx, for example, 301, 302, 303, 307, etc. The redirect_url is the new URL that the HTTP request message is redirected to. Normally browser will send another HTTP request to the new URL after receiving a redirection response message. Captured variables and built-in variables can be used in redirect_url field. For example, to redirect all HTTP requests to HTTPS requests for a virtual server. We create an LbRule without any conditions, add an LbHttpRedirectAction to the rule. Set the redirect_url field of the LbHttpRedirectAction to: https://$_host$_request_uri And set redirect_status to \"302\", which means found. This rule will redirect all HTTP requests to HTTPS server port on the same host.
type LbHttpRejectAction ¶
type LbHttpRejectAction struct { // Type of load balancer rule action Type_ string `json:"type"` // Response message ReplyMessage string `json:"reply_message,omitempty"` // HTTP response status code ReplyStatus string `json:"reply_status"` }
This action is used to reject HTTP request messages. The specified reply_status value is used as the status code for the corresponding HTTP response message which is sent back to client (Normally a browser) indicating the reason it was rejected. Reference official HTTP status code list for your specific HTTP version to set the reply_status properly. LbHttpRejectAction does not support variables.
type LbHttpRequestBodyCondition ¶
type LbHttpRequestBodyCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // HTTP request body BodyValue string `json:"body_value"` // If true, case is significant when comparing HTTP body value. CaseSensitive bool `json:"case_sensitive"` // Match type of HTTP body MatchType string `json:"match_type,omitempty"` }
This condition is used to match the message body of an HTTP request. Typically, only HTTP POST, PATCH, or PUT requests have request body. The match_type field defines how body_value field is used to match the body of HTTP requests.
type LbHttpRequestCookieCondition ¶
type LbHttpRequestCookieCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // If true, case is significant when comparing cookie value. CaseSensitive bool `json:"case_sensitive"` // Name of cookie CookieName string `json:"cookie_name"` // Value of cookie CookieValue string `json:"cookie_value"` // Match type of cookie value MatchType string `json:"match_type,omitempty"` }
This condition is used to match HTTP request messages by cookie which is a specific type of HTTP header. The match_type and case_sensitive define how to compare cookie value.
type LbHttpRequestHeader ¶
type LbHttpRequestHeaderCondition ¶
type LbHttpRequestHeaderCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // If true, case is significant when comparing HTTP header value. CaseSensitive bool `json:"case_sensitive"` // Name of HTTP header HeaderName string `json:"header_name"` // Value of HTTP header HeaderValue string `json:"header_value"` // Match type of HTTP header value MatchType string `json:"match_type,omitempty"` }
This condition is used to match HTTP request messages by HTTP header fields. HTTP header fields are components of the header section of HTTP request and response messages. They define the operating parameters of an HTTP transaction. For example, Cookie, Authorization, User-Agent, etc. One condition can be used to match one header field, to match multiple header fields, multiple conditions must be specified. The match_type field defines how header_value field is used to match HTTP requests. The header_name field does not support match types.
type LbHttpRequestHeaderRewriteAction ¶
type LbHttpRequestHeaderRewriteAction struct { // Type of load balancer rule action Type_ string `json:"type"` // Name of HTTP request header HeaderName string `json:"header_name"` // Value of HTTP request header HeaderValue string `json:"header_value"` }
This action is used to rewrite header fields of matched HTTP request messages to specified new values. One action can be used to rewrite one header field. To rewrite multiple header fields, multiple actions must be defined. Captured variables and built-in variables can be used in the header_value field, header_name field does not support variables.
type LbHttpRequestMethodCondition ¶
type LbHttpRequestMethodCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // Type of HTTP request method Method string `json:"method"` }
This condition is used to match method of HTTP requests. If the method of an HTTP request is same as the method specified in this condition, the HTTP request match this condition. For example, if the method field is set to GET in this condition, any HTTP request with GET method matches the condition.
type LbHttpRequestUriArgumentsCondition ¶
type LbHttpRequestUriArgumentsCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // If true, case is significant when comparing URI arguments. CaseSensitive bool `json:"case_sensitive"` // Match type of URI arguments MatchType string `json:"match_type,omitempty"` // URI arguments, aka query string of URI. UriArguments string `json:"uri_arguments"` }
This condition is used to match URI arguments aka query string of Http request messages, for example, in URI http://exaple.com?foo=1&bar=2, the \"foo=1&bar=2\" is the query string containing URI arguments. In an URI scheme, query string is indicated by the first question mark (\"?\") character and terminated by a number sign (\"#\") character or by the end of the URI. The uri_arguments field can be specified as a regular expression(Set match_type to REGEX). For example, \"foo=(?<x>\\d+)\". It matches HTTP requests whose URI arguments containing \"foo\", the value of foo contains only digits. And the value of foo is captured as $x which can be used in LbRuleAction fields which support variables.
type LbHttpRequestUriCondition ¶
type LbHttpRequestUriCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // If true, case is significant when comparing URI. CaseSensitive bool `json:"case_sensitive"` // Match type of URI MatchType string `json:"match_type,omitempty"` // A string used to identify resource Uri string `json:"uri"` }
This condition is used to match URIs(Uniform Resource Identifier) of HTTP request messages. The URI field can be specified as a regular expression. If an HTTP request message is requesting an URI which matches specified regular expression, it matches the condition. The syntax of whole URI looks like this: scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] This condition matches only the path part of entire URI. When match_type field is specified as REGEX, the uri field is used as a regular expression to match URI path of HTTP requests. For example, to match any URI that has \"/image/\" or \"/images/\", uri field can be specified as: \"/image[s]?/\". Named capturing groups can be used in the uri field to capture substrings of matched URIs and store them in variables for use in LbRuleAction. For example, specify uri field as: \"/news/(?<year>\\d+)/(?<month>\\d+)/(?<article>.*)\" If the URI path is /articles/news/2017/06/xyz.html, then substring \"2017\" is captured in variable year, \"06\" is captured in variable month, and \"xyz.html\" is captured in variable article. These variables can then be used in an LbRuleAction field which supports variables, such as uri field of LbHttpRequestUriRewriteAction. For example, set the uri field of LbHttpRequestUriRewriteAction as: \"/articles/news/$year-$month-$article\" Then the URI path /articles/news/2017/06/xyz.html is rewritten to: \"/articles/news/2017-06-xyz.html\"
type LbHttpRequestUriRewriteAction ¶
type LbHttpRequestUriRewriteAction struct { // Type of load balancer rule action Type_ string `json:"type"` // URI of HTTP request Uri string `json:"uri"` // Query string of URI, typically contains key value pairs, for example: foo1=bar1&foo2=bar2 UriArguments string `json:"uri_arguments,omitempty"` }
This action is used to rewrite URIs in matched HTTP request messages. Specify the uri and uri_arguments fields in this condition to rewrite the matched HTTP request message's URI and URI arguments to the new values. Full URI scheme of HTTP messages have following syntax: scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment] The uri field of this action is used to rewrite the /path part in above scheme. And the uri_arguments field is used to rewrite the query part. Captured variables and built-in variables can be used in the uri and uri_arguments fields. Check the example in LbRuleAction to see how to use variables in this action.
type LbHttpRequestVersionCondition ¶
type LbHttpRequestVersionCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // HTTP version Version string `json:"version"` }
This condition is used to match the HTTP protocol version of the HTTP request messages.
type LbHttpResponseHeaderCondition ¶
type LbHttpResponseHeaderCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // If true, case is significant when comparing HTTP header value. CaseSensitive bool `json:"case_sensitive"` // Name of HTTP header field HeaderName string `json:"header_name"` // Value of HTTP header field HeaderValue string `json:"header_value"` // Match type of HTTP header value MatchType string `json:"match_type,omitempty"` }
This condition is used to match HTTP response messages from backend servers by HTTP header fields. HTTP header fields are components of the header section of HTTP request and response messages. They define the operating parameters of an HTTP transaction. For example, Cookie, Authorization, User-Agent, etc. One condition can be used to match one header field, to match multiple header fields, multiple conditions must be specified. The match_type field defines how header_value field is used to match HTTP responses. The header_name field does not support match types.
type LbHttpResponseHeaderRewriteAction ¶
type LbHttpResponseHeaderRewriteAction struct { // Type of load balancer rule action Type_ string `json:"type"` // Name of a header field of HTTP request message HeaderName string `json:"header_name"` // Value of header field HeaderValue string `json:"header_value"` }
This action is used to rewrite header fields of HTTP response messages to specified new values at HTTP_RESPONSE_REWRITE phase. One action can be used to rewrite one header field. To rewrite multiple header fields, multiple actions must be defined. Captured variables and built-in variables can be used in the header_value field, header_name field does not support variables.
type LbHttpsMonitor ¶
type LbHttpsMonitor struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Load balancers monitor the health of backend servers to ensure traffic is not black holed. There are two types of healthchecks: active and passive. Passive healthchecks depend on failures in actual client traffic (e.g. RST from server in response to a client connection) to detect that the server or the application is down. In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Currently, active health monitors are supported for HTTP, HTTPS, TCP, UDP and ICMP protocols. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // num of consecutive checks must fail before marking it down FallCount int64 `json:"fall_count,omitempty"` // the frequency at which the system issues the monitor check (in second) Interval int64 `json:"interval,omitempty"` // If the monitor port is specified, it would override pool member port setting for healthcheck. A port range is not supported. MonitorPort string `json:"monitor_port,omitempty"` // num of consecutive checks must pass before marking it up RiseCount int64 `json:"rise_count,omitempty"` // the number of seconds the target has in which to respond to the monitor request Timeout int64 `json:"timeout,omitempty"` // authentication depth is used to set the verification depth in the server certificates chain. CertificateChainDepth int64 `json:"certificate_chain_depth,omitempty"` // supported SSL cipher list to servers Ciphers []string `json:"ciphers,omitempty"` // client certificate can be specified to support client authentication. ClientCertificateId string `json:"client_certificate_id,omitempty"` // This flag is set to true when all the ciphers and protocols are secure. It is set to false when one of the ciphers or protocols is insecure. IsSecure bool `json:"is_secure,omitempty"` // SSL versions TLS1.1 and TLS1.2 are supported and enabled by default. SSLv2, SSLv3, and TLS1.0 are supported, but disabled by default. Protocols []string `json:"protocols,omitempty"` // String to send as part of HTTP health check request body. Valid only for certain HTTP methods like POST. RequestBody string `json:"request_body,omitempty"` // Array of HTTP request headers RequestHeaders []LbHttpRequestHeader `json:"request_headers,omitempty"` // the health check method for HTTP monitor type RequestMethod string `json:"request_method,omitempty"` // URL used for HTTP monitor RequestUrl string `json:"request_url,omitempty"` // HTTP request version RequestVersion string `json:"request_version,omitempty"` // If HTTP response body match string (regular expressions not supported) is specified (using LbHttpMonitor.response_body) then the healthcheck HTTP response body is matched against the specified string and server is considered healthy only if there is a match. If the response body string is not specified, HTTP healthcheck is considered successful if the HTTP response status code is 2xx, but it can be configured to accept other status codes as successful. ResponseBody string `json:"response_body,omitempty"` // The HTTP response status code should be a valid HTTP status code. ResponseStatusCodes []int32 `json:"response_status_codes,omitempty"` // server authentication mode ServerAuth string `json:"server_auth,omitempty"` // If server auth type is REQUIRED, server certificate must be signed by one of the trusted Certificate Authorities (CAs), also referred to as root CAs, whose self signed certificates are specified. ServerAuthCaIds []string `json:"server_auth_ca_ids,omitempty"` // A Certificate Revocation List (CRL) can be specified in the server-side SSL profile binding to disallow compromised server certificates. ServerAuthCrlIds []string `json:"server_auth_crl_ids,omitempty"` }
type LbIcmpMonitor ¶
type LbIcmpMonitor struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Load balancers monitor the health of backend servers to ensure traffic is not black holed. There are two types of healthchecks: active and passive. Passive healthchecks depend on failures in actual client traffic (e.g. RST from server in response to a client connection) to detect that the server or the application is down. In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Currently, active health monitors are supported for HTTP, HTTPS, TCP, UDP and ICMP protocols. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // num of consecutive checks must fail before marking it down FallCount int64 `json:"fall_count,omitempty"` // the frequency at which the system issues the monitor check (in second) Interval int64 `json:"interval,omitempty"` // If the monitor port is specified, it would override pool member port setting for healthcheck. A port range is not supported. MonitorPort string `json:"monitor_port,omitempty"` // num of consecutive checks must pass before marking it up RiseCount int64 `json:"rise_count,omitempty"` // the number of seconds the target has in which to respond to the monitor request Timeout int64 `json:"timeout,omitempty"` // The data size(in byte) of the ICMP healthcheck packet DataLength int64 `json:"data_length,omitempty"` }
type LbIpHeaderCondition ¶
type LbIpHeaderCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // Source IP address of HTTP message SourceAddress string `json:"source_address"` }
This condition is used to match IP header fields of HTTP messages. Currently, only the source IP address is supported. IP addresses can be expressed as a single IP address like 10.1.1.1, or a range of IP addresses like 10.1.1.101-10.1.1.160. Both IPv4 and IPv6 addresses are supported.
type LbMonitor ¶
type LbMonitor struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Load balancers monitor the health of backend servers to ensure traffic is not black holed. There are two types of healthchecks: active and passive. Passive healthchecks depend on failures in actual client traffic (e.g. RST from server in response to a client connection) to detect that the server or the application is down. In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Currently, active health monitors are supported for HTTP, HTTPS, TCP, UDP and ICMP protocols. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` }
type LbMonitorListResult ¶
type LbMonitorListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of load balancer monitors Results []LbMonitor `json:"results"` }
type LbPassiveMonitor ¶
type LbPassiveMonitor struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Load balancers monitor the health of backend servers to ensure traffic is not black holed. There are two types of healthchecks: active and passive. Passive healthchecks depend on failures in actual client traffic (e.g. RST from server in response to a client connection) to detect that the server or the application is down. In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Currently, active health monitors are supported for HTTP, HTTPS, TCP, UDP and ICMP protocols. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // When the consecutive failures reach this value, then the member is considered temporarily unavailable for a configurable period MaxFails int64 `json:"max_fails,omitempty"` // After this timeout period, the member is tried again for a new connection to see if it is available. Timeout int64 `json:"timeout,omitempty"` }
type LbPersistenceCookieTime ¶
type LbPersistenceCookieTime struct { // Both session cookie and persistence cookie are supported, Use LbSessionCookieTime for session cookie time setting, Use LbPersistenceCookieTime for persistence cookie time setting Type_ string `json:"type"` // HTTP cookie max-age to expire cookie, only available for insert mode. CookieMaxIdle int64 `json:"cookie_max_idle"` }
type LbPersistenceProfile ¶
type LbPersistenceProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Source-ip persistence ensures all connections from a client (identified by IP address) are sent to the same backend server for a specified period. Cookie persistence allows related client connections, identified by the same cookie in HTTP requests, to be redirected to the same server. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` PersistenceShared bool `json:"persistence_shared"` }
type LbPersistenceProfileListResult ¶
type LbPersistenceProfileListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of load balancer persistence profiles Results []LbPersistenceProfile `json:"results"` }
type LbPool ¶
type LbPool struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // The type of this resource. ResourceType string `json:"resource_type,omitempty"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Active healthchecks are disabled by default and can be enabled for a server pool by binding a health monitor to the pool. Currently, only one active health monitor can be configured per server pool. ActiveMonitorIds []string `json:"active_monitor_ids,omitempty"` // Load balancing algorithm, configurable per pool controls how the incoming connections are distributed among the members. Algorithm string `json:"algorithm,omitempty"` // Load balancer pool support grouping object as dynamic pool members. When member group is defined, members setting should not be specified. MemberGroup *PoolMemberGroup `json:"member_group,omitempty"` // Server pool consists of one or more pool members. Each pool member is identified, typically, by an IP address and a port. Members []PoolMember `json:"members,omitempty"` // A pool is considered active if there are at least certain minimum number of members. MinActiveMembers int64 `json:"min_active_members,omitempty"` // Passive healthchecks are disabled by default and can be enabled by attaching a passive health monitor to a server pool. Each time a client connection to a pool member fails, its failed count is incremented. For pools bound to L7 virtual servers, a connection is considered to be failed and failed count is incremented if any TCP connection errors (e.g. TCP RST or failure to send data) or SSL handshake failures occur. For pools bound to L4 virtual servers, if no response is received to a TCP SYN sent to the pool member or if a TCP RST is received in response to a TCP SYN, then the pool member is considered to have failed and the failed count is incremented. PassiveMonitorId string `json:"passive_monitor_id,omitempty"` // Depending on the topology, Source NAT (SNAT) may be required to ensure traffic from the server destined to the client is received by the load balancer. SNAT can be enabled per pool. If SNAT is not enabled for a pool, then load balancer uses the client IP and port (spoofing) while establishing connections to the servers. This is referred to as no-SNAT or TRANSPARENT mode. SnatTranslation *LbSnatTranslation `json:"snat_translation,omitempty"` // TCP multiplexing allows the same TCP connection between load balancer and the backend server to be used for sending multiple client requests from different client TCP connections. TcpMultiplexingEnabled bool `json:"tcp_multiplexing_enabled,omitempty"` // The maximum number of TCP connections per pool that are idly kept alive for sending future client requests. TcpMultiplexingNumber int64 `json:"tcp_multiplexing_number,omitempty"` }
type LbPoolListResult ¶
type LbPoolListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of pools Results []LbPool `json:"results"` }
type LbPoolMemberStatistics ¶
type LbPoolMemberStatistics struct { // Pool member IP Address IPAddress string `json:"ip_address"` // Pool member port Port string `json:"port,omitempty"` // Pool member statistics counter Statistics LbStatisticsCounter `json:"statistics"` }
type LbPoolMemberStatus ¶
type LbPoolMemberStatus struct { // The healthcheck failure cause when status is DOWN FailureCause string `json:"failure_cause,omitempty"` // Pool member status IPAddress string `json:"ip_address"` LastCheckTime int64 `json:"last_check_time,omitempty"` LastStateChangeTime int64 `json:"last_state_change_time,omitempty"` // Pool member port Port string `json:"port,omitempty"` // Pool member status Status string `json:"status"` }
type LbPoolStatistics ¶
type LbPoolStatistics struct { // Timestamp when the data was last updated LastUpdateTimestamp int64 `json:"last_update_timestamp,omitempty"` // Statistics of load balancer pool members Members []LbPoolMemberStatistics `json:"members,omitempty"` // Load balancer pool identifier PoolId string `json:"pool_id"` // Load balancer statistics counter Statistics LbStatisticsCounter `json:"statistics"` }
type LbPoolStatus ¶
type LbPoolStatus struct { // Timestamp when the data was last updated LastUpdateTimestamp int64 `json:"last_update_timestamp,omitempty"` // Status of load balancer pool members Members []LbPoolMemberStatus `json:"members,omitempty"` // Load balancer pool identifier PoolId string `json:"pool_id"` // Virtual server status Status string `json:"status"` }
type LbRule ¶
type LbRule struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // The type of this resource. ResourceType string `json:"resource_type,omitempty"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // A list of actions to be executed at specified phase when load balancer rule matches. The actions are used to manipulate application traffic, such as rewrite URI of HTTP messages, redirect HTTP messages, etc. Actions []LbRuleAction `json:"actions"` // A list of match conditions used to match application traffic. Multiple match conditions can be specified in one load balancer rule, each match condition defines a criterion to match application traffic. If no match conditions are specified, then the load balancer rule will always match and it is used typically to define default rules. If more than one match condition is specified, then match strategy determines if all conditions should match or any one condition should match for the load balancer rule to considered a match. MatchConditions []LbRuleCondition `json:"match_conditions,omitempty"` // Strategy to define how load balancer rule is considered a match when multiple match conditions are specified in one rule. If match_stragety is set to ALL, then load balancer rule is considered a match only if all the conditions match. If match_strategy is set to ANY, then load balancer rule is considered a match if any one of the conditions match. MatchStrategy string `json:"match_strategy"` // Each load balancer rule is used at a specific phase of load balancer processing. Currently three phases are supported, HTTP_REQUEST_REWRITE, HTTP_FORWARDING and HTTP_RESPONSE_REWRITE. When an HTTP request message is received by load balancer, all HTTP_REQUEST_REWRITE rules, if present are executed in the order they are applied to virtual server. And then if HTTP_FORWARDING rules present, only first matching rule's action is executed, remaining rules are not checked. HTTP_FORWARDING rules can have only one action. If the request is forwarded to a backend server and the response goes back to load balancer, all HTTP_RESPONSE_REWRITE rules, if present, are executed in the order they are applied to the virtual server. Phase string `json:"phase"` }
Load balancer rules allow customization of load balancing behavior using match/action rules. Currently, load balancer rules are supported for only layer 7 virtual servers with application profile LbHttpProfile. Each application rule consists of one or more match conditions and one or more actions. Load balancer rules could be used by different load balancer services.
type LbRuleAction ¶
type LbRuleAction struct { // Type of load balancer rule action Type_ string `json:"type"` // Name of HTTP request header HeaderName string `json:"header_name,omitempty"` // Value of HTTP request header HeaderValue string `json:"header_value,omitempty"` // URI of HTTP request Uri string `json:"uri,omitempty"` // Query string of URI, typically contains key value pairs, for example: foo1=bar1&foo2=bar2 UriArguments string `json:"uri_arguments,omitempty"` // HTTP response status code for type LbHttpRejectAction ReplyStatus string `json:"reply_status,omitempty"` // Response message for type LbHttpRejectAction ReplyMessage string `json:"reply_message,omitempty"` // HTTP response status code for type LbHttpRedirectAction RedirectStatus string `json:"redirect_status,omitempty"` // The URL that the HTTP request is redirected to for type LbHttpRedirectAction RedirectUrl string `json:"redirect_url,omitempty"` // UUID of load balancer pool for type LbSelectPoolAction PoolId string `json:"pool_id,omitempty"` }
Load balancer rule actions are used to manipulate application traffic. Currently load balancer rules can be used at three load balancer processing phases. Each phase has its own supported type of actions. Supported actions in HTTP_REQUST_REWRITE phase are: LbHttpRequestUriRewriteAction LbHttpRequestHeaderRewriteAction Supported actions in HTTP_FORWARDING phase are: LbHttpRejectAction LbHttpRedirectAction LbSelectPoolAction LbSelectServerAction Supported action in HTTP_RESPONSE_REWRITE phase is: LbHttpResponseHeaderRewriteAction If the match type of an LbRuleCondition field is specified as REGEX and named capturing groups are used in the specified regular expression. The groups can be used as variables in LbRuleAction fields. For example, define a rule with LbHttpRequestUriCondition as match condition and LbHttpRequestUriRewriteAction as action. Set match_type field of LbHttpRequestUriCondition to REGEX, and set uri field to \"/news/(?<year>\\d+)/(?<month>\\d+)/(?<article>.*)\". Set uri field of LbHttpRequestUriRewriteAction to: \"/news/$year-$month/$article\" In uri field of LbHttpRequestUriCondition, the (?<year>\\d+), (?<month>\\d+) and (?<article>.*) are named capturing groups, they define variables named $year, $month and $article respectively. The defined variables are used in LbHttpRequestUriRewriteAction. For a matched HTTP request with URI \"/news/2017/06/xyz.html\", the substring \"2017\" is captured in variable $year, \"06\" is captured in variable $month, and \"xyz.html\" is captured in variable $article. The LbHttpRequestUriRewriteAction will rewrite the URI to: \"/news/2017-06/xyz.html\" A set of built-in variables can be used in LbRuleAction as well. The name of built-in variables start with underscore, the name of user defined variables is not allowed to start with underscore. Following are some of the built-in variables: $_scheme: Reference the scheme part of matched HTTP messages, could be \"http\" or \"https\". $_host: Host of matched HTTP messages, for example \"www.example.com\". $_server_port: Port part of URI, it is also the port of the server which accepted a request. Default port is 80 for http and 443 for https. $_uri: The URI path, for example \"/products/sample.html\". $_request_uri: Full original request URI with arguments, for example, \"/products/sample.html?a=b&c=d\". $_args: URI arguments, for instance \"a=b&c=d\" $_is_args: \"?\" if a request has URI arguments, or an empty string otherwise. For the full list of built-in variables, please reference the NSX-T Administrator's Guide.
type LbRuleCondition ¶
type LbRuleCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // Source IP address of HTTP message SourceAddress string `json:"source_address,omitempty"` // TCP source port of HTTP message SourcePort string `json:"source_port,omitempty"` // HTTP version Version string `json:"version,omitempty"` // Type of HTTP request method Method string `json:"method,omitempty"` // If true, case is significant CaseSensitive *bool `json:"case_sensitive,omitempty"` // Match type MatchType string `json:"match_type,omitempty"` // A string used to identify resource Uri string `json:"uri,omitempty"` // URI arguments, aka query string of URI. UriArguments string `json:"uri_arguments,omitempty"` // Name of HTTP header HeaderName string `json:"header_name,omitempty"` // Value of HTTP header HeaderValue string `json:"header_value,omitempty"` // Name of cookie CookieName string `json:"cookie_name,omitempty"` // Value of cookie CookieValue string `json:"cookie_value,omitempty"` // HTTP request body BodyValue string `json:"body_value,omitempty"` }
Match conditions are used to match application traffic passing through load balancers. Multiple match conditions can be specified in one load balancer rule, each match condition defines a criterion for application traffic. If inverse field is set to true, the match result of the condition is inverted. If more than one match condition is specified, match strategy determines if all conditions should match or any one condition should match for the load balancer rule to be considered a match. Currently only HTTP messages are supported by load balancer rules. Each load balancer rule is used at a specific phase of load balancer processing. Currently three phases are supported, HTTP_REQUEST_REWRITE, HTTP_FORWARDING and HTTP_RESPONSE_REWRITE. Each phase supports certain types of match conditions, supported match conditions in HTTP_REQUEST_REWRITE phase are: LbHttpRequestMethodCondition LbHttpRequestUriCondition LbHttpRequestUriArgumentsCondition LbHttpRequestVersionCondition LbHttpRequestHeaderCondition LbHttpRequestCookieCondition LbHttpRequestBodyCondition LbTcpHeaderCondition LbIpHeaderCondition Supported match conditions in HTTP_FORWARDING phase are: LbHttpRequestMethodCondition LbHttpRequestUriCondition LbHttpRequestVersionCondition LbHttpRequestHeaderCondition LbHttpRequestCookieCondition LbHttpRequestBodyCondition LbTcpHeaderCondition LbIpHeaderCondition Supported match condition in HTTP_RESPONSE_REWRITE phase is: LbHttpResponseHeaderCondition
type LbRuleListResult ¶
type LbRuleListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of LB rules Results []LbRule `json:"results"` }
type LbSelectPoolAction ¶
type LbSelectPoolAction struct { // Type of load balancer rule action Type_ string `json:"type"` // UUID of load balancer pool PoolId string `json:"pool_id"` }
This action is used to select a pool for matched HTTP request messages. The pool is specified by UUID. The matched HTTP request messages are forwarded to the specified pool.
type LbSelectServerAction ¶
type LbSelectServerAction struct { // Type of load balancer rule action Type_ string `json:"type"` // IP address of selected backend server Ip string `json:"ip"` // UUID of load balancer pool PoolId string `json:"pool_id"` // This field is not required when the pool_id and ip fields can uniquely identify a pool member and the port of backend service is same as the port of virtual server. Otherwise, this port field must be specified. Port string `json:"port,omitempty"` }
This action is used to select a backend server for matched HTTP request messages. Matched HTTP request messages are forwarded to the specified backend server. The ip and port fields must be specified as single values, IP range and port range are not supported.
type LbServerSslProfile ¶
type LbServerSslProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // The type of this resource. ResourceType string `json:"resource_type,omitempty"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // supported SSL cipher list to client side Ciphers []string `json:"ciphers,omitempty"` // This flag is set to true when all the ciphers and protocols are secure. It is set to false when one of the ciphers or protocols is insecure. IsSecure bool `json:"is_secure,omitempty"` // SSL versions TLS1.1 and TLS1.2 are supported and enabled by default. SSLv2, SSLv3, and TLS1.0 are supported, but disabled by default. Protocols []string `json:"protocols,omitempty"` // SSL session caching allows SSL client and server to reuse previously negotiated security parameters avoiding the expensive public key operation during handshake. SessionCacheEnabled bool `json:"session_cache_enabled"` }
type LbServerSslProfileListResult ¶
type LbServerSslProfileListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of load balancer server SSL profiles Results []LbServerSslProfile `json:"results"` }
type LbService ¶
type LbService struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // The type of this resource. ResourceType string `json:"resource_type,omitempty"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // whether access log is enabled AccessLogEnabled bool `json:"access_log_enabled"` // LBS could be instantiated (or created) on the Logical router, etc. Typically, it could be applied to Tier1 LogicalRouter. It can be attached to Tier0 LogicalRouter either in non-multi-tenant environments or to provide load balancing for infrastructure services offered by the provider. Attachment *common.ResourceReference `json:"attachment,omitempty"` // whether the load balancer service is enabled Enabled bool `json:"enabled"` // Load balancer engine writes information about encountered issues of different severity levels to the error log. This setting is used to define the severity level of the error log. ErrorLogLevel string `json:"error_log_level,omitempty"` // the size of load balancer service Size string `json:"size,omitempty"` // virtual servers can be associated to LbService(which is similar to physical/virtual load balancer), Lb virtual servers, pools and other entities could be defined independently, the virtual server identifier list here would be used to maintain the relationship of LbService and other Lb entities. VirtualServerIds []string `json:"virtual_server_ids,omitempty"` }
type LbServiceDebugInfo ¶
type LbServiceDebugInfo struct { // The application profiles are associated to virtual servers ApplicationProfiles []LbAppProfile `json:"application_profiles,omitempty"` // The client SSL profiles are associated to virtual servers ClientSslProfiles []LbClientSslProfile `json:"client_ssl_profiles,omitempty"` // The load balancer monitors are associated to pools. Monitors []LbMonitor `json:"monitors,omitempty"` // The persistence profiles are associated to virtual servers PersistenceProfiles []LbPersistenceProfile `json:"persistence_profiles,omitempty"` // The pools which are associated to the given load balancer service would be included. The pools could be defined in virtual server default pool, sorry pool or load balancer rule action. Pools []LbPool `json:"pools,omitempty"` // The load balancer rules are associated to virtual servers Rules []LbRule `json:"rules,omitempty"` // The server SSL profiles are associated to virtual servers ServerSslProfiles []LbServerSslProfile `json:"server_ssl_profiles,omitempty"` // Load balancer service setting for a given load balancer service identifier. Service *LbService `json:"service,omitempty"` // The TCP profiles are associated to virtual servers TcpProfiles []LbTcpProfile `json:"tcp_profiles,omitempty"` // The virtual servers which are associated to the given load balancer service would be included. VirtualServers []LbVirtualServer `json:"virtual_servers,omitempty"` }
The information for a given load balancer service could be used for debugging and troubleshooting. It includes load balancer service, associated virtual servers, associated pools, associated profiles such as persistence, SSL, application, associated monitors and associated rules.
type LbServiceListResult ¶
type LbServiceListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of load balancer services Results []LbService `json:"results"` }
type LbServiceStatistics ¶
type LbServiceStatistics struct { // Timestamp when the data was last updated LastUpdateTimestamp int64 `json:"last_update_timestamp,omitempty"` // Statistics of load balancer pools Pools []LbPoolStatistics `json:"pools,omitempty"` // Load balancer service identifier ServiceId string `json:"service_id"` // Load balancer service statistics counter Statistics LbServiceStatisticsCounter `json:"statistics,omitempty"` // Statistics of load balancer virtual servers VirtualServes []LbVirtualServerStatistics `json:"virtual_servers,omitempty"` }
type LbServiceStatisticsCounter ¶
type LbServiceStatisticsCounter struct { // Number of l4 current sessions L4CurrentSessions int64 `json:"l4_current_sessions,omitempty"` // The average number of l4 current sessions per second, the number is averaged over the last 5 one-second intervals. L4CurrentSessionRate float64 `json:"l4_current_session_rate,omitempty"` // Number of l4 maximum sessions L4MaxSessions int64 `json:"l4_max_sessions,omitempty"` // Number of l4 total sessions L4TotalSessions int64 `json:"l4_total_sessions,omitempty"` // Number of l7 current sessions L7CurrentSessions int64 `json:"l7_current_sessions,omitempty"` // The average number of l7 current sessions per second, the number is averaged over the last 5 one-second intervals. L7CurrentSessionRate float64 `json:"l7_current_session_rate,omitempty"` // Number of l7 maximum sessions L7MaxSessions int64 `json:"l7_max_sessions,omitempty"` // Number of l7 total sessions L7TotalSessions int64 `json:"l7_total_sessions,omitempty"` }
type LbServiceStatus ¶
type LbServiceStatus struct { // Ids of load balancer service related active transport nodes ActiveTransportNodes []string `json:"active_transport_nodes,omitempty"` // Cpu usage in percentage CPUUsage int64 `json:"cpu_usage"` // Cpu usage in percentage ErrorMessage string `json:"error_message,omitempty"` // Timestamp when the data was last updated LastUpdateTimestamp int64 `json:"last_update_timestamp,omitempty"` // Memory usage in percentage MemoryUsage int64 `json:"memory_usage"` // status of load balancer pools Pools []LbPoolStatus `json:"pools,omitempty"` // Load balancer service identifier ServiceId string `json:"service_id"` // Status of load balancer service ServiceStatus string `json:"service_status"` // Ids of load balancer service related standby transport nodes StandbyTransportNodes []string `json:"standby_transport_nodes,omitempty"` // status of load balancer virtual servers VirtualServers []LbVirtualServerStatus `json:"virtual_servers,omitempty"` }
type LbSessionCookieTime ¶
type LbSessionCookieTime struct { // Both session cookie and persistence cookie are supported, Use LbSessionCookieTime for session cookie time setting, Use LbPersistenceCookieTime for persistence cookie time setting Type_ string `json:"type"` // Instead of using HTTP Cookie max-age and relying on client to expire the cookie, max idle time and/or max lifetime of the cookie can be used. Max idle time, if configured, specifies the maximum interval the cookie is valid for from the last time it was seen in a request. It is available for insert mode. CookieMaxIdle int64 `json:"cookie_max_idle,omitempty"` // Max life time, if configured, specifies the maximum interval the cookie is valid for from the first time the cookie was seen in a request. It is available for insert mode. CookieMaxLife int64 `json:"cookie_max_life,omitempty"` }
type LbSnatAutoMap ¶
type LbSnatAutoMap struct { // Both SNAT automap and SNAT IP list modes support port overloading which allows the same SNAT IP and port to be used for multiple backend connections as long as the tuple (source IP, source port, destination IP, destination port, IP protocol) after SNAT is performed is unique. The valid number is 1, 2, 4, 8, 16, 32. PortOverload int64 `json:"port_overload,omitempty"` // Load balancers may need to perform SNAT to ensure reverse traffic from the server can be received and processed by them. There are two modes: LbSnatAutoMap uses the load balancer interface IP and an ephemeral port as the source IP and port of the server side connection. LbSnatIpPool allows user to specify one or more IP addresses along with their subnet masks that should be used for SNAT while connecting to any of the servers in the pool. Type_ string `json:"type"` }
type LbSnatIpElement ¶
type LbSnatIpPool ¶
type LbSnatIpPool struct { // Both SNAT automap and SNAT IP list modes support port overloading which allows the same SNAT IP and port to be used for multiple backend connections as long as the tuple (source IP, source port, destination IP, destination port, IP protocol) after SNAT is performed is unique. The valid number is 1, 2, 4, 8, 16, 32. PortOverload int64 `json:"port_overload,omitempty"` // Load balancers may need to perform SNAT to ensure reverse traffic from the server can be received and processed by them. There are two modes: LbSnatAutoMap uses the load balancer interface IP and an ephemeral port as the source IP and port of the server side connection. LbSnatIpPool allows user to specify one or more IP addresses along with their subnet masks that should be used for SNAT while connecting to any of the servers in the pool. Type_ string `json:"type"` // Currently, only one single IP address or IP range is supported. If an IP range is specified, the range may contain no more than 64 IP addresses. IpAddresses []LbSnatIpElement `json:"ip_addresses"` }
type LbSnatTranslation ¶
type LbSnatTranslation struct { // Both SNAT automap and SNAT IP list modes support port overloading which allows the same SNAT IP and port to be used for multiple backend connections as long as the tuple (source IP, source port, destination IP, destination port, IP protocol) after SNAT is performed is unique. The valid number is 1, 2, 4, 8, 16, 32. PortOverload int64 `json:"port_overload,omitempty"` // Load balancers may need to perform SNAT to ensure reverse traffic from the server can be received and processed by them. There are two modes: LbSnatAutoMap uses the load balancer interface IP and an ephemeral port as the source IP and port of the server side connection. LbSnatIpPool allows user to specify one or more IP addresses along with their subnet masks that should be used for SNAT while connecting to any of the servers in the pool. Type_ string `json:"type"` // Currently, only one single IP address or IP range is supported. If an IP range is specified, the range may contain no more than 64 IP addresses. IpAddresses []LbSnatIpElement `json:"ip_addresses,omitempty"` }
type LbSourceIpPersistenceProfile ¶
type LbSourceIpPersistenceProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Source-ip persistence ensures all connections from a client (identified by IP address) are sent to the same backend server for a specified period. Cookie persistence allows related client connections, identified by the same cookie in HTTP requests, to be redirected to the same server. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` PersistenceShared bool `json:"persistence_shared"` // Persistence entries are not synchronized to the HA peer by default. HaPersistenceMirroringEnabled bool `json:"ha_persistence_mirroring_enabled"` // persistence purge setting Purge string `json:"purge"` // When all connections complete (reference count reaches 0), persistence entry timer is started with the expiration time. Timeout int64 `json:"timeout,omitempty"` }
type LbSslCipherAndProtocolListResult ¶
type LbSslCipherAndProtocolListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // List of SSL ciphers Ciphers []LbSslCipherInfo `json:"ciphers"` // List of SSL protocols Protocols []LbSslProtocolInfo `json:"protocols"` }
type LbSslCipherInfo ¶
type LbSslCipherInfo struct { // SSL cipher Cipher string `json:"cipher"` // Default SSL cipher flag IsDefault bool `json:"is_default"` // Secure/insecure SSL cipher flag IsSecure bool `json:"is_secure"` }
SSL cipher
type LbSslProfile ¶
type LbSslProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // The type of this resource. ResourceType string `json:"resource_type,omitempty"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` }
Load balancer abstract SSL profile
type LbSslProfileListResult ¶
type LbSslProfileListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of load balancer SSL profiles Results []LbSslProfile `json:"results"` }
type LbSslProtocolInfo ¶
type LbSslProtocolInfo struct { // Default SSL protocol flag IsDefault bool `json:"is_default"` // Secure/insecure SSL protocol flag IsSecure bool `json:"is_secure"` // SSL protocol Protocol string `json:"protocol"` }
SSL protocol
type LbStatisticsCounter ¶
type LbStatisticsCounter struct { // Number of bytes in BytesIn int64 `json:"bytes_in"` // The average number of inbound bytes per second, the number is averaged over the last 5 one-second intervals. BytesInRate float64 `json:"bytes_in_rate,omitempty"` // Number of bytes out BytesOut int64 `json:"bytes_out"` // The average number of outbound bytes per second, the number is averaged over the last 5 one-second intervals. BytesOutRate float64 `json:"bytes_out_rate,omitempty"` // Number of current sessions CurrentSessions int64 `json:"current_sessions"` // The average number of current sessions per second, the number is averaged over the last 5 one-second intervals. CurrentSessionRate float64 `json:"current_session_rate,omitempty"` // Number of http requests HttpRequests int64 `json:"http_requests"` // The average number of http requests per second, the number is averaged over the last 5 one-second intervals. HttpRequestRate float64 `json:"http_request_rate,omitempty"` // Number of maximum sessions MaxSessions int64 `json:"max_sessions"` // Number of packets in PacketsIn int64 `json:"packets_in,omitempty"` // The average number of inbound packets per second, the number is averaged over the last 5 one-second intervals. PacketsInRate float64 `json:"packets_in_rate,omitempty"` // Number of packets out PacketsOut int64 `json:"packets_out,omitempty"` // The average number of outbound packets per second, the number is averaged over the last 5 one-second intervals. PacketsOutRate float64 `json:"packets_out_rate,omitempty"` // Number of source IP persistence entries SourceIPPersistenceEntrySize int64 `json:"source_ip_persistence_entry_size,omitempty"` // Number of total sessions TotalSessions int64 `json:"total_sessions"` }
type LbTcpHeaderCondition ¶
type LbTcpHeaderCondition struct { // A flag to indicate whether reverse the match result of this condition Inverse bool `json:"inverse"` // Type of load balancer rule condition Type_ string `json:"type"` // TCP source port of HTTP message SourcePort string `json:"source_port"` }
This condition is used to match TCP header fields of HTTP messages. Currently, only the TCP source port is supported. Ports can be expressed as a single port number like 80, or a port range like 1024-1030.
type LbTcpMonitor ¶
type LbTcpMonitor struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Load balancers monitor the health of backend servers to ensure traffic is not black holed. There are two types of healthchecks: active and passive. Passive healthchecks depend on failures in actual client traffic (e.g. RST from server in response to a client connection) to detect that the server or the application is down. In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Currently, active health monitors are supported for HTTP, HTTPS, TCP, UDP and ICMP protocols. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // num of consecutive checks must fail before marking it down FallCount int64 `json:"fall_count,omitempty"` // the frequency at which the system issues the monitor check (in second) Interval int64 `json:"interval,omitempty"` // If the monitor port is specified, it would override pool member port setting for healthcheck. A port range is not supported. MonitorPort string `json:"monitor_port,omitempty"` // num of consecutive checks must pass before marking it up RiseCount int64 `json:"rise_count,omitempty"` // the number of seconds the target has in which to respond to the monitor request Timeout int64 `json:"timeout,omitempty"` // Expected data, if specified, can be anywhere in the response and it has to be a string, regular expressions are not supported. Receive string `json:"receive,omitempty"` // If both send and receive are not specified, then just a TCP connection is established (3-way handshake) to validate server is healthy, no data is sent. Send string `json:"send,omitempty"` }
type LbTcpProfile ¶
type LbTcpProfile struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // The type of this resource. ResourceType string `json:"resource_type,omitempty"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // If the field is not specified, the load balancer will use the default setting per load balancer service flavor. FinWait2Timeout int64 `json:"fin_wait2_timeout,omitempty"` // If the field is not specified, the load balancer will use the default setting per load balancer service flavor. MaxSynRetransmissions int64 `json:"max_syn_retransmissions,omitempty"` // Setting this option to enable or disable Nagle's algorithm. NagleAlgorithmEnabled bool `json:"nagle_algorithm_enabled"` // If the field is not specified, the load balancer will use the default setting per load balancer service flavor. ReceiveWindowSize int64 `json:"receive_window_size,omitempty"` // If the field is not specified, the load balancer will use the default setting per load balancer service flavor. TransmitWindowSize int64 `json:"transmit_window_size,omitempty"` }
TCP profile allows customization of TCP stack behavior for each application. As TCP connections are terminated (or initiated) on the load balancer only for L7 virtual servers, TCP profiles are applicable only to them. As the desired TCP characteristics (e.g. Rx/Tx buffers) may be different for client (typically on WAN) and server (typically on LAN) sides, two separate profiles can be bound to virtual server, one for client-side (LbVirtualServer.client_tcp_profile_id) and another for server-side (LbVirtualServer.server_tcp_profile_id).
type LbTcpProfileListResult ¶
type LbTcpProfileListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // Paginated list of load balancer TCP profiles Results []LbTcpProfile `json:"results"` }
type LbUdpMonitor ¶
type LbUdpMonitor struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // Load balancers monitor the health of backend servers to ensure traffic is not black holed. There are two types of healthchecks: active and passive. Passive healthchecks depend on failures in actual client traffic (e.g. RST from server in response to a client connection) to detect that the server or the application is down. In case of active healthchecks, load balancer itself initiates new connections (or sends ICMP ping) to the servers periodically to check their health, completely independent of any data traffic. Currently, active health monitors are supported for HTTP, HTTPS, TCP, UDP and ICMP protocols. ResourceType string `json:"resource_type"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // num of consecutive checks must fail before marking it down FallCount int64 `json:"fall_count,omitempty"` // the frequency at which the system issues the monitor check (in second) Interval int64 `json:"interval,omitempty"` // If the monitor port is specified, it would override pool member port setting for healthcheck. A port range is not supported. MonitorPort string `json:"monitor_port,omitempty"` // num of consecutive checks must pass before marking it up RiseCount int64 `json:"rise_count,omitempty"` // the number of seconds the target has in which to respond to the monitor request Timeout int64 `json:"timeout,omitempty"` // Expected data, can be anywhere in the response and it has to be a string, regular expressions are not supported. UDP healthcheck is considered failed if there is no server response within the timeout period. Receive string `json:"receive"` // The data to be sent to the monitored server. Send string `json:"send"` }
type LbVirtualServer ¶
type LbVirtualServer struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected. Revision int32 `json:"_revision"` // Timestamp of resource creation CreateTime int64 `json:"_create_time,omitempty"` // ID of the user who created this resource CreateUser string `json:"_create_user,omitempty"` // Timestamp of last modification LastModifiedTime int64 `json:"_last_modified_time,omitempty"` // ID of the user who last modified this resource LastModifiedUser string `json:"_last_modified_user,omitempty"` // Protection status is one of the following: PROTECTED - the client who retrieved the entity is not allowed to modify it. NOT_PROTECTED - the client who retrieved the entity is allowed to modify it REQUIRE_OVERRIDE - the client who retrieved the entity is a super user and can modify it, but only when providing the request header X-Allow-Overwrite=true. UNKNOWN - the _protection field could not be determined for this entity. Protection string `json:"_protection,omitempty"` // Indicates system owned resource SystemOwned bool `json:"_system_owned,omitempty"` // Description of this resource Description string `json:"description,omitempty"` // Defaults to ID if not set DisplayName string `json:"display_name,omitempty"` // Unique identifier of this resource Id string `json:"id,omitempty"` // The type of this resource. ResourceType string `json:"resource_type,omitempty"` // Opaque identifiers meaningful to the API user Tags []common.Tag `json:"tags,omitempty"` // Whether access log is enabled AccessLogEnabled bool `json:"access_log_enabled"` // The application profile defines the application protocol characteristics. It is used to influence how load balancing is performed. Currently, LbFastTCPProfile, LbFastUDPProfile and LbHttpProfile, etc are supported. ApplicationProfileId string `json:"application_profile_id"` // The setting is used when load balancer acts as an SSL server and terminating the client SSL connection ClientSslProfileBinding *ClientSslProfileBinding `json:"client_ssl_profile_binding,omitempty"` // Only L7 virtual server could be configured with customized client side TCP profile. ClientTcpProfileId string `json:"client_tcp_profile_id,omitempty"` // This is a deprecated property, please use 'default_pool_member_ports' instead. If default_pool_member_port is configured and default_pool_member_ports are not specified, both default_pool_member_port and default_pool_member_ports in response payload would return the same port value. If both are specified, default_pool_member_ports setting would take effect with higher priority. DefaultPoolMemberPort string `json:"default_pool_member_port,omitempty"` // If default_pool_member_ports are configured, both default_pool_member_port and default_pool_member_ports in the response payload would include port settings, notice that the value of default_pool_member_port is the first element of default_pool_member_ports. DefaultPoolMemberPorts []string `json:"default_pool_member_ports,omitempty"` // whether the virtual server is enabled Enabled bool `json:"enabled"` // virtual server IP address IpAddress string `json:"ip_address"` // Assigned Internet Protocol in IP header, TCP, UDP are supported. IpProtocol string `json:"ip_protocol,omitempty"` // To ensure one virtual server does not over consume resources, affecting other applications hosted on the same LBS, connections to a virtual server can be capped. If it is not specified, it means that connections are unlimited. MaxConcurrentConnections int64 `json:"max_concurrent_connections,omitempty"` // To ensure one virtual server does not over consume resources, connections to a member can be rate limited. If it is not specified, it means that connection rate is unlimited. MaxNewConnectionRate int64 `json:"max_new_connection_rate,omitempty"` // Persistence profile is used to allow related client connections to be sent to the same backend server. PersistenceProfileId string `json:"persistence_profile_id,omitempty"` // The server pool(LbPool) contains backend servers. Server pool consists of one or more servers, also referred to as pool members, that are similarly configured and are running the same application. PoolId string `json:"pool_id,omitempty"` // This is a deprecated property, please use 'ports' instead. Port setting could be single port for both L7 mode and L4 mode. For L4 mode, a single port range is also supported. The port setting could be a single port or port range such as \"80\", \"1234-1236\". If port is configured and ports are not specified, both port and ports in response payload would return the same port value. If both port and ports are configured, ports setting would take effect with higher priority. Port string `json:"port,omitempty"` // Port setting could be a single port for both L7 mode and L4 mode. For L4 mode, multiple ports or port ranges are also supported such as \"80\", \"443\", \"1234-1236\". If ports is configured, both port and ports in the response payload would include port settings, notice that the port field value is the first element of ports. Ports []string `json:"ports,omitempty"` // Load balancer rules allow customization of load balancing behavior using match/action rules. Currently, load balancer rules are supported for only layer 7 virtual servers with LbHttpProfile. RuleIds []string `json:"rule_ids,omitempty"` // The setting is used when load balancer acts as an SSL client and establishing a connection to the backend server. ServerSslProfileBinding *ServerSslProfileBinding `json:"server_ssl_profile_binding,omitempty"` // Only L7 virtual server could be configured with customized server side TCP profile. ServerTcpProfileId string `json:"server_tcp_profile_id,omitempty"` // When load balancer can not select a backend server to serve the request in default pool or pool in rules, the request would be served by sorry server pool. SorryPoolId string `json:"sorry_pool_id,omitempty"` }
type LbVirtualServerListResult ¶
type LbVirtualServerListResult struct { // The server will populate this field when returing the resource. Ignored on PUT and POST. Links []common.ResourceLink `json:"_links,omitempty"` // Schema for this resource Schema string `json:"_schema,omitempty"` // Link to this resource Self *common.SelfResourceLink `json:"_self,omitempty"` // Opaque cursor to be used for getting next page of records (supplied by current result page) Cursor string `json:"cursor,omitempty"` // Count of results found (across all pages), set only on first page ResultCount int64 `json:"result_count,omitempty"` // If true, results are sorted in ascending order SortAscending bool `json:"sort_ascending,omitempty"` // Field by which records are sorted SortBy string `json:"sort_by,omitempty"` // paginated list of virtual servers Results []LbVirtualServer `json:"results"` }
type LbVirtualServerStatistics ¶
type LbVirtualServerStatistics struct { // Timestamp when the data was last updated LastUpdateTimestamp int64 `json:"last_update_timestamp,omitempty"` // Load balancer virtual server identifier VirtualServerId string `json:"virtual_server_id"` // Virtual server statistics counter Statistics LbStatisticsCounter `json:"statistics"` }
type LbVirtualServerStatus ¶
type PoolMember ¶
type PoolMember struct { // member admin state AdminState string `json:"admin_state,omitempty"` // Backup servers are typically configured with a sorry page indicating to the user that the application is currently unavailable. While the pool is active (a specified minimum number of pool members are active) BACKUP members are skipped during server selection. When the pool is inactive, incoming connections are sent to only the BACKUP member(s). BackupMember bool `json:"backup_member"` // pool member name DisplayName string `json:"display_name,omitempty"` // pool member IP address IpAddress string `json:"ip_address"` // To ensure members are not overloaded, connections to a member can be capped by the load balancer. When a member reaches this limit, it is skipped during server selection. If it is not specified, it means that connections are unlimited. MaxConcurrentConnections int64 `json:"max_concurrent_connections,omitempty"` // If port is specified, all connections will be sent to this port. Only single port is supported. If unset, the same port the client connected to will be used, it could be overrode by default_pool_member_port setting in virtual server. The port should not specified for port range case. Port string `json:"port,omitempty"` // Pool member weight is used for WEIGHTED_ROUND_ROBIN balancing algorithm. The weight value would be ignored in other algorithms. Weight int64 `json:"weight,omitempty"` }
type PoolMemberGroup ¶
type PoolMemberGroup struct { // The list is used to show the customized pool member settings. User can only user pool member action API to update the admin state for a specific IP address. CustomizedMembers []PoolMemberSetting `json:"customized_members,omitempty"` // Load balancer pool support grouping object as dynamic pool members. The IP list of the grouping object such as NSGroup would be used as pool member IP setting. GroupingObject *common.ResourceReference `json:"grouping_object"` // Ip revision filter is used to filter IPv4 or IPv6 addresses from the grouping object. If the filter is not specified, both IPv4 and IPv6 addresses would be used as server IPs. The link local and loopback addresses would be always filtered out. IpRevisionFilter string `json:"ip_revision_filter,omitempty"` // The size is used to define the maximum number of grouping object IP address list. These IP addresses would be used as pool members. If the grouping object includes more than certain number of IP addresses, the redundant parts would be ignored and those IP addresses would not be treated as pool members. // In order to destinguish between zero and unspecified value, use pointer MaxIpListSize *int64 `json:"max_ip_list_size,omitempty"` // If port is specified, all connections will be sent to this port. If unset, the same port the client connected to will be used, it could be overridden by default_pool_member_ports setting in virtual server. The port should not specified for multiple ports case. Port int32 `json:"port,omitempty"` }
type PoolMemberSetting ¶
type PoolMemberSetting struct { // Member admin state AdminState string `json:"admin_state,omitempty"` // Only applicable to static pool members. If supplied for a pool defined by a grouping object, update API would fail. DisplayName string `json:"display_name,omitempty"` // Pool member IP address IpAddress string `json:"ip_address"` // Pool member port number Port string `json:"port,omitempty"` // Only applicable to static pool members. If supplied for a pool defined by a grouping object, update API would fail. Weight int64 `json:"weight,omitempty"` }
The setting is used to add, update or remove pool members from pool. For static pool members, admin_state, display_name and weight can be updated. For dynamic pool members, only admin_state can be updated.
type PoolMemberSettingList ¶
type PoolMemberSettingList struct { // List of pool member settings to be passed to add, update and remove APIs Members []PoolMemberSetting `json:"members"` }
List of PoolMemberSetting
type ServerSslProfileBinding ¶
type ServerSslProfileBinding struct { // authentication depth is used to set the verification depth in the server certificates chain. CertificateChainDepth int64 `json:"certificate_chain_depth,omitempty"` // To support client authentication (load balancer acting as a client authenticating to the backend server), client certificate can be specified in the server-side SSL profile binding ClientCertificateId string `json:"client_certificate_id,omitempty"` // server authentication mode ServerAuth string `json:"server_auth,omitempty"` // If server auth type is REQUIRED, server certificate must be signed by one of the trusted Certificate Authorities (CAs), also referred to as root CAs, whose self signed certificates are specified. ServerAuthCaIds []string `json:"server_auth_ca_ids,omitempty"` // A Certificate Revocation List (CRL) can be specified in the server-side SSL profile binding to disallow compromised server certificates. ServerAuthCrlIds []string `json:"server_auth_crl_ids,omitempty"` // Server SSL profile defines reusable, application-independent server side SSL properties. SslProfileId string `json:"ssl_profile_id,omitempty"` }
Source Files ¶
- client_ssl_profile_binding.go
- lb_active_monitor.go
- lb_app_profile.go
- lb_app_profile_list_result.go
- lb_client_ssl_profile.go
- lb_client_ssl_profile_list_result.go
- lb_cookie_persistence_profile.go
- lb_cookie_time.go
- lb_fast_tcp_profile.go
- lb_fast_udp_profile.go
- lb_http_monitor.go
- lb_http_profile.go
- lb_http_redirect_action.go
- lb_http_reject_action.go
- lb_http_request_body_condition.go
- lb_http_request_cookie_condition.go
- lb_http_request_header.go
- lb_http_request_header_condition.go
- lb_http_request_header_rewrite_action.go
- lb_http_request_method_condition.go
- lb_http_request_uri_arguments_condition.go
- lb_http_request_uri_condition.go
- lb_http_request_uri_rewrite_action.go
- lb_http_request_version_condition.go
- lb_http_response_header_condition.go
- lb_http_response_header_rewrite_action.go
- lb_https_monitor.go
- lb_icmp_monitor.go
- lb_ip_header_condition.go
- lb_monitor.go
- lb_monitor_list_result.go
- lb_passive_monitor.go
- lb_persistence_cookie_time.go
- lb_persistence_profile.go
- lb_persistence_profile_list_result.go
- lb_pool.go
- lb_pool_list_result.go
- lb_pool_member_statistics.go
- lb_pool_member_status.go
- lb_pool_statistics.go
- lb_pool_status.go
- lb_rule.go
- lb_rule_action.go
- lb_rule_condition.go
- lb_rule_list_result.go
- lb_select_pool_action.go
- lb_select_server_action.go
- lb_server_ssl_profile.go
- lb_server_ssl_profile_list_result.go
- lb_service.go
- lb_service_debug_info.go
- lb_service_list_result.go
- lb_service_statisitcs_counter.go
- lb_service_statistics.go
- lb_service_status.go
- lb_session_cookie_time.go
- lb_snat_auto_map.go
- lb_snat_ip_element.go
- lb_snat_ip_pool.go
- lb_snat_translation.go
- lb_source_ip_persistence_profile.go
- lb_ssl_cipher_and_protocol_list_result.go
- lb_ssl_cipher_info.go
- lb_ssl_profile.go
- lb_ssl_profile_list_result.go
- lb_ssl_protocol_info.go
- lb_statistics_counter.go
- lb_tcp_header_condition.go
- lb_tcp_monitor.go
- lb_tcp_profile.go
- lb_tcp_profile_list_result.go
- lb_udp_monitor.go
- lb_virtual_server.go
- lb_virtual_server_list_result.go
- lb_virtual_server_statistics.go
- lb_virtual_server_status.go
- pool_member.go
- pool_member_group.go
- pool_member_setting.go
- pool_member_setting_list.go
- server_ssl_profile_binding.go