# Hierarchy For All Packages

Package Hierarchies:

- com.io7m.stonesignal.protocol.admin.v1,
- com.io7m.stonesignal.protocol.data.v1,
- com.io7m.stonesignal.protocol.device.v1,
- com.io7m.stonesignal.server,
- com.io7m.stonesignal.server.admin_api_v1,
- com.io7m.stonesignal.server.audit,
- com.io7m.stonesignal.server.clock,
- com.io7m.stonesignal.server.cmdline,
- com.io7m.stonesignal.server.configuration,
- com.io7m.stonesignal.server.data_api_v1,
- com.io7m.stonesignal.server.database,
- com.io7m.stonesignal.server.database.internal,
- com.io7m.stonesignal.server.database.internal.tables,
- com.io7m.stonesignal.server.database.internal.tables.records,
- com.io7m.stonesignal.server.device_api_v1,
- com.io7m.stonesignal.server.devices,
- com.io7m.stonesignal.server.errors,
- com.io7m.stonesignal.server.http,
- com.io7m.stonesignal.server.internal,
- com.io7m.stonesignal.server.telemetry,
- com.io7m.stonesignal.server.tls

## Class Hierarchy

- java.lang.Object
  - org.jooq.impl.CatalogImpl (implements org.jooq.Catalog)
    - com.io7m.stonesignal.server.database.internal.DefaultCatalog
  - com.io7m.darco.api.DDatabaseQueryAbstract<T,P,R> (implements com.io7m.darco.api.DDatabaseQueryType<P,R>)
    - com.io7m.stonesignal.server.database.StDatabaseQueryAbstract<P,R>
      - com.io7m.stonesignal.server.database.StDBAuditSearch (implements com.io7m.stonesignal.server.database.StDBAuditSearchType)
      - com.io7m.stonesignal.server.database.StDBDeviceGetByID (implements com.io7m.stonesignal.server.database.StDBDeviceGetByIDType)
      - com.io7m.stonesignal.server.database.StDBDeviceGetByKey (implements com.io7m.stonesignal.server.database.StDBDeviceGetByKeyType)
      - com.io7m.stonesignal.server.database.StDBDeviceLocationsGet (implements com.io7m.stonesignal.server.database.StDBDeviceLocationsGetType)
      - com.io7m.stonesignal.server.database.StDBDeviceLocationUpdatePut (implements com.io7m.stonesignal.server.database.StDBDeviceLocationUpdatePutType)
      - com.io7m.stonesignal.server.database.StDBDeviceLocationUpdateSearch (implements com.io7m.stonesignal.server.database.StDBDeviceLocationUpdateSearchType)
      - com.io7m.stonesignal.server.database.StDBDevicePut (implements com.io7m.stonesignal.server.database.StDBDevicePutType)
      - com.io7m.stonesignal.server.database.StDBDevicesGet (implements com.io7m.stonesignal.server.database.StDBDevicesGetType)
  - com.io7m.darco.postgres.DPQDatabaseFactory<C,N,T,Q,D> (implements com.io7m.darco.api.DDatabaseFactoryType<C,N,T,Q,D>)
    - com.io7m.stonesignal.server.database.StDatabaseFactory (implements com.io7m.stonesignal.server.database.StDatabaseFactoryType)
  - com.io7m.stonesignal.server.database.internal.Keys
  - org.jooq.impl.SchemaImpl (implements org.jooq.Schema)
    - com.io7m.stonesignal.server.database.internal.DefaultSchema
  - com.io7m.stonesignal.server.admin_api_v1.St1AdminHDeviceGetByID
  - com.io7m.stonesignal.server.admin_api_v1.St1AdminHDeviceGetByKey
  - com.io7m.stonesignal.server.admin_api_v1.St1AdminHDevicePut
  - com.io7m.stonesignal.protocol.admin.v1.St1AdminProtocol
  - com.io7m.stonesignal.server.admin_api_v1.St1AdminProtocolMapperCBOR
  - com.io7m.stonesignal.server.admin_api_v1.St1AdminProtocolMapperJSON
  - com.io7m.stonesignal.server.data_api_v1.St1DataHDeviceGetByID
  - com.io7m.stonesignal.server.data_api_v1.St1DataHDeviceLocationHistory
  - com.io7m.stonesignal.server.data_api_v1.St1DataHDeviceLocationsGet
  - com.io7m.stonesignal.server.data_api_v1.St1DataHDevicesGet
  - com.io7m.stonesignal.protocol.data.v1.St1DataProtocol
  - com.io7m.stonesignal.server.data_api_v1.St1DataProtocolMapperCBOR
  - com.io7m.stonesignal.server.data_api_v1.St1DataProtocolMapperJSON
  - com.io7m.stonesignal.server.device_api_v1.St1DeviceLocationPut
  - com.io7m.stonesignal.protocol.device.v1.St1DeviceProtocol
  - com.io7m.stonesignal.server.device_api_v1.St1DeviceProtocolMapperCBOR
  - com.io7m.stonesignal.server.device_api_v1.St1DeviceProtocolMapperJSON
  - com.io7m.stonesignal.server.admin_api_v1.StAdminAPI
  - com.io7m.stonesignal.server.cmdline.StCmdServer (implements com.io7m.quarrel.core.QCommandType)
  - com.io7m.stonesignal.server.configuration.StConfigurationService (implements com.io7m.stonesignal.server.configuration.StConfigurationServiceType)
  - com.io7m.stonesignal.server.data_api_v1.StDataAPI
  - com.io7m.stonesignal.server.database.StDatabaseRoles
  - com.io7m.stonesignal.server.device_api_v1.StDeviceAPI
  - com.io7m.stonesignal.server.http.StHTTPRequestTimeFilter (implements io.helidon.webserver.http.Filter)
  - com.io7m.stonesignal.server.http.StHTTPServerRequestContextExtractor (implements io.opentelemetry.context.propagation.TextMapGetter<C>)
  - com.io7m.stonesignal.server.StMain (implements java.lang.Runnable)
  - com.io7m.stonesignal.server.telemetry.StMetricsService (implements com.io7m.stonesignal.server.telemetry.StMetricsServiceType)
  - com.io7m.stonesignal.server.internal.StServer (implements com.io7m.stonesignal.server.StServerType)
  - com.io7m.stonesignal.server.clock.StServerClock (implements com.io7m.repetoir.core.RPServiceType)
  - com.io7m.stonesignal.server.StServers (implements com.io7m.stonesignal.server.StServerFactoryType)
  - com.io7m.stonesignal.server.errors.StStandardErrorCodes
  - com.io7m.stonesignal.server.telemetry.StTelemetryNoOp (implements com.io7m.stonesignal.server.telemetry.StTelemetryServiceType)
  - com.io7m.stonesignal.server.telemetry.StTelemetryService (implements com.io7m.stonesignal.server.telemetry.StTelemetryServiceType)
  - com.io7m.stonesignal.server.telemetry.StTelemetryServices (implements com.io7m.stonesignal.server.telemetry.StTelemetryServiceFactoryType)
  - com.io7m.stonesignal.server.tls.StTLSContext
  - com.io7m.stonesignal.server.tls.StTLSContextService (implements com.io7m.stonesignal.server.tls.StTLSContextServiceType)
  - com.io7m.stonesignal.server.tls.StTLSReloader (implements java.lang.AutoCloseable, com.io7m.repetoir.core.RPServiceType)
  - com.io7m.stonesignal.server.StVersion
  - com.io7m.stonesignal.server.admin_api_v1.StVersions (implements io.helidon.webserver.http.Handler)
  - com.io7m.stonesignal.server.data_api_v1.StVersions (implements io.helidon.webserver.http.Handler)
  - com.io7m.stonesignal.server.device_api_v1.StVersions (implements io.helidon.webserver.http.Handler)
  - org.jooq.impl.TableImpl<R>
    - com.io7m.stonesignal.server.database.internal.tables.Audit
    - com.io7m.stonesignal.server.database.internal.tables.DeviceLocationUpdates
      - com.io7m.stonesignal.server.database.internal.tables.DeviceLocationUpdates.DeviceLocationUpdatesPath (implements org.jooq.Path<R>)
    - com.io7m.stonesignal.server.database.internal.tables.Devices
      - com.io7m.stonesignal.server.database.internal.tables.Devices.DevicesPath (implements org.jooq.Path<R>)
    - com.io7m.stonesignal.server.database.internal.tables.SchemaVersion
  - org.jooq.impl.TableRecordImpl<R> (implements org.jooq.TableRecord<R>)
    - com.io7m.stonesignal.server.database.internal.tables.records.AuditRecord
    - org.jooq.impl.UpdatableRecordImpl<R> (implements org.jooq.UpdatableRecord<R>)
      - com.io7m.stonesignal.server.database.internal.tables.records.DeviceLocationUpdatesRecord
      - com.io7m.stonesignal.server.database.internal.tables.records.DevicesRecord
      - com.io7m.stonesignal.server.database.internal.tables.records.SchemaVersionRecord
  - com.io7m.stonesignal.server.database.internal.Tables
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - com.io7m.stonesignal.server.errors.StException (implements com.io7m.seltzer.api.SStructuredErrorExceptionType<C>)

