{ "additionalProperties": false, "description": "All the types of LBVirtualServer extend from this abstract class. This is present for extensibility.", "extends": { "$ref": "PolicyConfigResource }, "id": "LBVirtualServer", "module_id": "PolicyLoadBalancer", "properties": { "_create_time": { "$ref": "EpochMsTimestamp, "can_sort": true, "description": "Timestamp of resource creation", "readonly": true }, "_create_user": { "description": "ID of the user who created this resource", "readonly": true, "type": "string" }, "_last_modified_time": { "$ref": "EpochMsTimestamp, "can_sort": true, "description": "Timestamp of last modification", "readonly": true }, "_last_modified_user": { "description": "ID of the user who last modified this resource", "readonly": true, "type": "string" }, "_links": { "description": "The server will populate this field when returing the resource. Ignored on PUT and POST.", "items": { "$ref": "ResourceLink }, "readonly": true, "title": "References related to this resource", "type": "array" }, "_protection": { "description": "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.", "readonly": true, "title": "Indicates protection status of this resource", "type": "string" }, "_revision": { "description": "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.", "title": "Generation of this resource config", "type": "int" }, "_schema": { "readonly": true, "title": "Schema for this resource", "type": "string" }, "_self": { "$ref": "SelfResourceLink, "readonly": true, "title": "Link to this resource" }, "_system_owned": { "description": "Indicates system owned resource", "readonly": true, "type": "boolean" }, "access_list_control": { "$ref": "LBAccessListControl, "description": "Specifies the access list control to define how to filter the connections from clients.", "required": false, "title": "IP access list control to filter the connections" }, "access_log_enabled": { "default": false, "description": "If access log is enabled, all HTTP requests sent to L7 virtual server are logged to the access log file. Both successful returns information responses(1xx), successful responses(2xx), redirection messages(3xx) and unsuccessful requests, backend server returns 4xx or 5xx, are logged to access log, if enabled. All L4 virtual server connections are also logged to the access log if enabled. The non-significant events such as successful requests are not logged if log_significant_event_only is set to true.", "required": false, "title": "Access log enabled setting", "type": "boolean" }, "application_profile_path": { "description": "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.", "required": true, "title": "Application profile path", "type": "string", "x-vmw-cross-reference": [ { "leftType": [ "LBVirtualServer" ], "relationshipType": "LB_VIRTUAL_SERVER_LB_APP_PROFILE_RELATIONSHIP", "rightType": [ "LBAppProfile" ] } ] }, "children": { "description": "subtree for this type within policy tree containing nested elements.", "items": { "$ref": "ChildPolicyConfigResource }, "required": false, "title": "subtree for this type within policy tree", "type": "array" }, "client_ssl_profile_binding": { "$ref": "LBClientSslProfileBinding, "deprecated": true, "description": "The setting is used when load balancer acts as an SSL server and terminating the client SSL connection. The property is deprecated as NSX-T Load Balancer is deprecated.", "required": false, "title": "Virtual server side SSL binding setting" }, "default_pool_member_ports": { "description": "Default pool member ports when member port is not defined.", "items": { "$ref": "PortElement }, "maxItems": 14, "required": false, "title": "Default pool member ports when member port is not defined.", "type": "array" }, "description": { "can_sort": true, "maxLength": 1024, "title": "Description of this resource", "type": "string" }, "display_name": { "can_sort": true, "description": "Defaults to ID if not set", "maxLength": 255, "title": "Identifier to use when displaying entity in logs or GUI", "type": "string" }, "enabled": { "default": true, "description": "Flag to enable the load balancer virtual server.", "required": false, "title": "whether the virtual server is enabled", "type": "boolean" }, "id": { "can_sort": true, "title": "Unique identifier of this resource", "type": "string" }, "ip_address": { "$ref": "IPAddress, "description": "Configures the IP address of the LBVirtualServer where it receives all client connections and distributes them among the backend servers.", "required": true, "title": "IP address of the LBVirtualServer" }, "lb_persistence_profile_path": { "description": "Path to optional object that enables persistence on a virtual server allowing related client connections to be sent to the same backend server. Persistence is disabled by default.", "required": false, "title": "Persistence Profile used by LBVirtualServer", "type": "string", "x-vmw-cross-reference": [ { "leftType": [ "LBVirtualServer" ], "relationshipType": "LB_VIRTUAL_SERVER_LB_PERSISTENCE_PROFILE_RELATIONSHIP", "rightType": [ "LBPersistenceProfile" ] } ] }, "lb_service_path": { "description": "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 LBService identifier list here would be used to maintain the relationship of LBService and other LB entities.", "required": false, "title": "Path to LBService object for LBVirtualServer", "type": "string", "x-vmw-cross-reference": [ { "leftType": [ "LBVirtualServer" ], "relationshipType": "LB_VIRTUAL_SERVER_LB_SERVICE_RELATIONSHIP", "rightType": [ "LBService" ] } ] }, "log_significant_event_only": { "default": false, "description": "The property log_significant_event_only can take effect only when access_log_enabled is true. If log_significant_event_only is true, significant events are logged in access log. For L4 virtual server, significant event means unsuccessful(error or dropped) TCP/UDP connections. For L7 virtual server, significant event means unsuccessful connections or HTTP/HTTPS requests which have error response code(e.g. 4xx, 5xx).", "required": false, "title": "Log only significant event in access log", "type": "boolean" }, "marked_for_delete": { "default": false, "description": "Intent objects are not directly deleted from the system when a delete is invoked on them. They are marked for deletion and only when all the realized entities for that intent object gets deleted, the intent object is deleted. Objects that are marked for deletion are not returned in GET call. One can use the search API to get these objects.", "readonly": true, "required": false, "title": "Indicates whether the intent object is marked for deletion", "type": "boolean" }, "max_concurrent_connections": { "deprecated": true, "description": "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. The property is deprecated as NSX-T Load Balancer is deprecated.", "maximum": 2147483647, "minimum": 1, "required": false, "title": "Maximum concurrent connection number", "type": "integer" }, "max_new_connection_rate": { "deprecated": true, "description": "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. The property is deprecated as NSX-T Load Balancer is deprecated.", "maximum": 2147483647, "minimum": 1, "required": false, "title": "Maximum new connection rate in connections per second", "type": "integer" }, "overridden": { "default": false, "description": "Global intent objects cannot be modified by the user. However, certain global intent objects can be overridden locally by use of this property. In such cases, the overridden local values take precedence over the globally defined values for the properties.", "readonly": true, "required": false, "title": "Indicates whether this object is the overridden intent object", "type": "boolean" }, "parent_path": { "description": "Path of its parent", "readonly": true, "required": false, "title": "Path of its parent", "type": "string" }, "path": { "description": "Absolute path of this object", "readonly": true, "required": false, "title": "Absolute path of this object", "type": "string" }, "pool_path": { "description": "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.", "required": false, "title": "Default server pool path", "type": "string", "x-vmw-cross-reference": [ { "leftType": [ "LBVirtualServer" ], "relationshipType": "LB_VIRTUAL_SERVER_LB_POOL_RELATIONSHIP", "rightType": [ "LBPool" ] } ] }, "ports": { "description": "Ports contains a list of at least one port or port range such as \"80\", \"1234-1236\". Each port element in the list should be a single port or a single port range.", "items": { "$ref": "PortElement }, "required": true, "title": "Virtual server port number(s) or port range(s)", "type": "array" }, "realization_id": { "description": "This is a UUID generated by the system for realizing the entity object. In most cases this should be same as 'unique_id' of the entity. However, in some cases this can be different because of entities have migrated thier unique identifier to NSX Policy intent objects later in the timeline and did not use unique_id for realization. Realization id is helpful for users to debug data path to correlate the configuration with corresponding intent.", "readonly": true, "required": false, "title": "A unique identifier assigned by the system for realizing intent", "type": "string" }, "relative_path": { "description": "Path relative from its parent", "readonly": true, "required": false, "title": "Relative path of this object", "type": "string" }, "resource_type": { "description": "The type of this resource.", "readonly": false, "type": "string" }, "rules": { "deprecated": true, "description": "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. The property is deprecated as NSX-T Load Balancer is deprecated.", "items": { "$ref": "LBRule }, "maxItems": 4000, "required": false, "title": "List of load balancer rules", "type": "array" }, "server_ssl_profile_binding": { "$ref": "LBServerSslProfileBinding, "deprecated": true, "description": "The setting is used when load balancer acts as an SSL client and establishing a connection to the backend server. The property is deprecated as NSX-T Load Balancer is deprecated.", "required": false, "title": "Pool side SSL binding setting" }, "sorry_pool_path": { "deprecated": true, "description": "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. The property is deprecated as NSX-T Load Balancer is deprecated.", "required": false, "title": "Sorry server pool path", "type": "string", "x-vmw-cross-reference": [ { "leftType": [ "LBVirtualServer" ], "relationshipType": "LB_VIRTUAL_SERVER_LB_POOL_RELATIONSHIP", "rightType": [ "LBPool" ] } ] }, "tags": { "items": { "$ref": "Tag }, "maxItems": 30, "title": "Opaque identifiers meaningful to the API user", "type": "array" }, "unique_id": { "description": "This is a UUID generated by the GM/LM to uniquely identify entites in a federated environment. For entities that are stretched across multiple sites, the same ID will be used on all the stretched sites.", "readonly": true, "required": false, "title": "A unique identifier assigned by the system", "type": "string" } }, "title": "Base class for each type of LBVirtualServer", "type": "object" }