## Provided Capabilities (1)

Name | Dynamic | Other provider points
--- | --- | ---
org.wildfly.security.permission-mapper | true | /subsystem=elytron/custom-permission-mapper=* /subsystem=elytron/constant-permission-mapper=* /subsystem=elytron/logical-permission-mapper=*

## Attributes (2)

- mapping-mode - The mapping mode that should be used in the event of multiple matches.

  Type | STRING
  Default Value | first
  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
  Allowed Values | or unless and xor first
  Stability Level | default
  Raw DMR model |
      {
          "type" : {
              "TYPE_MODEL_VALUE" : "STRING"
          },
          "description" : "The mapping mode that should be used in the event of multiple matches.",
          "expressions-allowed" : true,
          "required" : false,
          "nillable" : true,
          "default" : "first",
          "allowed" : [
              "and",
              "or",
              "xor",
              "unless",
              "first"
          ],
          "stability" : "default",
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

- permission-mappings - The defined permission mappings.

  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" : "The defined permission mappings.",
          "expressions-allowed" : false,
          "required" : false,
          "nillable" : true,
          "min-length" : 0,
          "max-length" : 2147483647,
          "stability" : "default",
          "value-type" : {
              "match-all" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "BOOLEAN"
                  },
                  "description" : "The mapping applies to all identities.",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : [
                      "principals",
                      "roles"
                  ],
                  "stability" : "default"
              },
              "principals" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LIST"
                  },
                  "description" : "Principals to compare when mapping permissions, if the identities principal matches any one in the list it is a match.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : ["match-all"],
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default",
                  "value-type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  }
              },
              "roles" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LIST"
                  },
                  "description" : "Roles to compare when mapping permissions, if the identity is a member of any one in the list it is a match.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : ["match-all"],
                  "min-length" : 1,
                  "max-length" : 2147483647,
                  "stability" : "default",
                  "value-type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  }
              },
              "permissions" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LIST"
                  },
                  "description" : "The permissions to assign in the event of a match.",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : ["permission-sets"],
                  "min-length" : 0,
                  "max-length" : 2147483647,
                  "stability" : "default",
                  "deprecated" : {
                      "since" : "3.0.0",
                      "reason" : "Use permission-sets instead."
                  },
                  "value-type" : {
                      "class-name" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "The fully qualified class name of the permission.",
                          "expressions-allowed" : false,
                          "required" : true,
                          "nillable" : false,
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      },
                      "module" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "The module to use to load the permission.",
                          "expressions-allowed" : false,
                          "required" : false,
                          "nillable" : true,
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      },
                      "target-name" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "The target name to pass to the permission as it is constructed.",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "min-length" : 0,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      },
                      "action" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          },
                          "description" : "The action to pass to the permission as it is constructed.",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "min-length" : 0,
                          "max-length" : 2147483647,
                          "stability" : "default"
                      }
                  }
              },
              "permission-sets" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LIST"
                  },
                  "description" : "The permission sets to assign in the event of a match.",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "alternatives" : ["permissions"],
                  "min-length" : 0,
                  "max-length" : 2147483647,
                  "stability" : "default",
                  "value-type" : {"permission-set" : {
                      "type" : {
                          "TYPE_MODEL_VALUE" : "STRING"
                      },
                      "description" : "A reference to a permission set.",
                      "expressions-allowed" : false,
                      "required" : true,
                      "nillable" : false,
                      "capability-reference" : "org.wildfly.security.permission-set",
                      "min-length" : 1,
                      "max-length" : 2147483647,
                      "stability" : "default"
                  }}
              }
          },
          "access-type" : "read-write",
          "storage" : "configuration",
          "restart-required" : "all-services",
          "capability-reference" : null
      }

## Operations (2)

