Well-Known Resource IDs
=======================

All JSON-RPC requests must be directed to a URL on the device's HTTPS service.
The path component of this URL is called resource ID (RID). The list below
defines the resource IDs for interfaces that serve as entry points into the
API:

```py
# Python example: create a proxy for a well-known RID
from xeruskvm.rpc import devsettings
snmp_proxy = devsettings.Snmp("/snmp", agent)
```

In contrast, object references returned from the device typically have cryptic
resource IDs like `/radmopaque/radm.KvmPort:1.0.0/P_000D5D363929_0`. These "opaque"
IDs are subject to change and should not be hard-coded in programs.

See the legend below for the meaning of placeholders like `<serial_port>`.

| Resource ID                       | Interface                     | Comment                       |
|-----------------------------------|-------------------------------|-------------------------------|
| `/auth`                           | auth.AuthManager              |                               |
| `/auth/currentUser`               | usermgmt.User                 | currently authenticated user  |
| `/auth/ldap`                      | auth.LdapManager              |                               |
| `/auth/radius`                    | auth.RadiusManager            |                               |
| `/auth/role/<role_name>`          | usermgmt.Role                 |                               |
| `/auth/role`                      | usermgmt.RoleManager          |                               |
| `/auth/tacplus`                   | auth.TacPlusManager           |                               |
| `/auth/user`                      | usermgmt.UserManager          |                               |
| `/auth/user/<user_name>`          | usermgmt.User                 |                               |
| `/bulk`                           | bulkrpc.BulkRequest           |                               |
| `/bulkcfg`                        | bulkcfg.BulkConfiguration     |                               |
| `/cgi-bin/fwupdate_progress.cgi`  | firmware.UpdateStatus         |                               |
| `/datetime`                       | datetime.DateTime             |                               |
| `/debuglog`                       | logging.DebugLog              |                               |
| `/diag`                           | diag.DiagLogSettings          |                               |
| `/event_engine`                   | event.Engine                  |                               |
| `/eventlog`                       | logging.EventLog              |                               |
| `/eventservice`                   | event.Service                 |                               |
| `/firmware`                       | firmware.Firmware             |                               |
| `/fitness`                        | fitness.Fitness               |                               |
| `/hwhealth`                       | fitness.HardwareHealth        |                               |
| `/luaservice`                     | luaservice.Manager            |                               |
| `/model/peripheraldevicemanager`  | peripheral.DeviceManager      |                               |
| `/model/peripheraldeviceslot/<dev_slot>`        | peripheral.DeviceSlot  |                        |
| `/model/peripheraldeviceslot/<dev_slot>/device` | sensors.Sensor         |                        |
| `/net/diag`                       | net.Diagnostics               |                               |
| `/net`                            | net.Net                       |                               |
| `/net/services`                   | net.Services                  |                               |
| `/ns`                             | jsonrpc.NameService           |                               |
| `/production`                     | production.Production         |                               |
| `/radm/keysetmanager`             | radm.KeySetManager            |                               |
| `/radm/kvmmanager`                | radm.KvmManager               |                               |
| `/rawcfg`                         | rawcfg.RawConfiguration       |                               |
| `/rdm/rdm`                        | rdm.Rdm                       |                               |
| `/res_mon`                        | res_mon.ResMon                |                               |
| `/security`                       | security.Security             |                               |
| `/serial`                         | serial.PortDispatcher         |                               |
| `/serial/<serial_port>`           | serial.SerialPort             |                               |
| `/server_ssl_cert`                | cert.ServerSSLCert            |                               |
| `/session`                        | session.SessionManager        |                               |
| `/smtp`                           | devsettings.Smtp              |                               |
| `/snmp`                           | devsettings.Snmp              |                               |
| `/system`                         | sys.System                    |                               |
| `/usb`                            | usb.Usb                       |                               |
| `/zeroconf`                       | devsettings.Zeroconf          |                               |

## Legend

| Placeholder       | Meaning                                                  |
|-------------------|----------------------------------------------------------|
| `<user_name>`     | Login name of user                                       |
| `<role_name>`     | Name of user role                                        |
| `<dev_slot>`      | Index of peripheral device slot (0-based)                |
| `<serial_port>`   | Name of serial port, usually `main`                      |
