{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "LbVserver", "type": "object", "description": "A load balancing virtual server configuration that accepts incoming client traffic and distributes it across bound backend services using a configured load balancing algorithm.", "properties": { "name": { "type": "string", "description": "Name for the load balancing virtual server. Must be unique and begin with a letter, number, or underscore. Maximum 127 characters." }, "servicetype": { "type": "string", "description": "Protocol of the service running on the virtual server." }, "ipv46": { "type": "string", "description": "IPv4 or IPv6 address to assign to the virtual server. Usually a VIP address on the NetScaler used as the entry point for client traffic." }, "port": { "type": "integer", "description": "Port number on which the virtual server listens." }, "ipset": { "type": "string", "description": "Name of the IP set to bind to the virtual server. Provides multiple IPs for the virtual server." }, "range": { "type": "integer", "description": "Number of IP addresses that the appliance must generate using the virtual server VIP address and the netmask. Range 2-254." }, "ippattern": { "type": "string", "description": "IP address pattern for identifying packets to be accepted by the virtual server. Used with ipmask." }, "ipmask": { "type": "string", "description": "IP address mask with the IP pattern to form an IP address range for the virtual server." }, "td": { "type": "integer", "description": "Traffic domain identifier. Isolates traffic across virtual servers. Range 0-4094." }, "lbmethod": { "type": "string", "description": "Load balancing method used to select the backend service for each client request." }, "hashlength": { "type": "integer", "description": "Number of bytes to use for the hash value in hash-based load balancing methods. Range 1-4096." }, "netmask": { "type": "string", "description": "IPv4 subnet mask for hashing in SOURCEIPHASH, DESTINATIONIPHASH, and SRCIPDESTIPHASH methods." }, "v6netmasklen": { "type": "integer", "description": "Number of bits in the IPv6 prefix for hash-based LB methods. Range 1-128." }, "backuplbmethod": { "type": "string", "description": "Backup load balancing method used when the primary method fails to select a service." }, "persistencetype": { "type": "string", "description": "Type of persistence for the virtual server. Ensures requests from the same client go to the same service." }, "persistmask": { "type": "string", "description": "IPv4 netmask for source IP persistence. Applied to the source IP before matching for persistence." }, "v6persistmasklen": { "type": "integer", "description": "IPv6 prefix length for source IP persistence. Range 1-128." }, "persistencebackup": { "type": "string", "description": "Backup persistence type for the virtual server." }, "timeout": { "type": "integer", "description": "Persistence timeout in minutes. The period for which persistence sessions are maintained. Range 0-1440." }, "persistavpno": { "type": "array", "description": "AVP numbers to use for Diameter persistence." }, "cookiename": { "type": "string", "description": "Name of the cookie generated by the NetScaler for cookie insert persistence." }, "rule": { "type": "string", "description": "Expression or name of a named expression that the virtual server uses to evaluate client requests. Default is true." }, "listenpolicy": { "type": "string", "description": "Expression identifying traffic accepted by the virtual server. Default is NONE." }, "listenpriority": { "type": "integer", "description": "Priority of the listen policy. Range 0-100." }, "resrule": { "type": "string", "description": "Expression specifying which response to send when the virtual server matches the client request rule." }, "push": { "type": "string", "description": "Process traffic with the push virtual server bound to this virtual server." }, "pushlabel": { "type": "string", "description": "Expression for extracting a label from the request. Used by the push virtual server." }, "pushmulticlients": { "type": "string", "description": "Allow multiple clients to connect to the push virtual server." }, "comment": { "type": "string", "description": "Informational description or comments about the virtual server." }, "clttimeout": { "type": "integer", "description": "Client idle timeout in seconds. Time to wait before closing an idle client connection. Range 0-31536000." }, "somethod": { "type": "string", "description": "Spillover method. Defines the condition under which traffic spills over to the backup virtual server." }, "sopersistence": { "type": "string", "description": "Whether to maintain persistence when spillover occurs." }, "sopersistencetimeout": { "type": "integer", "description": "Persistence timeout in minutes during spillover. Range 2-1440." }, "sothreshold": { "type": "integer", "description": "Threshold value for the spillover method. Meaning varies based on somethod selected." }, "healththreshold": { "type": "integer", "description": "Minimum percentage of UP services required to consider the virtual server as UP. Range 0-100." }, "redirecturl": { "type": "string", "description": "URL to which requests are redirected when all services bound to the virtual server are DOWN." }, "downstateflush": { "type": "string", "description": "Flush all active transactions on all services bound to the virtual server when the state changes to DOWN." }, "disableprimaryondown": { "type": "string", "description": "When a virtual server goes DOWN, remain the primary virtual server in the HA pair so clients continue to connect." }, "insertvserveripport": { "type": "string", "description": "Insert the virtual server IP address and port in the request header." }, "vipheader": { "type": "string", "description": "Name of the HTTP header used to insert the virtual server IP and port." }, "authenticationhost": { "type": "string", "description": "FQDN of the authentication virtual server to which the user is redirected for authentication." }, "authentication": { "type": "string", "description": "Whether authentication is enabled for the virtual server." }, "authn401": { "type": "string", "description": "Whether to use HTTP 401-based authentication instead of redirect-based." }, "authnvsname": { "type": "string", "description": "Name of the authentication virtual server for 401-based authentication." }, "icmpvsrresponse": { "type": "string", "description": "How the NetScaler responds to ICMP ping requests sent to the VIP." }, "rhistate": { "type": "string", "description": "Route health injection state. Whether to advertise the route to the VIP via dynamic routing when the server is UP." }, "newservicerequest": { "type": "integer", "description": "Number of requests to accept on a new service before distributing traffic to all bound services. Range 0-100." }, "newservicerequestunit": { "type": "string", "description": "Unit for the newservicerequest parameter." }, "newservicerequestincrementinterval": { "type": "integer", "description": "Interval in seconds between successive increments for new service request rate. Range 0-3600." }, "minautoscalemembers": { "type": "integer", "description": "Minimum number of members for autoscale. Range 0-5000." }, "maxautoscalemembers": { "type": "integer", "description": "Maximum number of members for autoscale. Range 0-5000." }, "skippersistency": { "type": "string", "description": "Controls persistence behavior when selecting a service for certain virtual server types." }, "appflowlog": { "type": "string", "description": "Whether to log AppFlow records for the virtual server." }, "state": { "type": "string", "description": "Administrative state of the virtual server." }, "connfailover": { "type": "string", "description": "Mode of connection failover for the virtual server in HA deployments." }, "redirurl": { "type": "string", "description": "Redirect URL string configured on the virtual server." }, "curstate": { "type": "string", "description": "Current operational state of the virtual server." }, "effectivestate": { "type": "string", "description": "Effective state of the virtual server considering all factors." }, "status": { "type": "integer", "description": "Current status of the virtual server. 1 indicates UP." }, "lbrrreason": { "type": "integer", "description": "Reason for the last load balancing redirection." }, "totalservices": { "type": "integer", "description": "Total number of services bound to the virtual server." }, "activeservices": { "type": "integer", "description": "Number of active (UP) services bound to the virtual server." }, "statechangetimesec": { "type": "string", "description": "Time when the virtual server state last changed, in date-time format." }, "tickssincelaststatechange": { "type": "integer", "description": "Number of ticks since the last state change." }, "health": { "type": "integer", "description": "Percentage of UP services to total bound services." }, "isgslb": { "type": "boolean", "description": "Whether this virtual server is a GSLB virtual server." } } }