## Provided Capabilities (1)

Name | Dynamic | Other provider points
--- | --- | ---
org.wildfly.network.socket-binding | true | none

## Attributes (10)

- bound - Whether an actual socket using this socket binding configuration has been bound.

  Type | BOOLEAN
  Is the attribute nillable? | true
  Where is the attribute stored? | runtime
  Access Type | read-only
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "BOOLEAN"
          },
          "description" : "Whether an actual socket using this socket binding configuration has been bound.",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "stability" : "default",
          "access-type" : "read-only",
          "storage" : "runtime",
          "restart-required" : null,
          "capability-reference" : null
      }

- bound-address - The address to which the actual socket using this socket binding configuration has been bound, or undefined if no socket has been bound.

  Type | STRING
  Is the attribute nillable? | true
  Where is the attribute stored? | runtime
  Access Type | read-only
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The address to which the actual socket using this socket binding configuration has been bound, or undefined if no socket has been bound.",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-type" : "read-only",
          "storage" : "runtime",
          "restart-required" : null,
          "capability-reference" : null
      }

- bound-port - The port to which the actual socket using this socket binding configuration has been bound, or undefined if no socket has been bound.

  Type | INT
  Is the attribute nillable? | true
  Where is the attribute stored? | runtime
  Access Type | read-only
  Min | 1
  Max | 2147483647
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "The port to which the actual socket using this socket binding configuration has been bound, or undefined if no socket has been bound.",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "min" : 1,
          "max" : 2147483647,
          "stability" : "default",
          "access-type" : "read-only",
          "storage" : "runtime",
          "restart-required" : null,
          "capability-reference" : null
      }

- client-mappings - Specifies zero or more client mappings for this socket binding. A client connecting to this socket should use the destination address specified in the mapping that matches its desired outbound interface. This allows for advanced network topologies that use either network address translation, or have bindings on multiple network interfaces to function. Each mapping should be evaluated in declared order, with the first successful match used to determine the destination.

  Type | LIST
  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" : "LIST"
          },
          "description" : "Specifies zero or more client mappings for this socket binding. A client connecting to this socket should use the destination address specified in the mapping that matches its desired outbound interface. This allows for advanced network topologies that use either network address translation, or have bindings on multiple network interfaces to function. Each mapping should be evaluated in declared order, with the first successful match used to determine the destination.",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "min-length" : 0,
          "max-length" : 2147483647,
          "stability" : "default",
          "value-type" : {
              "source-network" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Source network the client connection binds on. This value is in the form of ip/netmask. A client should match this value against the desired client host network interface, and if matched the client should connect to the corresponding destination values. If omitted this mapping should match any interface.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "stability" : "default"
              },
              "destination-address" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The destination address that a client should connect to if the source-network matches. This value can either be a hostname or an IP address.",
                  "expressions-allowed" : true,
                  "required" : true,
                  "nillable" : false,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "destination-port" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "The destination port that a client should connect to if the source-network matches. If omitted this mapping will reuse the effective socket binding port.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "min" : 0,
                  "max" : 65535,
                  "stability" : "default"
              }
          },
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- fixed-port - Whether the port value should remain fixed even if numeric offsets are applied to the other sockets in the socket group.

  Type | BOOLEAN
  Default Value | false
  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" : "Whether the port value should remain fixed even if numeric offsets are applied to the other sockets in the socket group.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : false,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- interface - Name of the interface to which the socket should be bound, or, for multicast sockets, the interface on which it should listen. This should be one of the declared interfaces.

  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" : "Name of the interface to which the socket should be bound, or, for multicast sockets, the interface on which it should listen. This should be one of the declared interfaces.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "capability-reference" : "org.wildfly.network.interface",
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services"
      }

- multicast-address - Multicast address on which the socket should receive multicast traffic. If unspecified, the socket will not be configured to receive multicast.

  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" : "Multicast address on which the socket should receive multicast traffic. If unspecified, the socket will not be configured to receive multicast.",
          "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
      }

- multicast-port - Port on which the socket should receive multicast traffic. Must be configured if 'multicast-address' is configured.

  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 | 65535
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "Port on which the socket should receive multicast traffic. Must be configured if 'multicast-address' is configured.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "min" : 1,
          "max" : 65535,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- name - The name of the socket. Services which need to access the socket configuration information will find it using this name.

  Type | STRING
  Where is the attribute stored? | configuration
  Access Type | read-only
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The name of the socket. Services which need to access the socket configuration information will find it using this name.",
          "expressions-allowed" : false,
          "required" : true,
          "nillable" : false,
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-type" : "read-only",
          "storage" : "configuration",
          "restart-required" : null,
          "capability-reference" : null
      }

