r5661: Be a little stricter on syntax regarding arrays. A pointer to an
[abartlet/samba.git/.git] / source4 / librpc / idl / dfs.idl
1 /*
2   dfs interface definition
3 */
4
5 #include "idl_types.h"
6
7 [ uuid("4fc742e0-4a10-11cf-8273-00aa004ae673"),
8   version(3.0),
9   pointer_default(unique),
10   helpstring("Settings for Microsoft Distributed File System")
11 ] interface netdfs
12 {
13         /******************/
14         /* Function: 0x00 */
15         void dfs_GetManagerVersion(
16                 [out,ref] uint32 *exist_flag
17                 );
18
19
20         /******************/
21         /* Function: 0x01 */
22         WERROR dfs_Add (
23                 [in,ref]     unistr *path,
24                 [in,ref]     unistr *server,
25                 [in]         unistr *share,
26                 [in]         unistr *comment,
27                 [in]         uint32  flags
28                 );
29
30         /******************/
31         /* Function: 0x02 */
32         WERROR dfs_Remove (
33                 [in,ref] unistr *path,
34                 [in]     unistr *server,
35                 [in]     unistr *share
36                 );
37
38         /******************/
39         /* Function: 0x03 */
40         WERROR dfs_SetInfo ();
41
42         /******************/
43         /* Function: 0x04 */
44
45         typedef struct {
46                 unistr *path;
47         } dfs_Info1;
48
49         typedef struct {
50                 unistr *path;
51                 unistr *comment;
52                 uint32 state;
53                 uint32 num_stores;
54         } dfs_Info2;
55
56         typedef struct {
57                 uint32 state;
58                 unistr *server;
59                 unistr *share;
60         } dfs_StorageInfo;
61
62         typedef struct {
63                 unistr *path;
64                 unistr *comment;
65                 uint32 state;
66                 uint32 num_stores;
67                 [size_is(num_stores)] dfs_StorageInfo *stores[];
68         } dfs_Info3;
69
70         typedef struct {
71                 unistr *path;
72                 unistr *comment;
73                 uint32 state;
74                 uint32 timeout;
75                 GUID   guid;
76                 uint32 num_stores;
77                 [size_is(num_stores)] dfs_StorageInfo *stores[];
78         } dfs_Info4;
79
80         typedef struct {
81                 unistr *comment;
82         } dfs_Info100;
83
84         typedef struct {
85                 uint32 state;
86         } dfs_Info101;
87
88         typedef struct {
89                 uint32 timeout;
90         } dfs_Info102;
91
92         typedef struct {
93                 unistr *dom_root;
94         } dfs_Info200;
95
96         typedef struct {
97                 uint32 flags;
98                 unistr *dom_root;
99         } dfs_Info300;
100
101         typedef union {
102                 [case(1)]   dfs_Info1 *info1;
103                 [case(2)]   dfs_Info2 *info2;
104                 [case(3)]   dfs_Info3 *info3;
105                 [case(4)]   dfs_Info4 *info4;
106                 [case(100)] dfs_Info100 *info100;
107                 [case(101)] dfs_Info101 *info101;
108                 [case(102)] dfs_Info102 *info102;
109                 [default] ;
110         } dfs_Info;
111
112         WERROR dfs_GetInfo (
113                 [in,ref] unistr *path,
114                 [in]     unistr *server,
115                 [in]     unistr *share,
116                 [in]     uint32 level,
117                 [out,switch_is(level)] dfs_Info info
118                 );
119
120         /******************/
121         /* Function: 0x05 */
122
123         typedef struct {
124                 uint32 count;
125                 [size_is(count)] dfs_Info1 *s[];
126         } dfs_EnumArray1;
127
128         typedef struct {
129                 uint32 count;
130                 [size_is(count)] dfs_Info2 *s[];
131         } dfs_EnumArray2;
132
133         typedef struct {
134                 uint32 count;
135                 [size_is(count)] dfs_Info3 *s[];
136         } dfs_EnumArray3;
137
138         typedef struct {
139                 uint32 count;
140                 [size_is(count)] dfs_Info4 *s[];
141         } dfs_EnumArray4;
142
143         typedef struct {
144                 uint32 count;
145                 [size_is(count)] dfs_Info200 *s[];
146         } dfs_EnumArray200;
147
148         typedef struct {
149                 uint32 count;
150                 [size_is(count)] dfs_Info300 *s[];
151         } dfs_EnumArray300;
152
153
154         typedef union {
155                 [case(1)] dfs_EnumArray1 *info1;
156                 [case(2)] dfs_EnumArray2 *info2;
157                 [case(3)] dfs_EnumArray3 *info3;
158                 [case(4)] dfs_EnumArray4 *info4;
159                 [case(200)] dfs_EnumArray200 *info200;
160                 [case(300)] dfs_EnumArray300 *info300;
161         } dfs_EnumInfo;
162
163         typedef struct {
164                 uint32 level;
165                 [switch_is(level)] dfs_EnumInfo e;
166         } dfs_EnumStruct;
167
168         WERROR dfs_Enum (
169                 [in] uint32 level,
170                 [in] uint32 bufsize,
171                 [in,out] dfs_EnumStruct *info,
172                 [in]     uint32 *unknown,
173                 [in,out] uint32 *total
174                 );
175
176         /* Function 0x06 */
177         WERROR dfs_Rename();
178
179         /* Function 0x07 */
180         WERROR dfs_Move();
181
182         /* Function 0x08 */
183         WERROR dfs_ManagerGetConfigInfo();
184
185         /* Function 0x09 */
186         WERROR dfs_ManagerSendSiteInfo();
187
188         /* Function 0x0a */
189         WERROR dfs_AddFtRoot();
190
191         /* Function 0x0b */
192         WERROR dfs_RemoveFtRoot();
193
194         /* Function 0x0c */
195         WERROR dfs_AddStdRoot();
196
197         /* Function 0x0d */
198         WERROR dfs_RemoveStdRoot();
199
200         /* Function 0x0e */
201         WERROR dfs_ManagerInitialize();
202
203         /* Function 0x0f */
204         WERROR dfs_AddStdRootForced();
205
206         /* Function 0x10 */
207         WERROR dfs_GetDcAddress();
208
209         /* Function 0x11 */
210         WERROR dfs_SetDcAddress();
211
212         /* Function 0x12 */
213         WERROR dfs_FlushFtTable();
214
215         /* Function 0x13 */
216         WERROR dfs_Add2();
217
218         /* Function 0x14 */
219         WERROR dfs_Remove2();
220
221         /* Function 0x15 */
222         WERROR dfs_EnumEx();
223
224         /* Function 0x16 */
225         WERROR dfs_SetInfo2();
226 }