github.com/vmware/go-vmware-nsxt@v0.0.0-20230223012718-d31b8a1ca05e/loadbalancer/lb_virtual_server.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 LbVirtualServer 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,omitempty"`
    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  	// Whether access log is enabled
    64  	AccessLogEnabled bool `json:"access_log_enabled"`
    65  
    66  	// 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.
    67  	ApplicationProfileId string `json:"application_profile_id"`
    68  
    69  	// The setting is used when load balancer acts as an SSL server and terminating the client SSL connection
    70  	ClientSslProfileBinding *ClientSslProfileBinding `json:"client_ssl_profile_binding,omitempty"`
    71  
    72  	// Only L7 virtual server could be configured with customized client side TCP profile.
    73  	ClientTcpProfileId string `json:"client_tcp_profile_id,omitempty"`
    74  
    75  	// 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.
    76  	DefaultPoolMemberPort string `json:"default_pool_member_port,omitempty"`
    77  
    78  	// 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.
    79  	DefaultPoolMemberPorts []string `json:"default_pool_member_ports,omitempty"`
    80  
    81  	// whether the virtual server is enabled
    82  	Enabled bool `json:"enabled"`
    83  
    84  	// virtual server IP address
    85  	IpAddress string `json:"ip_address"`
    86  
    87  	// Assigned Internet Protocol in IP header, TCP, UDP are supported.
    88  	IpProtocol string `json:"ip_protocol,omitempty"`
    89  
    90  	// 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.
    91  	MaxConcurrentConnections int64 `json:"max_concurrent_connections,omitempty"`
    92  
    93  	// 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.
    94  	MaxNewConnectionRate int64 `json:"max_new_connection_rate,omitempty"`
    95  
    96  	// Persistence profile is used to allow related client connections to be sent to the same backend server.
    97  	PersistenceProfileId string `json:"persistence_profile_id,omitempty"`
    98  
    99  	// 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.
   100  	PoolId string `json:"pool_id,omitempty"`
   101  
   102  	// 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.
   103  	Port string `json:"port,omitempty"`
   104  
   105  	// 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.
   106  	Ports []string `json:"ports,omitempty"`
   107  
   108  	// 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.
   109  	RuleIds []string `json:"rule_ids,omitempty"`
   110  
   111  	// The setting is used when load balancer acts as an SSL client and establishing a connection to the backend server.
   112  	ServerSslProfileBinding *ServerSslProfileBinding `json:"server_ssl_profile_binding,omitempty"`
   113  
   114  	// Only L7 virtual server could be configured with customized server side TCP profile.
   115  	ServerTcpProfileId string `json:"server_tcp_profile_id,omitempty"`
   116  
   117  	// 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.
   118  	SorryPoolId string `json:"sorry_pool_id,omitempty"`
   119  }