- port - Number of the port to which the socket should be bound.

  Type | INT
  Default Value | 0
  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 | 0
  Max | 65535
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "INT"
          },
          "description" : "Number of the port to which the socket should be bound.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : 0,
          "min" : 0,
          "max" : 65535,
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

## Operations (2)

- add - Adds a socket binding configuration to the group.

  Request Parameter | Type | Required | Expressions Allowed | Default value | Description
  --- | --- | --- | --- | --- | ---
  client-mappings | LIST | false | false |  | Specifies zero or more client mappings for this socket binding. A client connecting to this socket should use the destination address specified in the mapping that matches its desired outbound interface. This allows for advanced network topologies that use either network address translation, or have bindings on multiple network interfaces to function. Each mapping should be evaluated in declared order, with the first successful match used to determine the destination.
  fixed-port | BOOLEAN | false | true | false | Whether the port value should remain fixed even if numeric offsets are applied to the other sockets in the socket group.
  interface | STRING | false | true |  | Name of the interface to which the socket should be bound, or, for multicast sockets, the interface on which it should listen. This should be one of the declared interfaces.
  multicast-address | STRING | false | true |  | Multicast address on which the socket should receive multicast traffic. If unspecified, the socket will not be configured to receive multicast.
  multicast-port | INT | false | true |  | Port on which the socket should receive multicast traffic. Must be configured if 'multicast-address' is configured.
  port | INT | false | true | 0 | Number of the port to which the socket should be bound.

  Raw DMR model |
      {
          "operation-name" : "add",
          "description" : "Adds a socket binding configuration to the group.",
          "request-properties" : {
              "client-mappings" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LIST"
                  },
                  "description" : "Specifies zero or more client mappings for this socket binding. A client connecting to this socket should use the destination address specified in the mapping that matches its desired outbound interface. This allows for advanced network topologies that use either network address translation, or have bindings on multiple network interfaces to function. Each mapping should be evaluated in declared order, with the first successful match used to determine the destination.",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "min-length" : 0,
                  "max-length" : 2147483647,
                  "stability" : "default",
                  "value-type" : {
                      "source-network" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "Source network the client connection binds on. This value is in the form of ip/netmask. A client should match this value against the desired client host network interface, and if matched the client should connect to the corresponding destination values. If omitted this mapping should match any interface.",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "stability" : "default"
                      },
                      "destination-address" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "The destination address that a client should connect to if the source-network matches. This value can either be a hostname or an IP address.",
                          "expressions-allowed" : true,
                          "required" : true,
                          "nillable" : false,
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      },
                      "destination-port" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "INT"
                          },
                          "description" : "The destination port that a client should connect to if the source-network matches. If omitted this mapping will reuse the effective socket binding port.",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "min" : 0,
                          "max" : 65535,
                          "stability" : "default"
                      }
                  }
              },
              "fixed-port" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "BOOLEAN"
                  },
                  "description" : "Whether the port value should remain fixed even if numeric offsets are applied to the other sockets in the socket group.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : false,
                  "stability" : "default"
              },
              "interface" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Name of the interface to which the socket should be bound, or, for multicast sockets, the interface on which it should listen. This should be one of the declared interfaces.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "capability-reference" : "org.wildfly.network.interface",
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "multicast-address" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Multicast address on which the socket should receive multicast traffic. If unspecified, the socket will not be configured to receive multicast.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "multicast-port" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "Port on which the socket should receive multicast traffic. Must be configured if 'multicast-address' is configured.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "min" : 1,
                  "max" : 65535,
                  "stability" : "default"
              },
              "port" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "INT"
                  },
                  "description" : "Number of the port to which the socket should be bound.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : 0,
                  "min" : 0,
                  "max" : 65535,
                  "stability" : "default"
              }
          },
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "restart-required" : "all-services",
          "runtime-only" : false
      }

- remove - Removes a socket binding configuration from the group.

  Raw DMR model |
      {
          "operation-name" : "remove",
          "description" : "Removes a socket binding configuration from the group.",
          "request-properties" : {},
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "restart-required" : "all-services",
          "runtime-only" : false
      }

## Galleon Features

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

- socket-binding-group.socket-binding

      <feature spec="socket-binding-group.socket-binding">
        <param name="socket-binding" value="{resource name}"/>
        <param name="socket-binding-group" value="{resource name}"/>
        <param name="client-mappings" value="{value}"/>
        <param name="fixed-port" value="{value}"/>
        <param name="interface" value="{value}"/>
        <param name="multicast-address" value="{value}"/>
        <param name="multicast-port" value="{value}"/>
        <param name="port" value="{value}"/>
      <feature/>