## Children (2)

- affinity
  - none
  - ranked
  - single
- balancer

## Provided Capabilities (1)

Name | Dynamic | Other provider points
--- | --- | ---
org.wildfly.undertow.mod_cluster-filter | true | none

## Attributes (28)

- advertise-frequency - The frequency (in milliseconds) that mod-cluster advertises itself on the network

  Type | INT
  Default Value | 10000
  Unit | MILLISECONDS
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The frequency (in milliseconds) that mod-cluster advertises itself on the network",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 10000,
          "unit" : "MILLISECONDS",
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- advertise-path - The path that mod-cluster is registered under.

  Type | STRING
  Default Value | /
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The path that mod-cluster is registered under.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : "/",
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- advertise-protocol - The protocol that is in use.

  Type | STRING
  Default Value | http
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The protocol that is in use.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : "http",
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- advertise-socket-binding - The multicast group and port that is used to advertise.

  Type | STRING
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The multicast group and port that is used to advertise.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "capability-reference" : "org.wildfly.network.socket-binding",
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-constraints" : {"sensitive" : {"socket-binding-ref" : {"type" : "core"}}},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services"
      }

- broken-node-timeout - The amount of time that must elapse before a broken node is removed from the table

  Type | INT
  Default Value | 60000
  Unit | MILLISECONDS
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The amount of time that must elapse before a broken node is removed from the table",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 60000,
          "unit" : "MILLISECONDS",
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- cached-connections-per-thread - The number of connections that will be kept alive indefinitely

  Type | INT
  Default Value | 40
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The number of connections that will be kept alive indefinitely",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 40,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- connection-idle-timeout - The amount of time a connection can be idle before it will be closed. Connections will not time out once the pool size is down to the configured minimum (as configured by cached-connections-per-thread)

  Type | INT
  Default Value | 60
  Unit | SECONDS
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The amount of time a connection can be idle before it will be closed. Connections will not time out once the pool size is down to the configured minimum (as configured by cached-connections-per-thread)",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 60,
          "unit" : "SECONDS",
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- connections-per-thread - The number of connections that will be maintained to backend servers, per IO thread.

  Type | INT
  Default Value | 40
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The number of connections that will be maintained to backend servers, per IO thread.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 40,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- enable-http2 - If the load balancer should attempt to upgrade back end connections to HTTP2. If HTTP2 is not supported HTTP or HTTPS will be used as normal

  Type | BOOLEAN
  Default Value | false
  Is the attribute nillable? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "BOOLEAN"
          },
          "description" : "If the load balancer should attempt to upgrade back end connections to HTTP2. If HTTP2 is not supported HTTP or HTTPS will be used as normal",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "default" : false,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- failover-strategy - Determines how a failover node is chosen, in the event that the node to which a session has affinity is not available.

  Type | STRING
  Default Value | LOAD_BALANCED
  Is the attribute nillable? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Allowed Values | LOAD_BALANCED DETERMINISTIC
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "Determines how a failover node is chosen, in the event that the node to which a session has affinity is not available.",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "default" : "LOAD_BALANCED",
          "allowed" : [
              "LOAD_BALANCED",
              "DETERMINISTIC"
          ],
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- health-check-interval - The frequency of health check pings to backend nodes

  Type | INT
  Default Value | 10000
  Unit | MILLISECONDS
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The frequency of health check pings to backend nodes",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 10000,
          "unit" : "MILLISECONDS",
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- http2-enable-push - If push should be enabled for HTTP/2 connections

  Type | BOOLEAN
  Default Value | true
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "BOOLEAN"
          },
          "description" : "If push should be enabled for HTTP/2 connections",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : true,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- http2-header-table-size - The size of the header table used for HPACK compression, in bytes. This amount of memory will be allocated per connection for compression. Larger values use more memory but may give better compression.

  Type | INT
  Default Value | 4096
  Unit | BYTES
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Min | 1
  Max | 2147483647
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The size of the header table used for HPACK compression, in bytes. This amount of memory will be allocated per connection for compression. Larger values use more memory but may give better compression.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 4096,
          "unit" : "BYTES",
          "min" : 1,
          "max" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- http2-initial-window-size - The flow control window size that controls how quickly the client can send data to the server

  Type | INT
  Default Value | 65535
  Unit | BYTES
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Min | 1
  Max | 2147483647
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The flow control window size that controls how quickly the client can send data to the server",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 65535,
          "unit" : "BYTES",
          "min" : 1,
          "max" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- http2-max-concurrent-streams - The maximum number of HTTP/2 streams that can be active at any time on a single connection

  Type | INT
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Min | 1
  Max | 2147483647
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The maximum number of HTTP/2 streams that can be active at any time on a single connection",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "min" : 1,
          "max" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- http2-max-frame-size - The max HTTP/2 frame size

  Type | INT
  Default Value | 16384
  Unit | BYTES
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Min | 1
  Max | 2147483647
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The max HTTP/2 frame size",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 16384,
          "unit" : "BYTES",
          "min" : 1,
          "max" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- http2-max-header-list-size - The maximum size of request headers the server is prepared to accept

  Type | INT
  Unit | BYTES
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Min | 1
  Max | 2147483647
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The maximum size of request headers the server is prepared to accept",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "unit" : "BYTES",
          "min" : 1,
          "max" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- management-access-predicate - A predicate that is applied to incoming requests to determine if they can perform mod cluster management commands. Provides additional security on top of what is provided by limiting management to requests that originate from the management-socket-binding

  Type | STRING
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "A predicate that is applied to incoming requests to determine if they can perform mod cluster management commands. Provides additional security on top of what is provided by limiting management to requests that originate from the management-socket-binding",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- management-socket-binding - The socket binding of the mod_cluster management address and port. When using mod_cluster two HTTP listeners should be defined, a public one to handle requests, and one bound to the internal network to handle mod cluster commands. This socket binding should correspond to the internal listener, and should not be publicly accessible.

  Type | STRING
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The socket binding of the mod_cluster management address and port. When using mod_cluster two HTTP listeners should be defined, a public one to handle requests, and one bound to the internal network to handle mod cluster commands. This socket binding should correspond to the internal listener, and should not be publicly accessible.",
          "expressions-allowed" : true,
          "required" : true,
          "nillable" : false,
          "capability-reference" : "org.wildfly.network.socket-binding",
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-constraints" : {"sensitive" : {"socket-binding-ref" : {"type" : "core"}}},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services"
      }