- add - Add operation for the permission mapper

  Request Parameter | Type | Required | Expressions Allowed | Default value | Description
  --- | --- | --- | --- | --- | ---
  mapping-mode | STRING | false | true | first | The mapping mode that should be used in the event of multiple matches.
  permission-mappings | LIST | false | false |  | The defined permission mappings.

  Raw DMR model |
      {
          "operation-name" : "add",
          "description" : "Add operation for the permission mapper",
          "request-properties" : {
              "mapping-mode" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "STRING"
                  },
                  "description" : "The mapping mode that should be used in the event of multiple matches.",
                  "expressions-allowed" : true,
                  "required" : false,
                  "nillable" : true,
                  "default" : "first",
                  "allowed" : [
                      "and",
                      "or",
                      "xor",
                      "unless",
                      "first"
                  ],
                  "stability" : "default"
              },
              "permission-mappings" : {
                  "type" : {
                      "TYPE_MODEL_VALUE" : "LIST"
                  },
                  "description" : "The defined permission mappings.",
                  "expressions-allowed" : false,
                  "required" : false,
                  "nillable" : true,
                  "min-length" : 0,
                  "max-length" : 2147483647,
                  "stability" : "default",
                  "value-type" : {
                      "match-all" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "BOOLEAN"
                          },
                          "description" : "The mapping applies to all identities.",
                          "expressions-allowed" : false,
                          "required" : false,
                          "nillable" : true,
                          "alternatives" : [
                              "principals",
                              "roles"
                          ],
                          "stability" : "default"
                      },
                      "principals" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "LIST"
                          },
                          "description" : "Principals to compare when mapping permissions, if the identities principal matches any one in the list it is a match.",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "alternatives" : ["match-all"],
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default",
                          "value-type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          }
                      },
                      "roles" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "LIST"
                          },
                          "description" : "Roles to compare when mapping permissions, if the identity is a member of any one in the list it is a match.",
                          "expressions-allowed" : true,
                          "required" : false,
                          "nillable" : true,
                          "alternatives" : ["match-all"],
                          "min-length" : 1,
                          "max-length" : 2147483647,
                          "stability" : "default",
                          "value-type" : {
                              "TYPE_MODEL_VALUE" : "STRING"
                          }
                      },
                      "permissions" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "LIST"
                          },
                          "description" : "The permissions to assign in the event of a match.",
                          "expressions-allowed" : false,
                          "required" : false,
                          "nillable" : true,
                          "alternatives" : ["permission-sets"],
                          "min-length" : 0,
                          "max-length" : 2147483647,
                          "stability" : "default",
                          "deprecated" : {
                              "since" : "3.0.0",
                              "reason" : "Use permission-sets instead."
                          },
                          "value-type" : {
                              "class-name" : {
                                  "type" : {
                                      "TYPE_MODEL_VALUE" : "STRING"
                                  },
                                  "description" : "The fully qualified class name of the permission.",
                                  "expressions-allowed" : false,
                                  "required" : true,
                                  "nillable" : false,
                                  "min-length" : 1,
                                  "max-length" : 2147483647,
                                  "stability" : "default"
                              },
                              "module" : {
                                  "type" : {
                                      "TYPE_MODEL_VALUE" : "STRING"
                                  },
                                  "description" : "The module to use to load the permission.",
                                  "expressions-allowed" : false,
                                  "required" : false,
                                  "nillable" : true,
                                  "min-length" : 1,
                                  "max-length" : 2147483647,
                                  "stability" : "default"
                              },
                              "target-name" : {
                                  "type" : {
                                      "TYPE_MODEL_VALUE" : "STRING"
                                  },
                                  "description" : "The target name to pass to the permission as it is constructed.",
                                  "expressions-allowed" : true,
                                  "required" : false,
                                  "nillable" : true,
                                  "min-length" : 0,
                                  "max-length" : 2147483647,
                                  "stability" : "default"
                              },
                              "action" : {
                                  "type" : {
                                      "TYPE_MODEL_VALUE" : "STRING"
                                  },
                                  "description" : "The action to pass to the permission as it is constructed.",
                                  "expressions-allowed" : true,
                                  "required" : false,
                                  "nillable" : true,
                                  "min-length" : 0,
                                  "max-length" : 2147483647,
                                  "stability" : "default"
                              }
                          }
                      },
                      "permission-sets" : {
                          "type" : {
                              "TYPE_MODEL_VALUE" : "LIST"
                          },
                          "description" : "The permission sets to assign in the event of a match.",
                          "expressions-allowed" : false,
                          "required" : false,
                          "nillable" : true,
                          "alternatives" : ["permissions"],
                          "min-length" : 0,
                          "max-length" : 2147483647,
                          "stability" : "default",
                          "value-type" : {"permission-set" : {
                              "type" : {
                                  "TYPE_MODEL_VALUE" : "STRING"
                              },
                              "description" : "A reference to a permission set.",
                              "expressions-allowed" : false,
                              "required" : true,
                              "nillable" : false,
                              "capability-reference" : "org.wildfly.security.permission-set",
                              "min-length" : 1,
                              "max-length" : 2147483647,
                              "stability" : "default"
                          }}
                      }
                  }
              }
          },
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "restart-required" : "resource-services",
          "runtime-only" : false
      }

- remove - Remove operation for the permission mapper

  Raw DMR model |
      {
          "operation-name" : "remove",
          "description" : "Remove operation for the permission mapper",
          "request-properties" : {},
          "reply-properties" : {},
          "stability" : "default",
          "read-only" : false,
          "restart-required" : "resource-services",
          "runtime-only" : false
      }