Network Device List Selection Rules Advanced Configuration
----------------------------------------------------------

NDL popups are controlled by GUI Rules at hierarchy levels for model
types. The device selection given GUI Rules, NDLs, NDLRs and Device
Selection Rules are shown in this table.

+----------+--------+------+-------+------+-----------------------------+
| GUI Rule | NDL(s) | NDLR | Use   | Use  | Expected Result             |
|          |        |      | Popup | NDLR |                             |
+==========+========+======+=======+======+=============================+
| N        | N      | N    | *     | *    | Normal Device selection     |
+----------+--------+------+-------+------+-----------------------------+
| N        | Y      | N    | *     | *    | Normal Device selection     |
+----------+--------+------+-------+------+-----------------------------+
| N        | Y      | Y    | *     | *    | NDLR is used as target      |
|          |        |      |       |      | device                      |
+----------+--------+------+-------+------+-----------------------------+
|          |        |      |       |      | Normal Device selection and |
| Y        | Y      | N    | N     | N    | override with NDF in        |
|          |        |      |       |      | workflows                   |
+----------+--------+------+-------+------+-----------------------------+
| Y        | Y      | Y    | Y     | N    | Pop up list of NDLs         |
+----------+--------+------+-------+------+-----------------------------+
| Y        | Y      | Y    | Y     | Y    | Pop up list with NDLR as    |
|          |        |      |       |      | only option                 |
+----------+--------+------+-------+------+-----------------------------+
| Y        | Y      | N    | Y     | Y    | Pop up an empty list with   |
|          |        |      |       |      | NDLR missing message        |
+----------+--------+------+-------+------+-----------------------------+
|          |        |      |       |      | Normal Device selection and |
| Y        | N      | N    | N     | N    | override with NDF in        |
|          |        |      |       |      | workflows                   |
+----------+--------+------+-------+------+-----------------------------+
| Y        | Y      | Y    | N     | N    | NDLR is used as target      |
|          |        |      |       |      | device                      |
+----------+--------+------+-------+------+-----------------------------+
| Y        | Y      | Y    | N     | Y    | NDLR is used as target      |
|          |        |      |       |      | device                      |
+----------+--------+------+-------+------+-----------------------------+
| Y        | Y      | N    | Y     | N    | Pop up list of NDLs (Most   |
|          |        |      |       |      | popular option)             |
+----------+--------+------+-------+------+-----------------------------+

The Rule Model Device Selection Type model also provides this
functionality:

* The NDL device meta is available to the context in Provisioning
  Workflows. For example:

::

    "device_meta": {
       "ndl": {
          "name": "NDL1",
          "pkid": "54dc76c82afa4327de0d218e",
          "data/CallManager": {
             "pkid": "54dc76c72afa4327de0d217f",
             "bkey": "[\"10.120.2.175\", \"8443\", \"P.C\"]"
          },
          "bkey": "[\"NDL1\", \"P.C\"]",
          "data/UnityConnection": {
             "pkid": "54dc76be2afa4327de0d210b",
             "bkey": "[\"172.29.41.72\", \"443\", \"P.C\"]"
          }
       }
    }

* NDL device meta namespace device_meta is available in macros as: {{
  device_meta.???}}, for example:

  ::

   device_meta.ndl.name
   device_meta.ndl.data/CallManager.pkid

* The [ndl] macro is available for use in GUI Rules - similar to
  [hierarchy].

* An API parameter is available for the selected NDL when a GET request
  is sent for the Add form of a Relation. The value of [ndl] in the
  example below is a valid PKID for the NDL. For example:

  ::

    GET /api/v0/relation/UswerCucmCucRel/add/?
        hierarchy=[hierarchy]&
        ndl=[ndl]&
        schema=true&
        schema_rules=true

This parameter is transformed in the subsequent Add calls to devices to a
device parameter.