tdb: add utility function check_merge_with_left_record()
[Samba.git] / librpc / idl / witness.idl
blobcf605366f0a5d4d1ee008b90a8805702cfd9488a
1 #include "idl_types.h"
3 import "misc.idl";
6 uuid("ccd8c074-d0e5-4a40-92b4-d074faa6ba28"),
7 version(1.1),
8 pointer_default(unique),
9 helpstring("SMB Witness Service"),
10 endpoint("ncacn_ip_tcp:")
12 interface witness
14 typedef [v1_enum] enum {
15 WITNESS_V1 = 0x00010001,
16 WITNESS_V2 = 0x00020000
17 } witness_version;
19 /*****************/
20 /* Function 0x00 */
22 typedef [enum16bit] enum {
23 WITNESS_STATE_UNKNOWN = 0x00,
24 WITNESS_STATE_AVAILABLE = 0x01,
25 WITNESS_STATE_UNAVAILABLE = 0xff
26 } witness_interfaceInfo_state;
28 typedef [bitmap32bit] bitmap {
29 WITNESS_INFO_IPv4_VALID = 0x01,
30 WITNESS_INFO_IPv6_VALID = 0x02,
31 WITNESS_INFO_WITNESS_IF = 0x04
32 } witness_interfaceInfo_flags;
34 typedef struct {
35 [charset(UTF16),to_null] uint16 group_name[260];
36 witness_version version;
37 witness_interfaceInfo_state state;
38 [flag(NDR_BIG_ENDIAN)] ipv4address ipv4;
39 [flag(NDR_BIG_ENDIAN)] ipv6address ipv6;
40 witness_interfaceInfo_flags flags;
41 } witness_interfaceInfo;
43 typedef struct {
44 uint32 num_interfaces;
45 [size_is(num_interfaces)] witness_interfaceInfo *interfaces;
46 } witness_interfaceList;
48 WERROR witness_GetInterfaceList(
49 [out] witness_interfaceList **interface_list
52 /*****************/
53 /* Function 0x01 */
55 WERROR witness_Register(
56 [out,ref] policy_handle *context_handle,
57 [in] witness_version version,
58 [in,unique,string,charset(UTF16)] uint16 *net_name,
59 [in,unique,string,charset(UTF16)] uint16 *ip_address,
60 [in,unique,string,charset(UTF16)] uint16 *client_computer_name
63 /*****************/
64 /* Function 0x02 */
66 WERROR witness_UnRegister(
67 [in] policy_handle context_handle
70 /*****************/
71 /* Function 0x03 */
73 typedef [v1_enum] enum {
74 WITNESS_NOTIFY_RESOURCE_CHANGE = 1,
75 WITNESS_NOTIFY_CLIENT_MOVE = 2,
76 WITNESS_NOTIFY_SHARE_MOVE = 3,
77 WITNESS_NOTIFY_IP_CHANGE = 4
78 } witness_notifyResponse_type;
80 typedef struct {
81 witness_notifyResponse_type message_type;
82 uint32 length;
83 uint32 num_messages;
84 [size_is(length)] uint8 *message_buffer;
85 } witness_notifyResponse;
87 WERROR witness_AsyncNotify(
88 [in] policy_handle context_handle,
89 [out] witness_notifyResponse **response
92 /*****************/
93 /* Function 0x04 */
95 typedef [bitmap32bit] bitmap {
96 WITNESS_REGISTER_NONE = 0x00,
97 WITNESS_REGISTER_IP_NOTIFICATION = 0x01
98 } witness_RegisterEx_flags;
100 WERROR witness_RegisterEx(
101 [out,ref] policy_handle *context_handle,
102 [in] witness_version version,
103 [in,unique,string,charset(UTF16)] uint16 *net_name,
104 [in,unique,string,charset(UTF16)] uint16 *share_name,
105 [in,unique,string,charset(UTF16)] uint16 *ip_address,
106 [in,unique,string,charset(UTF16)] uint16 *client_computer_name,
107 [in] witness_RegisterEx_flags flags,
108 [in] uint32 timeout