winbind: Remove wbint_QueryUser
[metze/samba/wip.git] / librpc / idl / winbind.idl
1 #include "idl_types.h"
2 import "lsa.idl", "netlogon.idl", "misc.idl", "security.idl", "idmap.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     no_srv_register
11 ]
12 interface winbind
13 {
14   /* Private methods */
15
16     void wbint_Ping(
17         [in] uint32 in_data,
18         [out] uint32 *out_data
19         );
20
21     NTSTATUS wbint_LookupSid(
22         [in] dom_sid *sid,
23         [out] lsa_SidType *type,
24         [out,string,charset(UTF8)] char **domain,
25         [out,string,charset(UTF8)] char **name
26         );
27
28     NTSTATUS wbint_LookupSids(
29         [in] lsa_SidArray *sids,
30         [out,ref] lsa_RefDomainList *domains,
31         [out,ref] lsa_TransNameArray *names
32         );
33
34     NTSTATUS wbint_LookupName(
35         [in,string,charset(UTF8)] char *domain,
36         [in,string,charset(UTF8)] char *name,
37         [in] uint32 flags,
38         [out] lsa_SidType *type,
39         [out] dom_sid *sid
40         );
41
42     typedef struct {
43         id_type type;
44         uint32 domain_index;
45         uint32 rid;
46         unixid xid;
47     } wbint_TransID;
48
49     typedef struct {
50         uint32 num_ids;
51         [size_is(num_ids)] wbint_TransID ids[];
52     } wbint_TransIDArray;
53
54     NTSTATUS wbint_Sids2UnixIDs(
55         [in] lsa_RefDomainList *domains,
56         [in,out] wbint_TransIDArray *ids
57         );
58
59     NTSTATUS wbint_UnixIDs2Sids(
60         [in,string,charset(UTF8)] char *domain_name,
61         [in] uint32 num_ids,
62         [in,out] unixid xids[num_ids],
63         [out] dom_sid sids[num_ids]
64         );
65
66     NTSTATUS wbint_AllocateUid(
67         [out] hyper *uid
68         );
69
70     NTSTATUS wbint_AllocateGid(
71         [out] hyper *gid
72         );
73
74     typedef [public] struct {
75         [string,charset(UTF8)] char *domain_name;
76         [string,charset(UTF8)] char *acct_name;
77         [string,charset(UTF8)] char *full_name;
78         [string,charset(UTF8)] char *homedir;
79         [string,charset(UTF8)] char *shell;
80         hyper uid;
81         hyper primary_gid;
82         [string,charset(UTF8)] char *primary_group_name;
83         dom_sid user_sid;
84         dom_sid group_sid;
85     } wbint_userinfo;
86
87     NTSTATUS wbint_GetNssInfo(
88         [in,out] wbint_userinfo *info
89         );
90
91     typedef [public] struct {
92         uint32 num_sids;
93         [size_is(num_sids)] dom_sid sids[];
94     } wbint_SidArray;
95
96     typedef [public] struct {
97         uint32 num_rids;
98         [size_is(num_rids)] uint32 rids[];
99     } wbint_RidArray;
100
101     NTSTATUS wbint_LookupUserAliases(
102         [in] wbint_SidArray *sids,
103         [out] wbint_RidArray *rids
104         );
105
106     NTSTATUS wbint_LookupUserGroups(
107         [in] dom_sid *sid,
108         [out] wbint_SidArray *sids
109         );
110
111     NTSTATUS wbint_QuerySequenceNumber(
112         [out] uint32 *sequence
113         );
114
115     typedef [public] struct {
116         dom_sid sid;
117         lsa_SidType type;
118         [string,charset(UTF8)] char *name;
119     } wbint_Principal;
120
121     typedef [public] struct {
122         int num_principals;
123         [size_is(num_principals)] wbint_Principal principals[];
124     } wbint_Principals;
125
126     NTSTATUS wbint_LookupGroupMembers(
127         [in] dom_sid *sid,
128         [in] lsa_SidType type,
129         [out] wbint_Principals *members
130         );
131
132     typedef [public] struct {
133         uint32 num_userinfos;
134         [size_is(num_userinfos)] wbint_userinfo userinfos[];
135     } wbint_userinfos;
136
137     NTSTATUS wbint_QueryUserList(
138         [out] wbint_userinfos *users
139         );
140
141     NTSTATUS wbint_QueryGroupList(
142         [out] wbint_Principals *groups
143         );
144
145     NTSTATUS wbint_QueryUserRidList(
146         [out] wbint_RidArray *rids
147         );
148
149     NTSTATUS wbint_DsGetDcName(
150         [in,string,charset(UTF8)]               char *domain_name,
151         [in,unique]                             GUID *domain_guid,
152         [in,string,unique,charset(UTF8)]        char *site_name,
153         [in]                                    uint32 flags,
154         [out]                                   netr_DsRGetDCNameInfo **dc_info
155         );
156
157     NTSTATUS wbint_LookupRids(
158         [in] dom_sid *domain_sid,
159         [in] wbint_RidArray *rids,
160         [out,string,charset(UTF8)] char **domain_name,
161         [out] wbint_Principals *names
162         );
163
164     NTSTATUS wbint_CheckMachineAccount(
165         );
166
167     NTSTATUS wbint_ChangeMachineAccount(
168         );
169
170     NTSTATUS wbint_PingDc(
171         [out,string,charset(UTF8)] char **dcname
172         );
173
174   /* Public methods available via IRPC */
175
176     typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
177     typedef [switch_type(uint16)] union netr_Validation netr_Validation;
178
179     /*
180      * do a netr_LogonSamLogon() against the right DC
181      */
182     NTSTATUS winbind_SamLogon(
183         [in]  uint16 logon_level,
184         [in]  [switch_is(logon_level)] netr_LogonLevel logon,
185         [in]  uint16 validation_level,
186         [out] [switch_is(validation_level)] netr_Validation validation,
187         [out] uint8 authoritative
188         );
189
190     NTSTATUS winbind_DsrUpdateReadOnlyServerDnsRecords(
191         [in,unique] [string,charset(UTF16)] uint16 *site_name,
192         [in] uint32 dns_ttl,
193         [in,out,ref] NL_DNS_NAME_INFO_ARRAY *dns_names
194         );
195
196         /*
197          * do a netr_LogonControl2Ex() against the right DC
198          */
199         typedef [v1_enum] enum netr_LogonControlCode netr_LogonControlCode;
200         typedef [switch_type(netr_LogonControlCode)] union netr_CONTROL_DATA_INFORMATION netr_CONTROL_DATA_INFORMATION;
201         typedef [switch_type(uint32)] union netr_CONTROL_QUERY_INFORMATION netr_CONTROL_QUERY_INFORMATION;
202
203         WERROR winbind_LogonControl(
204                 [in]   netr_LogonControlCode function_code,
205                 [in]   uint32 level,
206                 [in,ref][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION  *data,
207                 [out,ref][switch_is(level)] netr_CONTROL_QUERY_INFORMATION *query
208                 );
209
210         /*
211          * do a netr_GetForestTrustInformation() against the right DC
212          */
213         WERROR winbind_GetForestTrustInformation(
214                 [in,unique] [string,charset(UTF16)] uint16 *trusted_domain_name,
215                 [in] uint32 flags,
216                 [out,ref] lsa_ForestTrustInformation **forest_trust_info
217                 );
218 }