Resources

The resources use a data model that is supported by a set of client-side libraries that are made available on the files and libraries page.

name path methods description
AuthApiController
  • /auth/qr
  • /auth/tokens
  • /auth/service/login
  • /auth/service/logout
  • /auth/service/ua
  • /auth/service/valid
  • /auth/tokens/{tokenId}
  • /auth/service/password/strength/{password}
  • GET POST
  • GET
  • POST
  • GET
  • GET
  • GET
  • DELETE
  • GET
Controller for authorizations.
ClusterApiController
  • /cluster/host
  • GET
Controller for cluster actions.
DeviceBuilderController
  • /builder/discovery/devices/{discoveredId}
  • /builder/packages/{packageId}/devices
  • /builder/packages/{packageId}/devices/{device}
  • GET
  • POST
  • GET
Controller for the device builder.
DiscoveryApiController
  • /discovery
  • GET
Discovery service controller.
HardwareApiController
  • /hardware
  • /hardware/interface/{interface}
  • /hardware/type/{transport}
  • /hardware/interface/{interface}/{key}
  • /hardware/peripheral/{volatilePeripheralId}/drivers
  • /hardware/peripheral/{volatilePeripheralId}/stats
  • /hardware/peripheral/{volatilePeripheralId}/stop
  • /hardware/peripheral/{volatilePeripheralId}/settings/{driverDefinitionId}
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
Controller for controlling and maintaining the configurations, adding and removing of peripherals to the system.
ItemApiController
  • /items
  • /items/all
  • /items/discovered
  • /items/region
  • /items/all/region
  • /items/definitions/{itemType}
  • /items/discovered/{discoveredItemId}
  • /items/item/{itemDefinitionId}
  • /items/item/{itemId}
  • /items/discovered/{discoveredItemId}/{itemDefinitionId}
  • /items/item/{itemId}/definition
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • POST
  • DELETE GET PATCH PUT
  • POST
  • GET
Controller for items available for the end user to interact with.
ModuleApiController
  • /modules
  • /modules/active
  • /modules/capabilities
  • /modules/module
  • /modules/discovery/options
  • /modules/module/start
  • /modules/type/{type}
  • /modules/active/type/{type}
  • /modules/module/{activeContainerId}/info
  • /modules/module/{activeContainerId}/settings
  • /modules/module/{activeContainerId}/stop
  • /modules/type/{type}/{transport}
  • /modules/module/{activeContainerId}/discovery/start
  • /modules/module/{activeContainerId}/discovery/stop
  • /modules/module/{activeContainerId}/settings/field/{fieldId}/search
  • GET
  • GET
  • GET
  • POST
  • GET
  • POST
  • GET
  • GET
  • GET
  • GET PUT
  • GET
  • GET
  • POST
  • GET
  • POST
Controller for controlling and maintaining the configurations, adding and removing of modules on the system.
PackageApiController
  • /installation/repositories
  • /installation/repositories/{id}
  • GET PUT
  • DELETE
Controller for all installation related REST actions.
PersonApiController
  • /person/{id}
  • GET
Controller for the person API.
PremisesController
  • /premises
  • /premises/{premisesId}
  • /premises/{premisesId}/properties
  • /premises/{premisesId}/sections
  • /premises/{premisesId}/properties/{propertyId}
  • /premises/{premisesId}/sections/{sectionId}
  • /premises/{premisesId}/properties/{propertyId}/levels
  • /premises/{premisesId}/properties/{propertyId}/levels/{propertyLevelId}
  • /premises/{premisesId}/properties/{propertyId}/levels/{propertyLevelId}/sections
  • /premises/{premisesId}/properties/{propertyId}/levels/{propertyLevelId}/sections/{sectionId}
  • GET PATCH POST
  • DELETE GET
  • GET PATCH POST
  • GET PATCH POST
  • DELETE GET
  • DELETE GET
  • GET PATCH POST
  • DELETE GET POST
  • GET PATCH
  • DELETE GET
The controller for premises and properties.
SystemApiController
  • /system/locale
  • /system/locales
  • /system/network
  • /system/export/database
  • GET PUT
  • GET
  • GET
  • GET
Controller for system API's.
UserApiController
  • /user
  • /user/password
  • GET
  • POST
Base class for endpoints to implement.
UsersApiController
  • /users
  • /users/{id}
  • GET POST
  • DELETE GET PUT
API Controller for the UserLogin object.

Data Types

JSON