## Interface Hierarchy

- java.lang.AutoCloseable
  - com.io7m.darco.api.DDatabaseConnectionType<T>
    - com.io7m.stonesignal.server.database.StDatabaseConnectionType
  - com.io7m.darco.api.DDatabaseTransactionType
    - com.io7m.stonesignal.server.database.StDatabaseTransactionType
  - com.io7m.darco.api.DDatabaseType<C,N,T,Q>
    - com.io7m.stonesignal.server.database.StDatabaseType (also extends com.io7m.repetoir.core.RPServiceType)
  - com.io7m.stonesignal.server.telemetry.StMetricsServiceType (also extends com.io7m.repetoir.core.RPServiceType)
  - com.io7m.stonesignal.server.StServerType
- com.io7m.darco.api.DDatabaseFactoryType<C,N,T,Q,D>
  - com.io7m.stonesignal.server.database.StDatabaseFactoryType
- com.io7m.darco.api.DDatabaseQueryProviderType<T,P,R,Q>
  - com.io7m.stonesignal.server.database.StDatabaseQueryProviderType<P,R,Q>
- com.io7m.darco.api.DDatabaseQueryType<P,R>
  - com.io7m.stonesignal.server.database.StDBAuditSearchType
  - com.io7m.stonesignal.server.database.StDBDeviceGetByIDType
  - com.io7m.stonesignal.server.database.StDBDeviceGetByKeyType
  - com.io7m.stonesignal.server.database.StDBDeviceLocationsGetType
  - com.io7m.stonesignal.server.database.StDBDeviceLocationUpdatePutType
  - com.io7m.stonesignal.server.database.StDBDeviceLocationUpdateSearchType
  - com.io7m.stonesignal.server.database.StDBDevicePutType
  - com.io7m.stonesignal.server.database.StDBDevicesGetType
