idl: frsrpc depends on bkupblobs.idl and fscc.idl
[samba.git] / librpc / idl / eventlog6.idl
1 #include "idl_types.h"
2
3
4 import "misc.idl";
5
6 cpp_quote("#define MAX_RPC_GUID_ARRAY_COUNT (MAX_PAYLOAD / sizeof(struct GUID))")
7 cpp_quote("#define eventlog6_EvtRpcSubscribePull    0x10000000")
8 cpp_quote("#define eventlog6_EvtRpcVarFlagsModified 0x00000001")
9
10 [
11     uuid (f6beaff7-1e19-4fbb-9f8f-b89e2018337c),
12     version(1.0),
13     endpoint("ncacn_ip_tcp:"),
14     helpstring("Eventlog6"),
15     pointer_default(unique)
16 ]
17 interface eventlog6
18 {
19         const int MAX_PAYLOAD                  = 2 * 1024 * 1024;
20         const int MAX_RPC_QUERY_LENGTH         = MAX_PAYLOAD / sizeof(uint16_t);
21         const int MAX_RPC_CHANNEL_NAME_LENGTH  = 512;
22         const int MAX_RPC_QUERY_CHANNEL_SIZE   = 512;
23         const int MAX_RPC_EVENT_ID_SIZE        = 256;
24         const int MAX_RPC_FILE_PATH_LENGTH     = 32768;
25         const int MAX_RPC_CHANNEL_PATH_LENGTH  = 32768;
26         const int MAX_RPC_BOOKMARK_LENGTH      = MAX_PAYLOAD / sizeof(uint16_t);
27         const int MAX_RPC_PUBLISHER_ID_LENGTH  = 2048;
28         const int MAX_RPC_PROPERTY_BUFFER_SIZE = MAX_PAYLOAD;
29         const int MAX_RPC_FILTER_LENGTH        = MAX_RPC_QUERY_LENGTH;
30         const int MAX_RPC_RECORD_COUNT         = 1024;
31         const int MAX_RPC_EVENT_SIZE           = MAX_PAYLOAD;
32         const int MAX_RPC_BATCH_SIZE           = MAX_PAYLOAD;
33         const int MAX_RPC_RENDERED_STRING_SIZE = MAX_PAYLOAD;
34         const int MAX_RPC_CHANNEL_COUNT        = 8192;
35         const int MAX_RPC_PUBLISHER_COUNT      = 8192;
36         const int MAX_RPC_EVENT_METADATA_COUNT = 256;
37         const int MAX_RPC_VARIANT_LIST_COUNT   = 256;
38         const int MAX_RPC_BOOLEAN8_ARRAY_COUNT = MAX_PAYLOAD / sizeof(uint8_t);
39         const int MAX_RPC_UINT32_ARRAY_COUNT   = MAX_PAYLOAD / sizeof(uint32_t);
40         const int MAX_RPC_UINT64_ARRAY_COUNT   = MAX_PAYLOAD / sizeof(uint64_t);
41         const int MAX_RPC_STRING_ARRAY_COUNT   = MAX_PAYLOAD / 512;
42         const int MAX_RPC_STRING_LENGTH        = MAX_PAYLOAD / sizeof(uint16_t);
43
44         typedef struct {
45                 uint32 error;
46                 uint32 sub_err;
47                 uint32 sub_err_param;
48         } eventlog6_RpcInfo;
49
50         typedef struct {
51                 [range(0, MAX_RPC_BOOLEAN8_ARRAY_COUNT)] uint32 count;
52                 [size_is(count)] boolean8* ptr;
53         } eventlog6_boolean8Array;
54
55         typedef struct {
56                 [range(0, MAX_RPC_UINT32_ARRAY_COUNT)] uint32 count;
57                 [size_is(count)] uint32* ptr;
58         } eventlog6_UInt32Array;
59
60         typedef struct {
61                 [range(0, MAX_RPC_UINT64_ARRAY_COUNT)] uint32 count;
62                 [size_is(count)] hyper* ptr;
63         } eventlog6_UInt64Array;
64
65         typedef struct {
66                 [range(0, MAX_RPC_STRING_ARRAY_COUNT)] uint32 count;
67                 [size_is(count),charset(UTF16),string] uint16 **ptr;
68         } eventlog6_StringArray;
69
70         typedef struct {
71                 [range(0, MAX_RPC_GUID_ARRAY_COUNT)] uint32 count;
72                 [size_is(count)] GUID* ptr;
73         } eventlog6_GuidArray;
74
75         typedef [v1_enum] enum {
76                 EvtRpcVarTypeNull          = 0,
77                 EvtRpcVarTypeboolean8      = 1,
78                 EvtRpcVarTypeUInt32        = 2,
79                 EvtRpcVarTypeUInt64        = 3,
80                 EvtRpcVarTypeString        = 4,
81                 EvtRpcVarTypeGuid          = 5,
82                 EvtRpcVarTypeboolean8Array = 6,
83                 EvtRpcVarTypeUInt32Array   = 7,
84                 EvtRpcVarTypeUInt64Array   = 8,
85                 EvtRpcVarTypeStringArray   = 9,
86                 EvtRpcVarTypeGuidArray     = 10
87         } eventlog6_EvtRpcVariantType;
88
89         typedef [v1_enum] enum {
90                 EvtRpcChannelPath   = 0,
91                 EvtRpcPublisherName = 1
92         } eventlog6_EvtRpcAssertConfigFlags;
93
94         typedef [switch_type(eventlog6_EvtRpcVariantType)] union {
95                 [case(EvtRpcVarTypeNull)] int nullVal;
96                 [case(EvtRpcVarTypeboolean8)] boolean8 boolean8Val;
97                 [case(EvtRpcVarTypeUInt32)] uint32 uint32Val;
98                 [case(EvtRpcVarTypeUInt64)] hyper uint64Val;
99                 [case(EvtRpcVarTypeString)] [charset(UTF16),string] uint16 *stringVal;
100                 [case(EvtRpcVarTypeGuid)] GUID *guidVal;
101                 [case(EvtRpcVarTypeboolean8Array)] eventlog6_boolean8Array boolean8Array;
102                 [case(EvtRpcVarTypeUInt32Array)] eventlog6_UInt32Array uint32Array;
103                 [case(EvtRpcVarTypeUInt64Array)] eventlog6_UInt64Array uint64Array;
104                 [case(EvtRpcVarTypeStringArray)] eventlog6_StringArray stringArray;
105                 [case(EvtRpcVarTypeGuidArray)] eventlog6_GuidArray guidArray;
106         } eventlog6_EvtRpcVariantUnion;
107
108         typedef struct {
109                 eventlog6_EvtRpcVariantType type;
110                 uint32 flags;
111                 [in,ref,switch_is(type)] eventlog6_EvtRpcVariantUnion *var;
112         } eventlog6_EvtRpcVariant;
113
114         typedef struct {
115                 [range(0, MAX_RPC_VARIANT_LIST_COUNT)] uint32 count;
116                 [size_is(count)] eventlog6_EvtRpcVariant* props;
117         } eventlog6_EvtRpcVariantList;
118
119         typedef struct {
120                 [charset(UTF16),string] uint16 *name;
121                 uint32 status;
122         } eventlog6_EvtRpcQueryChannelInfo;
123
124         WERROR eventlog6_EvtRpcRegisterRemoteSubscription(
125                 [in, unique, range(0, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
126                 [in, range(1, MAX_RPC_QUERY_LENGTH),charset(UTF16),string] uint16 *query,
127                 [in, unique, range(0, MAX_RPC_BOOKMARK_LENGTH),charset(UTF16),string] uint16 *bookmarkXml,
128                 [in] uint32 flags,
129                 [out, ref] policy_handle *handle,
130                 [out, ref] policy_handle *control,
131                 [out, ref] uint32 *queryChannelInfoSize,
132                 [out, size_is(,*queryChannelInfoSize), range(0, MAX_RPC_QUERY_CHANNEL_SIZE)]
133                 eventlog6_EvtRpcQueryChannelInfo **queryChannelInfo,
134                 [out, ref] eventlog6_RpcInfo *error);
135
136         WERROR eventlog6_EvtRpcRemoteSubscriptionNextAsync(
137                 [in, ref] policy_handle *handle,
138                 [in] uint32 numRequestedRecords,
139                 [in] uint32 flags,
140                 [out, ref] uint32 *numActualRecords,
141                 [out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
142                 uint32 **eventDataIndices,
143                 [out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
144                 uint32 **eventDataSizes,
145                 [out, ref] uint32* resultBufferSize,
146                 [out, size_is(,*resultBufferSize), range(0, MAX_RPC_BATCH_SIZE)]
147                 uint8 **resultBuffer);
148
149         WERROR eventlog6_EvtRpcRemoteSubscriptionNext(
150                 [in, ref] policy_handle *handle,
151                 [in] uint32 numRequestedRecords,
152                 [in] uint32 timeOut,
153                 [in] uint32 flags,
154                 [out, ref] uint32 *numActualRecords,
155                 [out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
156                 uint32 **eventDataIndices,
157                 [out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
158                 uint32 **eventDataSizes,
159                 [out, ref] uint32 *resultBufferSize,
160                 [out, size_is(,*resultBufferSize), range(0, MAX_RPC_BATCH_SIZE)]
161                 uint8 **resultBuffer);
162
163         WERROR eventlog6_EvtRpcRemoteSubscriptionWaitAsync(
164                 [in, ref] policy_handle *handle);
165
166         WERROR eventlog6_EvtRpcRegisterControllableOperation(
167                 [out, ref] policy_handle *handle);
168
169         WERROR eventlog6_EvtRpcRegisterLogQuery(
170                 [in, unique, range(0, MAX_RPC_CHANNEL_PATH_LENGTH),charset(UTF16),string] uint16 *path,
171                 [in, range(1, MAX_RPC_QUERY_LENGTH),charset(UTF16),string] uint16 *query,
172                 [in] uint32 flags,
173                 [out, ref] policy_handle *handle,
174                 [out, ref] policy_handle *opControl,
175                 [out, ref] uint32 *queryChannelInfoSize,
176                 [out, size_is(,*queryChannelInfoSize), range(0, MAX_RPC_QUERY_CHANNEL_SIZE)]
177                 eventlog6_EvtRpcQueryChannelInfo **queryChannelInfo,
178                 [out, ref] eventlog6_RpcInfo *error);
179
180         WERROR eventlog6_EvtRpcClearLog(
181                 [in, ref] policy_handle *control,
182                 [in, range(0, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
183                 [in, unique, range(0, MAX_RPC_FILE_PATH_LENGTH),charset(UTF16),string] uint16 *backupPath,
184                 [in] uint32 flags,
185                 [out, ref] eventlog6_RpcInfo *error);
186
187         WERROR  eventlog6_EvtRpcExportLog(
188                 [in, ref] policy_handle *control,
189                 [in, unique, range(0, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
190                 [in, range(1, MAX_RPC_QUERY_LENGTH),charset(UTF16),string] uint16 *query,
191                 [in, range(1, MAX_RPC_FILE_PATH_LENGTH),charset(UTF16),string] uint16 *backupPath,
192                 [in] uint32 flags,
193                 [out, ref] eventlog6_RpcInfo *error);
194
195         WERROR eventlog6_EvtRpcLocalizeExportLog(
196                 [in, ref] policy_handle *control,
197                 [in, range(1, MAX_RPC_FILE_PATH_LENGTH),charset(UTF16),string] uint16 *logFilePath,
198                 [in] uint32 locale,
199                 [in] uint32 flags,
200                 [out, ref] eventlog6_RpcInfo *error);
201
202         WERROR eventlog6_EvtRpcMessageRender(
203                 [in, ref] policy_handle *pubCfgObj,
204                 [in, range(1, MAX_RPC_EVENT_ID_SIZE)] uint32 sizeEventId,
205                 [in, size_is(sizeEventId)] uint8 *eventId,
206                 [in] uint32 messageId,
207                 [in] eventlog6_EvtRpcVariantList *values,
208                 [in] uint32 flags,
209                 [in] uint32 maxSizeString,
210                 [out, ref] uint32 *actualSizeString,
211                 [out, ref] uint32 *neededSizeString,
212                 [out, size_is(,*actualSizeString), range(0, MAX_RPC_RENDERED_STRING_SIZE)]
213                 uint8 **string,
214                 [out, ref] eventlog6_RpcInfo *error);
215
216         WERROR eventlog6_EvtRpcMessageRenderDefault(
217                 [in, range(1, MAX_RPC_EVENT_ID_SIZE)] uint32 sizeEventId,
218                 [in, size_is(sizeEventId)] uint8 *eventId,
219                 [in] uint32 messageId,
220                 [in] eventlog6_EvtRpcVariantList *values,
221                 [in] uint32 flags,
222                 [in] uint32 maxSizeString,
223                 [out, ref] uint32 *actualSizeString,
224                 [out, ref] uint32 *neededSizeString,
225                 [out, size_is(,*actualSizeString), range(0, MAX_RPC_RENDERED_STRING_SIZE)]
226                 uint8 **string,
227                 [out, ref] eventlog6_RpcInfo *error);
228
229         WERROR eventlog6_EvtRpcQueryNext(
230                 [in, ref] policy_handle *logQuery,
231                 [in] uint32 numRequestedRecords,
232                 [in] uint32 timeOutEnd,
233                 [in] uint32 flags,
234                 [out, ref] uint32 *numActualRecords,
235                 [out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
236                 uint32 **eventDataIndices,
237                 [out, size_is(,*numActualRecords), range(0, MAX_RPC_RECORD_COUNT)]
238                 uint32 **eventDataSizes,
239                 [out, ref] uint32 *resultBufferSize,
240                 [out, size_is(,*resultBufferSize), range(0, MAX_RPC_BATCH_SIZE)]
241                 uint8 **resultBuffer);
242
243         WERROR eventlog6_EvtRpcQuerySeek(
244                 [in, ref] policy_handle *logQuery,
245                 [in] hyper pos,
246                 [in, unique, range(0, MAX_RPC_BOOKMARK_LENGTH),charset(UTF16),string] uint16 *bookmarkXml,
247                 [in] uint32 timeOut,
248                 [in] uint32 flags,
249                 [out, ref] eventlog6_RpcInfo *error);
250
251         WERROR eventlog6_EvtRpcClose(
252                 [in, out, ref] policy_handle **handle);
253
254         WERROR eventlog6_EvtRpcCancel(
255                 [in, ref] policy_handle *handle);
256
257         WERROR eventlog6_EvtRpcAssertConfig(
258                 [in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *path,
259                 [in] uint32 flags);
260
261         WERROR eventlog6_EvtRpcRetractConfig(
262                 [in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *path,
263                 [in] uint32 flags );
264
265         WERROR eventlog6_EvtRpcOpenLogHandle(
266                 [in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channel,
267                 [in] uint32 flags,
268                 [out, ref] policy_handle *handle,
269                 [out, ref] eventlog6_RpcInfo *error);
270
271         WERROR eventlog6_EvtRpcGetLogFileInfo(
272                 [in, ref] policy_handle *logHandle,
273                 [in] uint32 propertyId,
274                 [in, range(0, MAX_RPC_PROPERTY_BUFFER_SIZE)]
275                 uint32 propertyValueBufferSize,
276                 [out, size_is(propertyValueBufferSize)] uint8 *propertyValueBuffer,
277                 [out, ref] uint32 *propertyValueBufferLength);
278
279         WERROR eventlog6_EvtRpcGetChannelList(
280                 [in] uint32 flags,
281                 [out, ref] uint32 *numChannelPaths,
282                 [out, size_is(,*numChannelPaths), range(0, MAX_RPC_CHANNEL_COUNT),charset(UTF16),string]
283                 uint16 ***channelPaths);
284
285         WERROR eventlog6_EvtRpcGetChannelConfig(
286                 [in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
287                 [in] uint32 flags,
288                 [out, ref] eventlog6_EvtRpcVariantList* props);
289
290         WERROR eventlog6_EvtRpcPutChannelConfig(
291                 [in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *channelPath,
292                 [in] uint32 flags,
293                 [in] eventlog6_EvtRpcVariantList* props,
294                 [out, ref] eventlog6_RpcInfo *error);
295
296         WERROR eventlog6_EvtRpcGetPublisherList(
297                 [in] uint32 flags,
298                 [out, ref] uint32 *numPublisherIds,
299                 [out, size_is(,*numPublisherIds), range(0, MAX_RPC_PUBLISHER_COUNT),charset(UTF16),string]
300                 uint16 ***publisherIds);
301
302         WERROR eventlog6_EvtRpcGetPublisherListForChannel(
303                 [in] uint16 *channelName,
304                 [in] uint32 flags,
305                 [out, ref] uint32* numPublisherIds,
306                 [out, size_is(,*numPublisherIds), range(0, MAX_RPC_PUBLISHER_COUNT),charset(UTF16),string]
307                 uint16 ***publisherIds);
308
309         WERROR eventlog6_EvtRpcGetPublisherMetadata(
310                 [in, unique, range(0, MAX_RPC_PUBLISHER_ID_LENGTH),charset(UTF16),string] uint16 *publisherId,
311                 [in, unique, range(0, MAX_RPC_FILE_PATH_LENGTH),charset(UTF16),string] uint16 *logFilePath,
312                 [in] uint32 locale,
313                 [in] uint32 flags,
314                 [out, ref] eventlog6_EvtRpcVariantList* pubMetadataProps,
315                 [out, ref] policy_handle *pubMetadata);
316
317         WERROR eventlog6_EvtRpcGetPublisherResourceMetadata(
318                 [in, ref] policy_handle *handle,
319                 [in] uint32 propertyId,
320                 [in] uint32 flags,
321                 [out, ref] eventlog6_EvtRpcVariantList *pubMetadataProps);
322
323         WERROR eventlog6_EvtRpcGetEventMetadataEnum(
324                 [in, ref] policy_handle *pubMetadata,
325                 [in] uint32 flags,
326                 [in, unique, range(0, MAX_RPC_FILTER_LENGTH),charset(UTF16),string] uint16 *reservedForFilter,
327                 [out, ref] policy_handle *eventMetaDataEnum);
328
329         WERROR eventlog6_EvtRpcGetNextEventMetadata(
330                 [in, ref] policy_handle *eventMetaDataEnum,
331                 [in] uint32 flags,
332                 [in] uint32 numRequested,
333                 [out, ref] uint32 *numReturned,
334                 [out, size_is(,*numReturned), range(0, MAX_RPC_EVENT_METADATA_COUNT)]
335                 eventlog6_EvtRpcVariantList **eventMetadataInstances);
336
337         WERROR eventlog6_EvtRpcGetClassicLogDisplayName(
338                 [in, range(1, MAX_RPC_CHANNEL_NAME_LENGTH),charset(UTF16),string] uint16 *logName,
339                 [in] uint32 locale,
340                 [in] uint32 flags,
341                 [out] uint16 **displayName);
342 }
343