- max-ajp-packet-size - The maximum size for AJP packets. Increasing this will allow AJP to work for requests/responses that have a large amount of headers. This is an advanced option, and must be the same between load balancers and backend servers.

  Type | INT
  Default Value | 8192
  Unit | BYTES
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Min | 1
  Max | 2147483647
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The maximum size for AJP packets. Increasing this will allow AJP to work for requests/responses that have a large amount of headers. This is an advanced option, and must be the same between load balancers and backend servers.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 8192,
          "unit" : "BYTES",
          "min" : 1,
          "max" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- max-request-time - The max amount of time that a request to a backend node can take before it is killed

  Type | INT
  Default Value | -1
  Unit | MILLISECONDS
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The max amount of time that a request to a backend node can take before it is killed",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : -1,
          "unit" : "MILLISECONDS",
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- max-retries - The number of times to attempt to retry a request if it fails. Note that if a request is not considered idempotent then it will only be retried if the proxy can be sure it was not sent to the backend server).

  Type | INT
  Default Value | 1
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The number of times to attempt to retry a request if it fails. Note that if a request is not considered idempotent then it will only be retried if the proxy can be sure it was not sent to the backend server).",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 1,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- request-queue-size - The number of requests that can be queued if the connection pool is full before requests are rejected with a 503

  Type | INT
  Default Value | 1000
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The number of requests that can be queued if the connection pool is full before requests are rejected with a 503",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 1000,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- security-key - The security key that is used for the mod-cluster group. All members must use the same security key.

  Type | STRING
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The security key that is used for the mod-cluster group. All members must use the same security key.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- security-realm - The security realm that provides the SSL configuration
  Deprecated Since 4.0.0
  Use the ssl-context attribute to reference a configured SSLContext directly.

  Type | STRING
  Is the attribute nillable? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The security realm that provides the SSL configuration",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "alternatives" : ["ssl-context"],
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "deprecated" : {
              "since" : "4.0.0",
              "reason" : "Use the ssl-context attribute to reference a configured SSLContext directly."
          },
          "access-constraints" : {"sensitive" : {"security-realm-ref" : {"type" : "core"}}},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- ssl-context - Reference to the SSLContext to be used by this filter.

  Type | STRING
  Is the attribute nillable? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "Reference to the SSLContext to be used by this filter.",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "alternatives" : ["security-realm"],
          "capability-reference" : "org.wildfly.security.ssl-context",
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-constraints" : {"sensitive" : {"ssl-ref" : {"type" : "core"}}},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services"
      }

