## Provided Capabilities (1)

Name | Dynamic | Other provider points
--- | --- | ---
org.wildfly.mail.session.server | true | /subsystem=mail/mail-session=*/custom=* /subsystem=mail/mail-session=*/server=smtp /subsystem=mail/mail-session=*/server=imap

## Attributes (6)

- credential-reference - Credential (from Credential Store) to authenticate on server

  Type | OBJECT
  Is the attribute nillable? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | resource-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "OBJECT"
          },
          "description" : "Credential (from Credential Store) to authenticate on server",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "alternatives" : ["password"],
          "capability-reference" : "org.wildfly.security.credential-store",
          "stability" : "default",
          "access-constraints" : {"sensitive" : {
              "credential" : {"type" : "core"},
              "mail-server-security" : {"type" : "mail"}
          }},
          "value-type" : {
              "store" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The name of the credential store holding the alias to credential",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "alias" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The alias which denotes stored secret or credential in the store",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "requires" : ["store"],
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "type" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The type of credential this reference is denoting",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "clear-text" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Secret specified using clear text (check credential store way of supplying credential/secrets to services)",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              }
          },
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "resource-services"
      }

- outbound-socket-binding-ref - Outbound Socket binding to mail server

  Type | STRING
  Does the attribute allow expression? | true
  Where is the attribute stored? | configuration
  Access Type | read-write
  Is restarted required? | resource-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "Outbound Socket binding to mail server",
          "expressions-allowed" : true,
          "required" : true,
          "nillable" : false,
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-constraints" : {"sensitive" : {"socket-binding-ref" : {"type" : "core"}}},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "resource-services",
          "capability-reference" : null
      }

- password - Password to authenticate on server

  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? | resource-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "Password to authenticate on server",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "alternatives" : ["credential-reference"],
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-constraints" : {"sensitive" : {
              "credential" : {"type" : "core"},
              "mail-server-security" : {"type" : "mail"}
          }},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "resource-services",
          "capability-reference" : null
      }

- ssl - Does server require SSL?

  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? | resource-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "BOOLEAN"
          },
          "description" : "Does server require SSL?",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : false,
          "stability" : "default",
          "access-constraints" : {"sensitive" : {"mail-server-security" : {"type" : "mail"}}},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "resource-services",
          "capability-reference" : null
      }

- tls - Does server require TLS?

  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? | resource-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "BOOLEAN"
          },
          "description" : "Does server require TLS?",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : false,
          "stability" : "default",
          "access-constraints" : {"sensitive" : {"mail-server-security" : {"type" : "mail"}}},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "resource-services",
          "capability-reference" : null
      }

- username - Username to authenticate on server

  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? | resource-services
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "Username to authenticate on server",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "min-length" : 1,
          "max-length" : 2147483647,
          "stability" : "default",
          "access-constraints" : {"sensitive" : {
              "credential" : {"type" : "core"},
              "mail-server-security" : {"type" : "mail"}
          }},
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "resource-services",
          "capability-reference" : null
      }

## Operations (2)

- add - adds mail server

  Request Parameter | Type | Required | Expressions Allowed | Default value | Description
  --- | --- | --- | --- | --- | ---
  credential-reference | OBJECT | false | false |  | Credential (from Credential Store) to authenticate on server
  outbound-socket-binding-ref | STRING | true | true |  | Outbound Socket binding to mail server
  password | STRING | false | true |  | Password to authenticate on server
  ssl | BOOLEAN | false | true | false | Does server require SSL?
  tls | BOOLEAN | false | true | false | Does server require TLS?
  username | STRING | false | true |  | Username to authenticate on server

  Raw DMR model |
      {
          "operation-name" : "add",
          "description" : "adds mail server",
          "request-properties" : {
              "credential-reference" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "OBJECT"
                  },
                  "description" : "Credential (from Credential Store) to authenticate on server",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : ["password"],
                  "capability-reference" : "org.wildfly.security.credential-store",
                  "stability" : "default",
                  "value-type" : {
                      "store" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "The name of the credential store holding the alias to credential",
                          "expressions-allowed" : false,
                          "required" : false,
                          "nillable" : true,
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      },
                      "alias" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "The alias which denotes stored secret or credential in the store",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "requires" : ["store"],
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      },
                      "type" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "The type of credential this reference is denoting",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      },
                      "clear-text" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "Secret specified using clear text (check credential store way of supplying credential/secrets to services)",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      }
                  }
              },
              "outbound-socket-binding-ref" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Outbound Socket binding to mail server",
                  "expressions-allowed" : true,
                  "required" : true,
                  "nillable" : false,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "password" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Password to authenticate on server",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : ["credential-reference"],
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              },
              "ssl" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "BOOLEAN"
                  },
                  "description" : "Does server require SSL?",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : false,
                  "stability" : "default"
              },
              "tls" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "BOOLEAN"
                  },
                  "description" : "Does server require TLS?",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : false,
                  "stability" : "default"
              },
              "username" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "Username to authenticate on server",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default"
              }
          },
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "restart-required" : "resource-services",
          "runtime-only" : false
      }

- remove - removes server

  Raw DMR model |
      {
          "operation-name" : "remove",
          "description" : "removes server",
          "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.mail.mail-session.server.pop3

      <feature spec="subsystem.mail.mail-session.server.pop3">
        <param name="mail-session" value="{resource name}"/>
        <param name="credential-reference" value="{value}"/>
        <param name="outbound-socket-binding-ref" value="{value}"/>
        <param name="password" value="{value}"/>
        <param name="ssl" value="{value}"/>
        <param name="tls" value="{value}"/>
        <param name="username" value="{value}"/>
      <feature/>