Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-wsgi
[samba.git] / source4 / librpc / idl / frsapi.idl
1 #include "idl_types.h"
2
3 import "misc.idl";
4
5 [
6   uuid("d049b186-814f-11d1-9a3c-00c04fc9b232"),
7   version(1.1),
8   endpoint("ncacn_ip_tcp:", "ncalrpc:"),
9   helpstring("File Replication API"),
10   pointer_default(unique)
11 ]
12 interface frsapi
13 {
14         /****************/
15         /* Function 0x00 */
16         [todo] void FRSAPI_VERIFY_PROMOTION();
17
18         /****************/
19         /* Function 0x01 */
20         [todo] void FRSAPI_PROMOTION_STATUS();
21
22         /****************/
23         /* Function 0x02 */
24         [todo] void FRSAPI_START_DEMOTION();
25
26         /****************/
27         /* Function 0x03 */
28         [todo] void FRSAPI_COMMIT_DEMOTION();
29
30         /****************/
31         /* Function 0x04 */
32
33         /* The DsPollingLongInterval and DsPollingShortInterval attributes
34            represent registry attributes below HKLM\System\CCS\Services\NtFrs */
35
36         WERROR frsapi_SetDsPollingIntervalW(
37                 [in] uint32 CurrentInterval,
38                 [in] uint32 DsPollingLongInterval,
39                 [in] uint32 DsPollingShortInterval
40         );
41
42         /****************/
43         /* Function 0x05 */
44         WERROR frsapi_GetDsPollingIntervalW(
45                 [out] uint32 *CurrentInterval,
46                 [out] uint32 *DsPollingLongInterval,
47                 [out] uint32 *DsPollingShortInterval
48         );
49
50         /****************/
51         /* Function 0x06 */
52         [todo] void FRSAPI_VERIFY_PROMOTION_W();
53
54         /****************/
55         /* Function 0x07 */
56         typedef [v1_enum] enum {
57                 FRSAPI_INFO_VERSION     = 0,
58                 FRSAPI_INFO_SETS        = 1,
59                 FRSAPI_INFO_DS          = 2,
60                 FRSAPI_INFO_MEMORY      = 3,
61                 FRSAPI_INFO_IDTABLE     = 4,
62                 FRSAPI_INFO_OUTLOG      = 5,
63                 FRSAPI_INFO_INLOG       = 6,
64                 FRSAPI_INFO_THREADS     = 7,
65                 FRSAPI_INFO_STAGE       = 8,
66                 FRSAPI_INFO_CONFIGTABLE = 9
67         } frsapi_InfoEnum;
68
69         typedef struct {
70                 uint32 length;
71                 GUID guid;
72                 uint32 length2;
73                 uint32 unknown1;
74                 frsapi_InfoEnum level;
75                 uint32 query_counter;
76                 uint32 unknown2;
77                 uint32 offset;
78                 uint32 blob_len;
79                 /* [size_is(length-offset)] uint8 *data; */
80                 [subcontext_size(length-offset),subcontext(0),flag(NDR_REMAINING)] DATA_BLOB blob;
81         } frsapi_Info;
82
83         WERROR frsapi_InfoW(
84                 [in] [range(0,0x10000)] uint32 length,
85                 /* [in,out] [size_is(length)] [unique] uint8 *data */
86                 [in,out,unique] frsapi_Info *info
87
88         );
89
90         /****************/
91         /* Function 0x08 */
92         typedef [v1_enum] enum {
93                 FRSAPI_REPLICA_SET_TYPE_0       = 0x00000000,
94                 FRSAPI_REPLICA_SET_TYPE_DOMAIN  = 0x00000002,
95                 FRSAPI_REPLICA_SET_TYPE_DFS     = 0x00000003
96         } frsapi_ReplicaSetType;
97
98         WERROR frsapi_IsPathReplicated(
99                 [in,unique] [string,charset(UTF16)] uint16 *path,
100                 [in] frsapi_ReplicaSetType replica_set_type,
101                 [out] uint32 *unknown1,
102                 [out] uint32 *unknown2,
103                 [out] uint32 *unknown3,
104                 [out] GUID *replica_set_guid
105         );
106
107         /****************/
108         /* Function 0x09 */
109         [todo] void FRSAPI_WRITER_COMMAND();
110
111         /****************/
112         /* Function 0x0a */
113         /* not supported before w2k3 sp2 */
114         WERROR frsapi_ForceReplication(
115                 [in,unique] GUID *guid1,
116                 [in,unique] GUID *guid2,
117                 [in,unique] [charset(UTF16),string] uint16 *replica_set,
118                 [in,unique] [charset(UTF16),string] uint16 *partner_name
119         );
120
121 }