- com.io7m.darco.api.DDatabaseTelemetryType
  - com.io7m.stonesignal.server.telemetry.StTelemetryServiceType (also extends com.io7m.repetoir.core.RPServiceType)
- com.io7m.repetoir.core.RPServiceType
  - com.io7m.stonesignal.server.configuration.StConfigurationServiceType
  - com.io7m.stonesignal.server.database.StDatabaseType (also extends com.io7m.darco.api.DDatabaseType<C,N,T,Q>)
  - com.io7m.stonesignal.server.telemetry.StMetricsServiceType (also extends java.lang.AutoCloseable)
  - com.io7m.stonesignal.server.telemetry.StTelemetryServiceType (also extends com.io7m.darco.api.DDatabaseTelemetryType)
  - com.io7m.stonesignal.server.tls.StTLSContextServiceType
- com.io7m.stonesignal.protocol.admin.v1.St1AdminMessageType
- com.io7m.stonesignal.protocol.data.v1.St1DataMessageType
- com.io7m.stonesignal.protocol.device.v1.St1DeviceMessageType
- com.io7m.stonesignal.server.StServerFactoryType
- com.io7m.stonesignal.server.telemetry.StTelemetryServiceFactoryType

## Enum Class Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - com.io7m.stonesignal.server.StConfiguration.DatabaseKind
    - com.io7m.stonesignal.server.StConfiguration.OpenTelemetry.OTLPProtocol
    - com.io7m.stonesignal.server.http.StFormat

