github.com/vmware/go-vmware-nsxt@v0.0.0-20230223012718-d31b8a1ca05e/loadbalancer/lb_pool.go (about)

     1  /*
     2   * NSX API
     3   *
     4   * VMware NSX REST API
     5   *
     6   * API version: 1.0.0
     7   * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
     8   */
     9  
    10  package loadbalancer
    11  
    12  import (
    13  	"github.com/vmware/go-vmware-nsxt/common"
    14  )
    15  
    16  type LbPool struct {
    17  
    18  	// The server will populate this field when returing the resource. Ignored on PUT and POST.
    19  	Links []common.ResourceLink `json:"_links,omitempty"`
    20  
    21  	// Schema for this resource
    22  	Schema string `json:"_schema,omitempty"`
    23  
    24  	// Link to this resource
    25  	Self *common.SelfResourceLink `json:"_self,omitempty"`
    26  
    27  	// 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.
    28  	Revision int32 `json:"_revision"`
    29  
    30  	// Timestamp of resource creation
    31  	CreateTime int64 `json:"_create_time,omitempty"`
    32  
    33  	// ID of the user who created this resource
    34  	CreateUser string `json:"_create_user,omitempty"`
    35  
    36  	// Timestamp of last modification
    37  	LastModifiedTime int64 `json:"_last_modified_time,omitempty"`
    38  
    39  	// ID of the user who last modified this resource
    40  	LastModifiedUser string `json:"_last_modified_user,omitempty"`
    41  
    42  	// 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.
    43  	Protection string `json:"_protection,omitempty"`
    44  
    45  	// Indicates system owned resource
    46  	SystemOwned bool `json:"_system_owned"`
    47  
    48  	// Description of this resource
    49  	Description string `json:"description,omitempty"`
    50  
    51  	// Defaults to ID if not set
    52  	DisplayName string `json:"display_name,omitempty"`
    53  
    54  	// Unique identifier of this resource
    55  	Id string `json:"id,omitempty"`
    56  
    57  	// The type of this resource.
    58  	ResourceType string `json:"resource_type,omitempty"`
    59  
    60  	// Opaque identifiers meaningful to the API user
    61  	Tags []common.Tag `json:"tags,omitempty"`
    62  
    63  	// 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.
    64  	ActiveMonitorIds []string `json:"active_monitor_ids,omitempty"`
    65  
    66  	// Load balancing algorithm, configurable per pool controls how the incoming connections are distributed among the members.
    67  	Algorithm string `json:"algorithm,omitempty"`
    68  
    69  	// Load balancer pool support grouping object as dynamic pool members. When member group is defined, members setting should not be specified.
    70  	MemberGroup *PoolMemberGroup `json:"member_group,omitempty"`
    71  
    72  	// Server pool consists of one or more pool members. Each pool member is identified, typically, by an IP address and a port.
    73  	Members []PoolMember `json:"members,omitempty"`
    74  
    75  	// A pool is considered active if there are at least certain minimum number of members.
    76  	MinActiveMembers int64 `json:"min_active_members,omitempty"`
    77  
    78  	// 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.
    79  	PassiveMonitorId string `json:"passive_monitor_id,omitempty"`
    80  
    81  	// 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.
    82  	SnatTranslation *LbSnatTranslation `json:"snat_translation,omitempty"`
    83  
    84  	// 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.
    85  	TcpMultiplexingEnabled bool `json:"tcp_multiplexing_enabled,omitempty"`
    86  
    87  	// The maximum number of TCP connections per pool that are idly kept alive for sending future client requests.
    88  	TcpMultiplexingNumber int64 `json:"tcp_multiplexing_number,omitempty"`
    89  }