> For the complete documentation index, see [llms.txt](https://dev.ishare.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.ishare.eu/licenses-model.md).

# Licenses model

The iSHARE Framework contains the concept of [Licenses](https://framework.ishare.eu/detailed-descriptions/functional/licenses), which allow an Entitled Party to explicitly specify what a Service Consumer is allowed to do with the consumption of a service or with received data. "Licenses" is an attribute which is included in the specifications for the [/delegation endpoint](/authorisation-registry-role/delegation-endpoint.md) (providing delegation evidence) and the [/delegationPolicy endpoint](/authorisation-registry-role/delegation-policy.md) (to request the creation of delegation policies). The licenses attribute can be utilised to define one or more licenses that apply to the outcome of a service (data) consumption. The following scenarios are recognised.

## Single license

Only one license applies. This can be achieved by including one license identifier in the licenses attribute. The following example explains how.

### Example: the received service (data) output may be used for internal use only

```json
{
    "licenses": [
        "https://licenses.ishare.eu/general-internal-use/1.0"
    ]
}
```

## Multiple licenses

Multiple licenses apply. To determine how the licenses relate to each other, it is possible to use the logical operators allOf and anyOf.

* This model allows for infinite nesting
* Best practice is to group licenses from the same category together

The following examples explain how this can be applied.

### Example: the received service (data) output may be used internally or to service an Entitled Party

```json
{
  "licenses": [
    {
      "anyOf": [
        "https://licenses.ishare.eu/general-internal-use/1.0",
        "https://licenses.ishare.eu/general-use-to-service-entitled-party/1.0"
      ]
    }
  ]
}
```

### Example: the received service (data) output may be used internally in the Netherlands or Belgium

```json
{
  "licenses": [
    {
      "allOf": [
        "https://licenses.ishare.eu/general-non-commercial-use/1.0",
        {
          "anyOf": [
            "https://licenses.ishare.eu/country/nl/1.0",
            "https://licenses.ishare.eu/country/be/1.0"
          ]
        }
      ]
    }
  ]
}

```

### Example: the received service (data) output may be reshared with iSHARE adhering parties in the Netherlands or Belgium that are ISO27001 certified

```json
{
  "licenses": [
    {
      "allOf": [
        "https://licenses.ishare.eu/general/resharing-with-adhering-parties/1.0",
        {
          "allOf": [
            {
              "anyOf": [
                "https://licenses.ishare.eu/country/nl",
                "https://licenses.ishare.eu/country/be"
              ]
            },
            "https://licenses.ishare.eu/certification-iso-27001/1.0"
          ]
        }
      ]
    }
  ]
}

```
