Legrand / Raritan / Server Technology Xerus™ JSON-RPC API
Loading...
Searching...
No Matches
DataPushService.idl
1/* SPDX-License-Identifier: BSD-3-Clause */
2/*
3 * Copyright 2014 Raritan Inc. All rights reserved.
4 */
5
6#include <UserEvent.idl>
7
8/** Event interface */
9module event {
10
11 /** Data push service configuration interface */
12 interface DataPushService {
13
14 /**
15 * Data Push Entry Types
16 */
17 enumeration EntryType {
18 SENSORLIST, ///< Sensor values for a set of sensors
19 SENSORLOG, ///< Sensor log
20 AMSLIST, ///< Asset Management information for a set of AMS strips
21 AMSLOG, ///< Asset Management log
22 AUDITLOG ///< Audit log
23 };
24
25 /** Error codes */
26 constant int ERR_NO_SUCH_ID = 1; ///< No such ID
27 constant int ERR_INVALID_PARAMS = 2; ///< Invalid parameters
28 constant int ERR_MAX_ENTRIES_REACHED = 3; ///< Maximum number of entries reached
29
30 /**
31 * Data Push Mqtt Settings
32 */
33 structure MqttSettings {
34 string topicPrefix; ///< Prefix added to all topics published to,
35 ///< must end with level separator '/' if non-empty
36 };
37
38 /**
39 * Data Push Entry Settings
40 */
41 [sparse_in]
42 structure EntrySettings {
43 string url; ///< Destination host
44 boolean allowOffTimeRangeCerts; ///< allow expired and not yet valid TLS certificates
45 string caCertChain; ///< TLS CA certificate chain
46 boolean useAuth; ///< \c true to use username/password authentication
47 ///< (basic authentication in case of HTTP)
48 string username; ///< Authentication user name
49 string password; ///< Password; write-only, empty to leave unchanged
50 EntryType type; ///< Type of data
51 vector<string> items; ///< Included items (e.g. list of sensors) depending on type
52 MqttSettings mqttSettings; ///< MQTT specific settings
53 };
54
55 /**
56 * Data Push Entry Status
57 */
58 structure EntryStatus {
59 boolean busy; ///< \c true if the entry is currently being pushed
60 boolean rescheduled; ///< \c true if the entry is set to be pushed again
61 ///< immediately after completion
62 time lastAttemptTime; ///< UNIX timestamp (UTC) of the last push attempt (0 = never)
63 time lastSuccessTime; ///< UNIX timestamp (UTC) of last successful push (0 = never)
64 };
65
66 /**
67 * Event: A new push destination has been added
68 */
69 valueobject EntryAddedEvent extends UserEvent {
70 int entryId; ///< New entry id
71 EntrySettings settings; ///< New entry settings
72 };
73
74 /**
75 * Event: A configured push destination has been modified
76 */
77 valueobject EntryModifiedEvent extends UserEvent {
78 int entryId; ///< Modified entry id
79 EntrySettings oldSettings; ///< Settings before change
80 EntrySettings newSettings; ///< Settings after change
81 };
82
83 /**
84 * Event: A configured push destination has been deleted
85 */
86 valueobject EntryDeletedEvent extends UserEvent {
87 int entryId; ///< Deleted entry id
88 };
89
90 /**
91 * Event: The status of a configured push destination has changed
92 */
93 valueobject EntryStatusChangedEvent extends idl.Event {
94 int entryId; ///< Entry id
95 EntryStatus newStatus; ///< New status
96 };
97
98 /**
99 * Add a new entry.
100 *
101 * @param entryId Result: New entry id, automatically assigned
102 * @param entrySettings New Model Push Entry settings
103 *
104 * @return 0 if OK
105 * @return 2 if the settings are invalid
106 * @return 3 if the maximum number of entries is reached
107 */
108 int addEntry(out int entryId, in EntrySettings entrySettings);
109
110 /**
111 * Modify an existing entry.
112 *
113 * @param entryId Entry id
114 * @param entrySettings New Model Push Entry settings
115 *
116 * @return 0 if OK
117 * @return 1 if the entry does not exist
118 * @return 2 if the settings are invalid
119 */
120 int modifyEntry(in int entryId, in EntrySettings entrySettings);
121
122 /**
123 * Delete an entry.
124 *
125 * @param entryid Entry id
126 *
127 * @return 0 if OK
128 * @return 1 if the entry does not exist
129 */
130 int deleteEntry(in int entryId);
131
132 /**
133 * Retrieve an entry.
134 *
135 * @param entrySettings Result: Model Push Entry settings
136 * @param entryId Entry id
137 *
138 * @return 0 if OK
139 * @return 1 if the entry does not exist
140 */
141 int getEntry(out EntrySettings entrySettings, in int entryId);
142
143 /**
144 * Retrieve a list of entries.
145 *
146 * @return List of Entry Settings
147 */
148 map<int, EntrySettings> listEntries();
149
150 /**
151 * Push data for one specified entry
152 *
153 * @param entryId Entry id
154 *
155 * @return 0 if OK
156 * @return 1 if entry does not exist
157 *
158 */
159 int pushData(in int entryId);
160
161 /**
162 * Cancels an active data push
163 *
164 * If a data push is currently in process for the specified entry,
165 * that push is canceled. If no push is in process, this method
166 * is a no-op.
167 *
168 * @param entryId Entry id
169 */
170 void cancelDataPush(in int entryId);
171
172 /**
173 * Retrieve an entry's status.
174 *
175 * @param entryStatus Result: Entry status
176 * @param entryId Entry id
177 *
178 * @return 0 if OK
179 * @return 1 if the entry does not exist
180 */
181 int getEntryStatus(out EntryStatus entryStatus, in int entryId);
182
183 };
184
185}
Data push service configuration interface.
EntryType
Data Push Entry Types.
@ SENSORLIST
Sensor values for a set of sensors.
@ AMSLOG
Asset Management log.
@ AMSLIST
Asset Management information for a set of AMS strips.
void cancelDataPush(in int entryId)
Cancels an active data push.
int pushData(in int entryId)
Push data for one specified entry.
int addEntry(out int entryId, in EntrySettings entrySettings)
Add a new entry.
int deleteEntry(in int entryId)
Delete an entry.
int getEntryStatus(out EntryStatus entryStatus, in int entryId)
Retrieve an entry's status.
map< int, EntrySettings > listEntries()
Retrieve a list of entries.
int getEntry(out EntrySettings entrySettings, in int entryId)
Retrieve an entry.
int modifyEntry(in int entryId, in EntrySettings entrySettings)
Modify an existing entry.
Basic IDL definitions.
Definition Event.idl:10
Event: A new push destination has been added.
EntrySettings settings
New entry settings.
Event: A configured push destination has been deleted.
Event: A configured push destination has been modified.
EntrySettings oldSettings
Settings before change.
EntrySettings newSettings
Settings after change.
boolean useAuth
true to use username/password authentication (basic authentication in case of HTTP)
MqttSettings mqttSettings
MQTT specific settings.
vector< string > items
Included items (e.g. list of sensors) depending on type.
string caCertChain
TLS CA certificate chain.
string username
Authentication user name.
boolean allowOffTimeRangeCerts
allow expired and not yet valid TLS certificates
string password
Password; write-only, empty to leave unchanged.
Event: The status of a configured push destination has changed.
time lastAttemptTime
UNIX timestamp (UTC) of the last push attempt (0 = never)
boolean rescheduled
true if the entry is set to be pushed again immediately after completion
boolean busy
true if the entry is currently being pushed
time lastSuccessTime
UNIX timestamp (UTC) of last successful push (0 = never)
string topicPrefix
Prefix added to all topics published to, must end with level separator '/' if non-empty.
This UserEvent may be used as base valueobject for all concrete events that are triggered because of ...
Definition UserEvent.idl:19
Common base for all events.
Definition Event.idl:13