- use-alias - If an alias check is performed

  Type | BOOLEAN
  Default Value | false
  Is the attribute nillable? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "BOOLEAN"
          },
          "description" : "If an alias check is performed",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "default" : false,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- worker - The XNIO worker that is used to send the advertise notifications

  Type | STRING
  Default Value | default
  Is the attribute nillable? | true
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | all-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The XNIO worker that is used to send the advertise notifications",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : "default",
          "capability-reference" : "org.wildfly.io.worker",
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services"
      }

## Operations (2)

- add - Adds a front end mod-proxy load balancer

  Request Parameter | Type | Required | Expressions Allowed | Default value | Description
  --- | --- | --- | --- | --- | ---
  advertise-frequency | INT | false | true | 10000 | The frequency (in milliseconds) that mod-cluster advertises itself on the network
  advertise-path | STRING | false | true | / | The path that mod-cluster is registered under.
  advertise-protocol | STRING | false | true | http | The protocol that is in use.
  advertise-socket-binding | STRING | false | true |  | The multicast group and port that is used to advertise.
  broken-node-timeout | INT | false | true | 60000 | The amount of time that must elapse before a broken node is removed from the table
  cached-connections-per-thread | INT | false | true | 40 | The number of connections that will be kept alive indefinitely
  connection-idle-timeout | INT | false | true | 60 | The amount of time a connection can be idle before it will be closed. Connections will not time out once the pool size is down to the configured minimum (as configured by cached-connections-per-thread)
  connections-per-thread | INT | false | true | 40 | The number of connections that will be maintained to backend servers, per IO thread.
  enable-http2 | BOOLEAN | false | false | false | If the load balancer should attempt to upgrade back end connections to HTTP2. If HTTP2 is not supported HTTP or HTTPS will be used as normal
  failover-strategy | STRING | false | false | LOAD_BALANCED | Determines how a failover node is chosen, in the event that the node to which a session has affinity is not available.
  health-check-interval | INT | false | true | 10000 | The frequency of health check pings to backend nodes
  http2-enable-push | BOOLEAN | false | true | true | If push should be enabled for HTTP/2 connections
  http2-header-table-size | INT | false | true | 4096 | The size of the header table used for HPACK compression, in bytes. This amount of memory will be allocated per connection for compression. Larger values use more memory but may give better compression.
  http2-initial-window-size | INT | false | true | 65535 | The flow control window size that controls how quickly the client can send data to the server
  http2-max-concurrent-streams | INT | false | true |  | The maximum number of HTTP/2 streams that can be active at any time on a single connection
  http2-max-frame-size | INT | false | true | 16384 | The max HTTP/2 frame size
  http2-max-header-list-size | INT | false | true |  | The maximum size of request headers the server is prepared to accept
  management-access-predicate | STRING | false | true |  | A predicate that is applied to incoming requests to determine if they can perform mod cluster management commands. Provides additional security on top of what is provided by limiting management to requests that originate from the management-socket-binding
  management-socket-binding | STRING | true | true |  | The socket binding of the mod_cluster management address and port. When using mod_cluster two HTTP listeners should be defined, a public one to handle requests, and one bound to the internal network to handle mod cluster commands. This socket binding should correspond to the internal listener, and should not be publicly accessible.
  max-ajp-packet-size | INT | false | true | 8192 | The maximum size for AJP packets. Increasing this will allow AJP to work for requests/responses that have a large amount of headers. This is an advanced option, and must be the same between load balancers and backend servers.
  max-request-time | INT | false | true | -1 | The max amount of time that a request to a backend node can take before it is killed
  max-retries | INT | false | true | 1 | The number of times to attempt to retry a request if it fails. Note that if a request is not considered idempotent then it will only be retried if the proxy can be sure it was not sent to the backend server).
  request-queue-size | INT | false | true | 1000 | The number of requests that can be queued if the connection pool is full before requests are rejected with a 503
  security-key | STRING | false | true |  | The security key that is used for the mod-cluster group. All members must use the same security key.
  security-realm | STRING | false | false |  | The security realm that provides the SSL configuration
  ssl-context | STRING | false | false |  | Reference to the SSLContext to be used by this filter.
  use-alias | BOOLEAN | false | false | false | If an alias check is performed
  worker | STRING | false | true | default | The XNIO worker that is used to send the advertise notifications

  Raw DMR model |
      {
          "operation-name" : "add",
          "description" : "Adds a front end mod-proxy load balancer",
          "request-properties" : {
              "advertise-frequency" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The frequency (in milliseconds) that mod-cluster advertises itself on the network",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 10000,
                  "unit" : "MILLISECONDS",
                  "stability" : "default"
              },
              "advertise-path" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The path that mod-cluster is registered under.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : "/",
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "advertise-protocol" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The protocol that is in use.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : "http",
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "advertise-socket-binding" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The multicast group and port that is used to advertise.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "capability-reference" : "org.wildfly.network.socket-binding",
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "broken-node-timeout" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The amount of time that must elapse before a broken node is removed from the table",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 60000,
                  "unit" : "MILLISECONDS",
                  "stability" : "default"
              },
              "cached-connections-per-thread" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The number of connections that will be kept alive indefinitely",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 40,
                  "stability" : "default"
              },
              "connection-idle-timeout" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The amount of time a connection can be idle before it will be closed. Connections will not time out once the pool size is down to the configured minimum (as configured by cached-connections-per-thread)",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 60,
                  "unit" : "SECONDS",
                  "stability" : "default"
              },
              "connections-per-thread" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The number of connections that will be maintained to backend servers, per IO thread.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 40,
                  "stability" : "default"
              },
              "enable-http2" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "BOOLEAN"
                  },
                  "description" : "If the load balancer should attempt to upgrade back end connections to HTTP2. If HTTP2 is not supported HTTP or HTTPS will be used as normal",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "default" : false,
                  "stability" : "default"
              },
              "failover-strategy" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Determines how a failover node is chosen, in the event that the node to which a session has affinity is not available.",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "default" : "LOAD_BALANCED",
                  "allowed" : [
                      "LOAD_BALANCED",
                      "DETERMINISTIC"
                  ],
                  "stability" : "default"
              },
              "health-check-interval" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The frequency of health check pings to backend nodes",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 10000,
                  "unit" : "MILLISECONDS",
                  "stability" : "default"
              },
              "http2-enable-push" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "BOOLEAN"
                  },
                  "description" : "If push should be enabled for HTTP/2 connections",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : true,
                  "stability" : "default"
              },
              "http2-header-table-size" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The size of the header table used for HPACK compression, in bytes. This amount of memory will be allocated per connection for compression. Larger values use more memory but may give better compression.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 4096,
                  "unit" : "BYTES",
                  "min" : 1,
                  "max" : 2147483647,
                  "stability" : "default"
              },
              "http2-initial-window-size" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The flow control window size that controls how quickly the client can send data to the server",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 65535,
                  "unit" : "BYTES",
                  "min" : 1,
                  "max" : 2147483647,
                  "stability" : "default"
              },
              "http2-max-concurrent-streams" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The maximum number of HTTP/2 streams that can be active at any time on a single connection",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "min" : 1,
                  "max" : 2147483647,
                  "stability" : "default"
              },
              "http2-max-frame-size" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The max HTTP/2 frame size",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 16384,
                  "unit" : "BYTES",
                  "min" : 1,
                  "max" : 2147483647,
                  "stability" : "default"
              },
              "http2-max-header-list-size" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The maximum size of request headers the server is prepared to accept",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "unit" : "BYTES",
                  "min" : 1,
                  "max" : 2147483647,
                  "stability" : "default"
              },
              "management-access-predicate" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "A predicate that is applied to incoming requests to determine if they can perform mod cluster management commands. Provides additional security on top of what is provided by limiting management to requests that originate from the management-socket-binding",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "stability" : "default"
              },
              "management-socket-binding" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The socket binding of the mod_cluster management address and port. When using mod_cluster two HTTP listeners should be defined, a public one to handle requests, and one bound to the internal network to handle mod cluster commands. This socket binding should correspond to the internal listener, and should not be publicly accessible.",
                  "expressions-allowed" : true,
                  "required" : true,
                  "nillable" : false,
                  "capability-reference" : "org.wildfly.network.socket-binding",
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "max-ajp-packet-size" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The maximum size for AJP packets. Increasing this will allow AJP to work for requests/responses that have a large amount of headers. This is an advanced option, and must be the same between load balancers and backend servers.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 8192,
                  "unit" : "BYTES",
                  "min" : 1,
                  "max" : 2147483647,
                  "stability" : "default"
              },
              "max-request-time" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The max amount of time that a request to a backend node can take before it is killed",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : -1,
                  "unit" : "MILLISECONDS",
                  "stability" : "default"
              },
              "max-retries" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The number of times to attempt to retry a request if it fails. Note that if a request is not considered idempotent then it will only be retried if the proxy can be sure it was not sent to the backend server).",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 1,
                  "stability" : "default"
              },
              "request-queue-size" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The number of requests that can be queued if the connection pool is full before requests are rejected with a 503",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 1000,
                  "stability" : "default"
              },
              "security-key" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The security key that is used for the mod-cluster group. All members must use the same security key.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "security-realm" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The security realm that provides the SSL configuration",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : ["ssl-context"],
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default",
                  "deprecated" : {
                      "since" : "4.0.0",
                      "reason" : "Use the ssl-context attribute to reference a configured SSLContext directly."
                  }
              },
              "ssl-context" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Reference to the SSLContext to be used by this filter.",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : ["security-realm"],
                  "capability-reference" : "org.wildfly.security.ssl-context",
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "use-alias" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "BOOLEAN"
                  },
                  "description" : "If an alias check is performed",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "default" : false,
                  "stability" : "default"
              },
              "worker" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The XNIO worker that is used to send the advertise notifications",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : "default",
                  "capability-reference" : "org.wildfly.io.worker",
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              }
          },
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "runtime-only" : false
      }

