1f0192e73cd457bf68ddda2f6530af34de33208c
[ira/wip.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     NTSTATUS wbint_AllocateUid(
58         [out] hyper *uid
59         );
60
61     NTSTATUS wbint_AllocateGid(
62         [out] hyper *gid
63         );
64
65     typedef [public] struct {
66         [string,charset(UTF8)] char *acct_name;
67         [string,charset(UTF8)] char *full_name;
68         [string,charset(UTF8)] char *homedir;
69         [string,charset(UTF8)] char *shell;
70         hyper primary_gid;
71         dom_sid user_sid;
72         dom_sid group_sid;
73     } wbint_userinfo;
74
75     NTSTATUS wbint_QueryUser(
76         [in] dom_sid *sid,
77         [out] wbint_userinfo *info
78         );
79
80     typedef [public] struct {
81         uint32 num_sids;
82         [size_is(num_sids)] dom_sid sids[];
83     } wbint_SidArray;
84
85     typedef [public] struct {
86         uint32 num_rids;
87         [size_is(num_rids)] uint32 rids[];
88     } wbint_RidArray;
89
90     NTSTATUS wbint_LookupUserAliases(
91         [in] wbint_SidArray *sids,
92         [out] wbint_RidArray *rids
93         );
94
95     NTSTATUS wbint_LookupUserGroups(
96         [in] dom_sid *sid,
97         [out] wbint_SidArray *sids
98         );
99
100     NTSTATUS wbint_QuerySequenceNumber(
101         [out] uint32 *sequence
102         );
103
104     typedef [public] struct {
105         dom_sid sid;
106         lsa_SidType type;
107         [string,charset(UTF8)] char *name;
108     } wbint_Principal;
109
110     typedef [public] struct {
111         int num_principals;
112         [size_is(num_principals)] wbint_Principal principals[];
113     } wbint_Principals;
114
115     NTSTATUS wbint_LookupGroupMembers(
116         [in] dom_sid *sid,
117         [in] lsa_SidType type,
118         [out] wbint_Principals *members
119         );
120
121     typedef [public] struct {
122         uint32 num_userinfos;
123         [size_is(num_userinfos)] wbint_userinfo userinfos[];
124     } wbint_userinfos;
125
126     NTSTATUS wbint_QueryUserList(
127         [out] wbint_userinfos *users
128         );
129
130     NTSTATUS wbint_QueryGroupList(
131         [out] wbint_Principals *groups
132         );
133
134     NTSTATUS wbint_DsGetDcName(
135         [in,string,charset(UTF8)]               char *domain_name,
136         [in,unique]                             GUID *domain_guid,
137         [in,string,unique,charset(UTF8)]        char *site_name,
138         [in]                                    uint32 flags,
139         [out]                                   netr_DsRGetDCNameInfo **dc_info
140         );
141
142     NTSTATUS wbint_LookupRids(
143         [in] wbint_RidArray *rids,
144         [out] wbint_Principals *names
145         );
146
147     NTSTATUS wbint_CheckMachineAccount(
148         );
149
150     NTSTATUS wbint_ChangeMachineAccount(
151         );
152
153     typedef [public] enum {
154         WBINT_ID_TYPE_NOT_SPECIFIED,
155         WBINT_ID_TYPE_UID,
156         WBINT_ID_TYPE_GID
157     } wbint_IdType;
158
159     NTSTATUS wbint_SetMapping(
160         [in] dom_sid *sid,
161         [in] wbint_IdType type,
162         [in] hyper id
163         );
164
165     NTSTATUS wbint_RemoveMapping(
166         [in] dom_sid *sid,
167         [in] wbint_IdType type,
168         [in] hyper id
169         );
170
171     NTSTATUS wbint_SetHWM(
172         [in] wbint_IdType type,
173         [in] hyper id
174         );
175 }