## Record Class Hierarchy

- java.lang.Object
  - java.lang.Record
    - com.io7m.stonesignal.protocol.admin.v1.St1AdminDevice
    - com.io7m.stonesignal.protocol.admin.v1.St1AdminDeviceGetByID (implements com.io7m.stonesignal.protocol.admin.v1.St1AdminMessageType)
    - com.io7m.stonesignal.protocol.admin.v1.St1AdminDeviceGetByKey (implements com.io7m.stonesignal.protocol.admin.v1.St1AdminMessageType)
    - com.io7m.stonesignal.protocol.admin.v1.St1AdminDeviceGetResponse (implements com.io7m.stonesignal.protocol.admin.v1.St1AdminMessageType)
    - com.io7m.stonesignal.protocol.admin.v1.St1AdminDevicePut (implements com.io7m.stonesignal.protocol.admin.v1.St1AdminMessageType)
    - com.io7m.stonesignal.protocol.admin.v1.St1AdminError (implements com.io7m.stonesignal.protocol.admin.v1.St1AdminMessageType)
    - com.io7m.stonesignal.protocol.admin.v1.St1AdminOK (implements com.io7m.stonesignal.protocol.admin.v1.St1AdminMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataDevice
    - com.io7m.stonesignal.protocol.data.v1.St1DataDeviceGetByID (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataDeviceGetResponse (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataDeviceLocationHistoryGet (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataDeviceLocationHistoryGetResponse (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataDeviceLocationsGet (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataDeviceLocationsGetResponse (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataDevicesGet (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataDevicesGetResponse (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataError (implements com.io7m.stonesignal.protocol.data.v1.St1DataMessageType)
    - com.io7m.stonesignal.protocol.data.v1.St1DataLocation
    - com.io7m.stonesignal.protocol.device.v1.St1DeviceError (implements com.io7m.stonesignal.protocol.device.v1.St1DeviceMessageType)
    - com.io7m.stonesignal.protocol.device.v1.St1DeviceLocationUpdate (implements com.io7m.stonesignal.protocol.device.v1.St1DeviceMessageType)
    - com.io7m.stonesignal.protocol.device.v1.St1DeviceOK (implements com.io7m.stonesignal.protocol.device.v1.St1DeviceMessageType)
    - com.io7m.stonesignal.server.audit.StAuditEvent
    - com.io7m.stonesignal.server.StConfiguration
    - com.io7m.stonesignal.server.StConfiguration.AdminAPI
    - com.io7m.stonesignal.server.StConfiguration.DataAPI
    - com.io7m.stonesignal.server.StConfiguration.Database
    - com.io7m.stonesignal.server.StConfiguration.DeviceAPI
    - com.io7m.stonesignal.server.StConfiguration.OpenTelemetry
    - com.io7m.stonesignal.server.StConfiguration.OpenTelemetry.Logs
    - com.io7m.stonesignal.server.StConfiguration.OpenTelemetry.Metrics
    - com.io7m.stonesignal.server.StConfiguration.OpenTelemetry.Traces
    - com.io7m.stonesignal.server.StConfiguration.TLS
    - com.io7m.stonesignal.server.StConfiguration.TLSStore
    - com.io7m.stonesignal.server.database.StDatabaseConfiguration (implements com.io7m.darco.postgres.DPQDatabaseConfigurationType)
    - com.io7m.stonesignal.server.database.StDBAuditSearchParameters
    - com.io7m.stonesignal.server.database.StDBDeviceGetByIDParameters
    - com.io7m.stonesignal.server.database.StDBDeviceLocationUpdateSearchParameters
    - com.io7m.stonesignal.server.devices.StDevice
    - com.io7m.stonesignal.server.devices.StDeviceKey
    - com.io7m.stonesignal.server.devices.StDeviceLocation
    - com.io7m.stonesignal.server.errors.StErrorCode