- remove - Removes a mod cluster proxy handler

  Raw DMR model |
      {
          "operation-name" : "remove",
          "description" : "Removes a mod cluster proxy handler",
          "request-properties" : {},
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "restart-required" : "resource-services",
          "runtime-only" : false
      }

## Galleon Features

Galleon features are to be used when creating Galleon feature-packs.

- subsystem.undertow.configuration.filter.mod-cluster

      <feature spec="subsystem.undertow.configuration.filter.mod-cluster">
        <param name="mod-cluster" value="{resource name}"/>
        <param name="advertise-frequency" value="{value}"/>
        <param name="advertise-path" value="{value}"/>
        <param name="advertise-protocol" value="{value}"/>
        <param name="advertise-socket-binding" value="{value}"/>
        <param name="broken-node-timeout" value="{value}"/>
        <param name="cached-connections-per-thread" value="{value}"/>
        <param name="connection-idle-timeout" value="{value}"/>
        <param name="connections-per-thread" value="{value}"/>
        <param name="enable-http2" value="{value}"/>
        <param name="failover-strategy" value="{value}"/>
        <param name="health-check-interval" value="{value}"/>
        <param name="http2-enable-push" value="{value}"/>
        <param name="http2-header-table-size" value="{value}"/>
        <param name="http2-initial-window-size" value="{value}"/>
        <param name="http2-max-concurrent-streams" value="{value}"/>
        <param name="http2-max-frame-size" value="{value}"/>
        <param name="http2-max-header-list-size" value="{value}"/>
        <param name="management-access-predicate" value="{value}"/>
        <param name="management-socket-binding" value="{value}"/>
        <param name="max-ajp-packet-size" value="{value}"/>
        <param name="max-request-time" value="{value}"/>
        <param name="max-retries" value="{value}"/>
        <param name="request-queue-size" value="{value}"/>
        <param name="security-key" value="{value}"/>
        <param name="security-realm" value="{value}"/>
        <param name="ssl-context" value="{value}"/>
        <param name="use-alias" value="{value}"/>
      <feature/>