s3:winbind: Add async query_user_list
[samba.git] / source3 / librpc / idl / wbint.idl
1 #include "idl_types.h"
2 import "lsa.idl";
3
4 [
5     uuid("bf09192c-ed60-4928-9dff-d0d7bcb03ed8"),
6     endpoint("ncalrpc:"),
7     pointer_default(unique),
8     version(1.0),
9     helpstring("winbind parent-child protocol")
10 ]
11 interface wbint
12 {
13     void wbint_Ping(
14         [in] uint32 in_data,
15         [out] uint32 *out_data
16         );
17
18     NTSTATUS wbint_LookupSid(
19         [in] dom_sid *sid,
20         [out] lsa_SidType *type,
21         [out,string,charset(UTF8)] char **domain,
22         [out,string,charset(UTF8)] char **name
23         );
24
25     NTSTATUS wbint_LookupName(
26         [in,string,charset(UTF8)] char *domain,
27         [in,string,charset(UTF8)] char *name,
28         [in] uint32 flags,
29         [out] lsa_SidType *type,
30         [out] dom_sid *sid
31         );
32
33     NTSTATUS wbint_Sid2Uid(
34         [in,unique,string,charset(UTF8)] char *dom_name,
35         [in] dom_sid *sid,
36         [out] hyper *uid
37         );
38
39     NTSTATUS wbint_Sid2Gid(
40         [in,unique,string,charset(UTF8)] char *dom_name,
41         [in] dom_sid *sid,
42         [out] hyper *gid
43         );
44
45     NTSTATUS wbint_Uid2Sid(
46         [in,unique,string,charset(UTF8)] char *dom_name,
47         [in] hyper uid,
48         [out] dom_sid *sid
49         );
50
51     NTSTATUS wbint_Gid2Sid(
52         [in,unique,string,charset(UTF8)] char *dom_name,
53         [in] hyper gid,
54         [out] dom_sid *sid
55         );
56
57     typedef [public] struct {
58         [string,charset(UTF8)] char *acct_name;
59         [string,charset(UTF8)] char *full_name;
60         [string,charset(UTF8)] char *homedir;
61         [string,charset(UTF8)] char *shell;
62         hyper primary_gid;
63         dom_sid user_sid;
64         dom_sid group_sid;
65     } wbint_userinfo;
66
67     NTSTATUS wbint_QueryUser(
68         [in] dom_sid *sid,
69         [out] wbint_userinfo *info
70         );
71
72     typedef [public] struct {
73         uint32 num_sids;
74         [size_is(num_sids)] dom_sid sids[];
75     } wbint_SidArray;
76
77     typedef [public] struct {
78         uint32 num_rids;
79         [size_is(num_rids)] uint32 rids[];
80     } wbint_RidArray;
81
82     NTSTATUS wbint_LookupUserAliases(
83         [in] wbint_SidArray *sids,
84         [out] wbint_RidArray *rids
85         );
86
87     NTSTATUS wbint_LookupUserGroups(
88         [in] dom_sid *sid,
89         [out] wbint_SidArray *sids
90         );
91
92     NTSTATUS wbint_QuerySequenceNumber(
93         [out] uint32 *sequence
94         );
95
96     typedef [public] struct {
97         dom_sid sid;
98         lsa_SidType type;
99         [string,charset(UTF8)] char *name;
100     } wbint_Principal;
101
102     typedef [public] struct {
103         int num_principals;
104         [size_is(num_principals)] wbint_Principal principals[];
105     } wbint_Principals;
106
107     NTSTATUS wbint_LookupGroupMembers(
108         [in] dom_sid *sid,
109         [in] lsa_SidType type,
110         [out] wbint_Principals *members
111         );
112
113     typedef [public] struct {
114         uint32 num_userinfos;
115         [size_is(num_userinfos)] wbint_userinfo userinfos[];
116     } wbint_userinfos;
117
118     NTSTATUS wbint_QueryUserList(
119         [out] wbint_userinfos *users
120         );
121 }