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 Entry Settings
32 */
33 structure EntrySettings {
34 string url; ///< Destination host
35 boolean allowOffTimeRangeCerts; ///< allow expired and not yet valid TLS certificates
36 string caCertChain; ///< TLS CA certificate chain
37 boolean useAuth; ///< \c true to use HTTP basic authentication
38 string username; ///< Authentication user name
39 string password; ///< Password; write-only, empty to leave unchanged
40 EntryType type; ///< Type of data
41 vector<string> items; ///< Included items (e.g. list of sensors) depending on type
42 };
43
44 /**
45 * Data Push Entry Status
46 */
47 structure EntryStatus {
48 boolean busy; ///< \c true if the entry is currently being pushed
49 boolean rescheduled; ///< \c true if the entry is set to be pushed again
50 ///< immediately after completion
51 time lastAttemptTime; ///< UNIX timestamp (UTC) of the last push attempt (0 = never)
52 time lastSuccessTime; ///< UNIX timestamp (UTC) of last successful push (0 = never)
53 };
54
55 /**
56 * Event: A new push destination has been added
57 */
58 valueobject EntryAddedEvent extends UserEvent {
59 int entryId; ///< New entry id
60 EntrySettings settings; ///< New entry settings
61 };
62
63 /**
64 * Event: A configured push destination has been modified
65 */
66 valueobject EntryModifiedEvent extends UserEvent {
67 int entryId; ///< Modified entry id
68 EntrySettings oldSettings; ///< Settings before change
69 EntrySettings newSettings; ///< Settings after change
70 };
71
72 /**
73 * Event: A configured push destination has been deleted
74 */
75 valueobject EntryDeletedEvent extends UserEvent {
76 int entryId; ///< Deleted entry id
77 };
78
79 /**
80 * Event: The status of a configured push destination has changed
81 */
82 valueobject EntryStatusChangedEvent extends idl.Event {
83 int entryId; ///< Entry id
84 EntryStatus newStatus; ///< New status
85 };
86
87 /**
88 * Add a new entry.
89 *
90 * @param entryId Result: New entry id, automatically assigned
91 * @param entrySettings New Model Push Entry settings
92 *
93 * @return 0 if OK
94 * @return 2 if the settings are invalid
95 * @return 3 if the maximum number of entries is reached
96 */
97 int addEntry(out int entryId, in EntrySettings entrySettings);
98
99 /**
100 * Modify an existing entry.
101 *
102 * @param entryId Entry id
103 * @param entrySettings New Model Push Entry settings
104 *
105 * @return 0 if OK
106 * @return 1 if the entry does not exist
107 * @return 2 if the settings are invalid
108 */
109 int modifyEntry(in int entryId, in EntrySettings entrySettings);
110
111 /**
112 * Delete an entry.
113 *
114 * @param entryid Entry id
115 *
116 * @return 0 if OK
117 * @return 1 if the entry does not exist
118 */
119 int deleteEntry(in int entryId);
120
121 /**
122 * Retrieve an entry.
123 *
124 * @param entrySettings Result: Model Push Entry settings
125 * @param entryId Entry id
126 *
127 * @return 0 if OK
128 * @return 1 if the entry does not exist
129 */
130 int getEntry(out EntrySettings entrySettings, in int entryId);
131
132 /**
133 * Retrieve a list of entries.
134 *
135 * @return List of Entry Settings
136 */
137 map<int, EntrySettings> listEntries();
138
139 /**
140 * Push data for one specified entry
141 *
142 * @param entryId Entry id
143 *
144 * @return 0 if OK
145 * @return 1 if entry does not exist
146 *
147 */
148 int pushData(in int entryId);
149
150 /**
151 * Cancels an active data push
152 *
153 * If a data push is currently in process for the specified entry,
154 * that push is canceled. If no push is in process, this method
155 * is a no-op.
156 *
157 * @param entryId Entry id
158 */
159 void cancelDataPush(in int entryId);
160
161 /**
162 * Retrieve an entry's status.
163 *
164 * @param entryStatus Result: Entry status
165 * @param entryId Entry id
166 *
167 * @return 0 if OK
168 * @return 1 if the entry does not exist
169 */
170 int getEntryStatus(out EntryStatus entryStatus, in int entryId);
171
172 };
173
174}
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 HTTP basic authentication
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)
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