netapi: add NetLocalGroupDel() to IDL.
[kai/samba.git] / source3 / librpc / idl / libnetapi.idl
1 /*
2   libnetapi interface definition
3 */
4
5 cpp_quote("#define LIBNETAPI_LOCAL_SERVER(x) (!x || is_myname_or_ipaddr(x))")
6 cpp_quote("#ifndef MAXSUBAUTHS")
7 cpp_quote("#define MAXSUBAUTHS 15 /* max sub authorities in a SID */")
8 cpp_quote("#endif")
9
10 [
11         pointer_default(unique)
12 ]
13 interface libnetapi
14 {
15         const int ERROR_MORE_DATA = 234L;
16
17         [public] typedef [v1_enum] enum {
18                 NERR_Success=0
19         } NET_API_STATUS;
20
21         [public] typedef struct {
22                 uint8 sid_rev_num;
23                 uint8 num_auths;
24                 uint8 id_auth[6];
25                 uint32 sub_auths[MAXSUBAUTHS];
26         } domsid;
27
28         [nopush,nopull] NET_API_STATUS NetJoinDomain(
29                 [in,unique] string *server,
30                 [in,ref] string *domain,
31                 [in,unique] string *account_ou,
32                 [in,unique] string *account,
33                 [in,unique] string *password,
34                 [in] uint32 join_flags
35                 );
36
37         [nopush,nopull] NET_API_STATUS NetUnjoinDomain(
38                 [in,unique] string *server_name,
39                 [in,unique] string *account,
40                 [in,unique] string *password,
41                 [in] uint32 unjoin_flags
42                 );
43
44         [nopush,nopull] NET_API_STATUS NetGetJoinInformation(
45                 [in,unique] string *server_name,
46                 [out] string **name_buffer,
47                 [out] uint16 *name_type
48                 );
49
50         [nopush,nopull] NET_API_STATUS NetGetJoinableOUs(
51                 [in,unique] string *server_name,
52                 [in,ref] string *domain,
53                 [in,unique] string *account,
54                 [in,unique] string *password,
55                 [out] uint32 *ou_count,
56                 [out] string ***ous
57                 );
58
59         [public] typedef struct {
60                 string sv1005_comment;
61         } SERVER_INFO_1005;
62
63         [nopush,nopull] NET_API_STATUS NetServerGetInfo(
64                 [in,unique] string *server_name,
65                 [in] uint32 level,
66                 [out] uint8 **buffer
67                 );
68
69         [nopush,nopull] NET_API_STATUS NetServerSetInfo(
70                 [in,unique] string *server_name,
71                 [in] uint32 level,
72                 [in] uint8 *buffer,
73                 [out] uint32 *parm_error
74                 );
75
76         [nopush,nopull] NET_API_STATUS NetGetDCName(
77                 [in,unique] string *server_name,
78                 [in,unique] string *domain_name,
79                 [out] uint8 **buffer
80                 );
81
82         [nopush,nopull] NET_API_STATUS NetGetAnyDCName(
83                 [in,unique] string *server_name,
84                 [in,unique] string *domain_name,
85                 [out] uint8 **buffer
86                 );
87
88         [public] typedef struct {
89                 string domain_controller_name;
90                 string domain_controller_address;
91                 uint32 domain_controller_address_type;
92                 GUID domain_guid;
93                 string domain_name;
94                 string dns_forest_name;
95                 uint32 flags;
96                 string dc_site_name;
97                 string client_site_name;
98         } DOMAIN_CONTROLLER_INFO;
99
100         [nopush,nopull] NET_API_STATUS DsGetDcName(
101                 [in,unique] string *server_name,
102                 [in,ref] string *domain_name,
103                 [in,unique] GUID *domain_guid,
104                 [in,unique] string *site_name,
105                 [in] uint32 flags,
106                 [out,ref] DOMAIN_CONTROLLER_INFO **dc_info
107                 );
108
109         [public] typedef struct {
110                 string usri0_name;
111         } USER_INFO_0;
112
113         [public] typedef struct {
114                 string usri1_name;
115                 string usri1_password;
116                 uint32 usri1_password_age;
117                 uint32 usri1_priv;
118                 string usri1_home_dir;
119                 string usri1_comment;
120                 uint32 usri1_flags;
121                 string usri1_script_path;
122         } USER_INFO_1;
123
124         [nopush,nopull] NET_API_STATUS NetUserAdd(
125                 [in,unique] string *server_name,
126                 [in] uint32 level,
127                 [in,ref] uint8 *buffer,
128                 [out,ref] uint32 *parm_error
129                 );
130
131         [nopush,nopull] NET_API_STATUS NetUserDel(
132                 [in,unique] string *server_name,
133                 [in,ref] string *user_name
134                 );
135
136         [nopush,nopull] NET_API_STATUS NetUserEnum(
137                 [in,unique] string *server_name,
138                 [in] uint32 level,
139                 [in] uint32 filter,
140                 [out,ref] uint8 **buffer,
141                 [in] uint32 prefmaxlen,
142                 [out,ref] uint32 *entries_read,
143                 [out,ref] uint32 *total_entries,
144                 [in,out,ref] uint32 *resume_handle
145                 );
146
147         [public] typedef struct {
148                 string usri1_name;
149                 string usri1_comment;
150                 uint32 usri1_flags;
151                 string usri1_full_name;
152                 uint32 usri1_user_id;
153                 uint32 usri1_next_index;
154         } NET_DISPLAY_USER;
155
156         [public] typedef struct {
157                 string usri2_name;
158                 string usri2_comment;
159                 uint32 usri2_flags;
160                 uint32 usri2_user_id;
161                 uint32 usri2_next_index;
162         } NET_DISPLAY_MACHINE;
163
164         [public] typedef struct {
165                 string grpi3_name;
166                 string grpi3_comment;
167                 uint32 grpi3_group_id;
168                 uint32 grpi3_attributes;
169                 uint32 grpi3_next_index;
170         } NET_DISPLAY_GROUP;
171
172         [nopush,nopull] NET_API_STATUS NetQueryDisplayInformation(
173                 [in,unique] string *server_name,
174                 [in] uint32 level,
175                 [in] uint32 idx,
176                 [in] uint32 entries_requested,
177                 [in] uint32 prefmaxlen,
178                 [out,ref] uint32 *entries_read,
179                 [out,ref,noprint] void **buffer
180                 );
181
182         typedef struct {
183                 string grpi0_name;
184         } GROUP_INFO_0;
185
186         typedef struct {
187                 string grpi1_name;
188                 string grpi1_comment;
189         } GROUP_INFO_1;
190
191         typedef struct {
192                 string grpi2_name;
193                 string grpi2_comment;
194                 uint32 grpi2_group_id;
195                 uint32 grpi2_attributes;
196         } GROUP_INFO_2;
197
198         typedef struct {
199                 string grpi3_name;
200                 string grpi3_comment;
201                 domsid grpi3_group_sid;
202                 uint32 grpi3_attributes;
203         } GROUP_INFO_3;
204
205         typedef struct {
206                 string grpi1002_comment;
207         } GROUP_INFO_1002;
208
209         typedef struct {
210                 uint32 grpi1005_attributes;
211         } GROUP_INFO_1005;
212
213         [nopush,nopull] NET_API_STATUS NetGroupAdd(
214                 [in] string server_name,
215                 [in] uint32 level,
216                 [in] uint8 *buf,
217                 [out] uint32 *parm_err
218                 );
219
220         [nopush,nopull] NET_API_STATUS NetGroupDel(
221                 [in] string server_name,
222                 [in] string group_name
223                 );
224
225         [nopush,nopull] NET_API_STATUS NetGroupSetInfo(
226                 [in] string server_name,
227                 [in] string group_name,
228                 [in] uint32 level,
229                 [in] uint8 *buf,
230                 [out] uint32 *parm_err
231                 );
232
233         [nopush,nopull] NET_API_STATUS NetGroupGetInfo(
234                 [in] string server_name,
235                 [in] string group_name,
236                 [in] uint32 level,
237                 [out] uint8 **buf
238                 );
239
240         [nopush,nopull] NET_API_STATUS NetGroupAddUser(
241                 [in] string server_name,
242                 [in] string group_name,
243                 [in] string user_name
244                 );
245
246         [nopush,nopull] NET_API_STATUS NetGroupDelUser(
247                 [in] string server_name,
248                 [in] string group_name,
249                 [in] string user_name
250                 );
251
252         typedef struct {
253                 string lgrpi0_name;
254         } LOCALGROUP_INFO_0;
255
256         typedef struct {
257                 string lgrpi1_name;
258                 string lgrpi1_comment;
259         } LOCALGROUP_INFO_1;
260
261         typedef struct {
262                 string lgrpi1002_comment;
263         } LOCALGROUP_INFO_1002;
264
265         [nopush,nopull] NET_API_STATUS NetLocalGroupAdd(
266                 [in] string server_name,
267                 [in] uint32 level,
268                 [in] uint8 *buf,
269                 [out,ref] uint32 *parm_err
270                 );
271
272         [nopush,nopull] NET_API_STATUS NetLocalGroupDel(
273                 [in] string server_name,
274                 [in] string group_name
275                 );
276 }