type description
BaseItemCommand A command for an item.
BaseItemMethod The base for an item method to execute.
BooleanInput
BooleanVisualType
CheckboxInput
ColorpickerMode
ConfigurableDevice
Context
ControlCommand
ControlCommandOfString
ControlCommandSet
ControlCommandSetOfString
ControlGraphType
ControlStatus
ControlVisualType
CustomDevice
DefinitionType The definition types.
DescriptionList
DescriptionListItem
Device
DeviceBooleanDataControl
DeviceBuilderType
DeviceButtonControl
DeviceColorPickerControl
DeviceColorPickerControlColorData
DeviceCommand A command to be executed by a device module.
DeviceControl
DeviceControlDataType
DeviceControlGroup
DeviceControlType
DeviceDefinition A definition of a device to be stored in the database and is re-creatable.
DeviceMeta A container for linking a device to it's definition.
DeviceNumberDataControl
DeviceOptions
DeviceParameter
DeviceSelectControl
DeviceSliderControl
DeviceStatus
DeviceStringDataControl
DeviceToggleControl
DiscoveredDevice
DiscoveredItem
DiscoveryPeriod Rule to be applied for periodic actions.
DisplayInput
DoubleInput
DriverDefinition A driver definition for an attached peripheral.
DummyForm Container for forms for the frontend. The target is implementation specific. When a PresentationForm is communicated with the outside world it is expected to be returned as the PresentationForm.
FixedDevice
FutureOfClusterHost
FutureOfDeviceBuilderConfiguration
FutureOfDiscoveredItemDefinition
FutureOfDiscoveryPeriodOptions
FutureOfHardwareComponent
FutureOfItemDefinition
FutureOfItemMeta
FutureOfListOfDriverDefinition
FutureOfListOfItemDefinition
FutureOfListOfModuleContainer
FutureOfListOfModuleDefinition
FutureOfListOfNetInterface
FutureOfListOfPeripheral
FutureOfListOfPidomeAuthToken
FutureOfListOfPremises
FutureOfListOfPremisesSection
FutureOfListOfProperty
FutureOfListOfPropertyLevel
FutureOfListOfPropertySection
FutureOfListOfRegionSection
FutureOfListOfRepositoryContainer
FutureOfListOfSystemLocale
FutureOfListOfUserLogin
FutureOfLocale
FutureOfLoginResource
FutureOfMapOfInterfaceAndHardwareComponent
FutureOfMapOfModuleTypeAndListOfModuleDefinition
FutureOfModuleConfiguration
FutureOfPasswordStrengthResponse
FutureOfPeripheral
FutureOfPerson
FutureOfPremises
FutureOfPremisesSection
FutureOfPresentation
FutureOfProperty
FutureOfPropertyLevel
FutureOfPropertySection
FutureOfRepositoryContainer
FutureOfServicesConfig
FutureOfSetOfSelectInputItem
FutureOfSortedSetOfDiscoveredItemDefinition
FutureOfSortedSetOfItemMeta
FutureOfSystemLocale
FutureOfUUID
FutureOfUserLogin
FutureOfVoid
GeoLocation The current GEO Location.
HardwareInfo Object to diplay information about an hardware interface.
HostIdentification The primary identification of an host.
Icon
IconType
InputField
InputFieldSearchQuery
InputFieldType
InputForm
InputSection
IntegerInput
IpAddressInput
IssuedAtObject
Item
ItemAction An action for an item.
ItemActionType The type of action for an item.
ItemAddress
ItemBooleanAddress
ItemCommand Base class for an item command.
ItemDefinition A definition of a single item.
ItemFloatAddress
ItemHexAddress
ItemIntegerAddress
ItemIpAddress
ItemMeta Item Meta information.
ItemOption A single item option.
ItemPropertyInterface
ItemStringAddress
ItemType
Length Length used in the rule.
LoginObject A simple login object which can be used to authenticate a user.
LoginResource A login resource object.
Manufacturer A manufacturer of an item or other component used.
Maven2Repository A maven repository type. This type provides searching and gethering packages from maven repositories. It supports both normal and snapshot repositories. There is a naming convention to follow which can be identified at:
MobileDevice A mobile device bound to an user.
ModuleBase
ModuleCapabilities
ModuleConfiguration
ModuleContainer A container for an active module.

A module container acts as a proxy between the actual module and the server and between a module and the driver. The implementation is responsible for providing correct Items to the server's Item handler and a bridge between the module and it's driver.

ModuleDefinition This class provides a module candidate for which a configuration can be loaded.
ModuleLoaderConfiguration Main object containing all the required information to start a module.

When a module is started successfully a configuration is stored to create a persistence object to survive between restarts.

ModuleNullConfiguration
ModuleType
Number
ObjectPropertyBinding
PassChangeObject Object used for password changes.
PasswordInput
Person Identifying a person.
PidomeAuthToken The token used in the authentication of a request on behalf of a user.

This is more then just the token. This object supplies the end user extra context about an token where applicable. This will support the end user in revoking tokens.

Great care should be taken by API development. The return of tokens should only be done by the end user which owns these.

Premises The premises.
PremisesSection A section on a premises.
Presentation
PresentationComponent
PresentationIcon
PresentationPlatform
PresentationSection
Property A property (housing / building) The current meaning of property is housing, building on a premises. If looking for system based properties go to org.pidome.server.system.config.SystemConfig
PropertyLevel A level in the premises. From basement to top floor/attic location.
PropertySection A region on a premises level. From rooms, attics, toilets to a region in a garden, driveway or parking lot etc.
PropertySectionType The type of section identifying where it is located.
ProvidedDevice
QrData The object holding the QR data. Object is required for completing the authorization process.
RegionSection The base for any section. This entity contains two parameters which provides support to display this entity in an ordered manner with a combined compound name like:
  • premises/section
  • premises/property/level/section
The above is only available when a compound request is made. For example when retrieving items. These two parameters are transitive and can not be set or altered as this will have no result.
Repository A single remote repository.
RepositoryContainer A provider for repositories. A repository provider is a collection of repositories where a package originates from. The provider can consist of multiple repositories which normally would contain normal and snapshot versions of a package.
RepositoryType The different kind of repository types.
Role The user roles.
SelectEnumInput
SelectInput
SelectInputItem
ServerPackage A server package.
ServicesConfig Class containing the configuration of the available services suitable for consuming.
StringMultiLineInput
StringSingleLineInput
SubSystem
SystemLocale A single system locale object.
Type Types supported by discovery.
Unit The period unit.
UnknownModule
UrlInput
UserLogin User model. (Database annotations)
Vertx
Weather
WeatherItem A weather item.