script/autobuild.py: split out a samba_libs_configure variable
[Samba.git] / librpc / idl / winbind.idl
blob5b6195022a6940c4ec64401e4fa0f3109e556e53
1 #include "idl_types.h"
2 import "lsa.idl", "netlogon.idl", "misc.idl", "security.idl", "idmap.idl";
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
12 interface winbind
14 /* Private methods */
16 void wbint_Ping(
17 [in] uint32 in_data,
18 [out] uint32 *out_data
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
28 NTSTATUS wbint_LookupSids(
29 [in] lsa_SidArray *sids,
30 [out,ref] lsa_RefDomainList *domains,
31 [out,ref] lsa_TransNameArray *names
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
42 typedef struct {
43 id_type type;
44 uint32 domain_index;
45 uint32 rid;
46 unixid xid;
47 } wbint_TransID;
49 typedef struct {
50 uint32 num_ids;
51 [size_is(num_ids)] wbint_TransID ids[];
52 } wbint_TransIDArray;
54 NTSTATUS wbint_Sids2UnixIDs(
55 [in] lsa_RefDomainList *domains,
56 [in,out] wbint_TransIDArray *ids
59 NTSTATUS wbint_Uid2Sid(
60 [in,unique,string,charset(UTF8)] char *dom_name,
61 [in] hyper uid,
62 [out] dom_sid *sid
65 NTSTATUS wbint_Gid2Sid(
66 [in,unique,string,charset(UTF8)] char *dom_name,
67 [in] hyper gid,
68 [out] dom_sid *sid
71 NTSTATUS wbint_AllocateUid(
72 [out] hyper *uid
75 NTSTATUS wbint_AllocateGid(
76 [out] hyper *gid
79 typedef [public] struct {
80 [string,charset(UTF8)] char *acct_name;
81 [string,charset(UTF8)] char *full_name;
82 [string,charset(UTF8)] char *homedir;
83 [string,charset(UTF8)] char *shell;
84 hyper primary_gid;
85 dom_sid user_sid;
86 dom_sid group_sid;
87 } wbint_userinfo;
89 NTSTATUS wbint_QueryUser(
90 [in] dom_sid *sid,
91 [out] wbint_userinfo *info
94 typedef [public] struct {
95 uint32 num_sids;
96 [size_is(num_sids)] dom_sid sids[];
97 } wbint_SidArray;
99 typedef [public] struct {
100 uint32 num_rids;
101 [size_is(num_rids)] uint32 rids[];
102 } wbint_RidArray;
104 NTSTATUS wbint_LookupUserAliases(
105 [in] wbint_SidArray *sids,
106 [out] wbint_RidArray *rids
109 NTSTATUS wbint_LookupUserGroups(
110 [in] dom_sid *sid,
111 [out] wbint_SidArray *sids
114 NTSTATUS wbint_QuerySequenceNumber(
115 [out] uint32 *sequence
118 typedef [public] struct {
119 dom_sid sid;
120 lsa_SidType type;
121 [string,charset(UTF8)] char *name;
122 } wbint_Principal;
124 typedef [public] struct {
125 int num_principals;
126 [size_is(num_principals)] wbint_Principal principals[];
127 } wbint_Principals;
129 NTSTATUS wbint_LookupGroupMembers(
130 [in] dom_sid *sid,
131 [in] lsa_SidType type,
132 [out] wbint_Principals *members
135 typedef [public] struct {
136 uint32 num_userinfos;
137 [size_is(num_userinfos)] wbint_userinfo userinfos[];
138 } wbint_userinfos;
140 NTSTATUS wbint_QueryUserList(
141 [out] wbint_userinfos *users
144 NTSTATUS wbint_QueryGroupList(
145 [out] wbint_Principals *groups
148 NTSTATUS wbint_DsGetDcName(
149 [in,string,charset(UTF8)] char *domain_name,
150 [in,unique] GUID *domain_guid,
151 [in,string,unique,charset(UTF8)] char *site_name,
152 [in] uint32 flags,
153 [out] netr_DsRGetDCNameInfo **dc_info
156 NTSTATUS wbint_LookupRids(
157 [in] dom_sid *domain_sid,
158 [in] wbint_RidArray *rids,
159 [out,string,charset(UTF8)] char **domain_name,
160 [out] wbint_Principals *names
163 NTSTATUS wbint_CheckMachineAccount(
166 NTSTATUS wbint_ChangeMachineAccount(
169 NTSTATUS wbint_PingDc(
170 [out,string,charset(UTF8)] char **dcname
173 /* Public methods available via IRPC */
175 typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
176 typedef [switch_type(uint16)] union netr_Validation netr_Validation;
179 * do a netr_LogonSamLogon() against the right DC
181 NTSTATUS winbind_SamLogon(
182 [in] uint16 logon_level,
183 [in] [switch_is(logon_level)] netr_LogonLevel logon,
184 [in] uint16 validation_level,
185 [out] [switch_is(validation_level)] netr_Validation validation,
186 [out] uint8 authoritative
189 NTSTATUS winbind_DsrUpdateReadOnlyServerDnsRecords(
190 [in,unique] [string,charset(UTF16)] uint16 *site_name,
191 [in] uint32 dns_ttl,
192 [in,out,ref] NL_DNS_NAME_INFO_ARRAY *dns_names
196 * do a netr_LogonControl2Ex() against the right DC
198 typedef [v1_enum] enum netr_LogonControlCode netr_LogonControlCode;
199 typedef [switch_type(netr_LogonControlCode)] union netr_CONTROL_DATA_INFORMATION netr_CONTROL_DATA_INFORMATION;
200 typedef [switch_type(uint32)] union netr_CONTROL_QUERY_INFORMATION netr_CONTROL_QUERY_INFORMATION;
202 WERROR winbind_LogonControl(
203 [in] netr_LogonControlCode function_code,
204 [in] uint32 level,
205 [in,ref][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION *data,
206 [out,ref][switch_is(level)] netr_CONTROL_QUERY_INFORMATION *query
210 * do a netr_GetForestTrustInformation() against the right DC
212 WERROR winbind_GetForestTrustInformation(
213 [in,unique] [string,charset(UTF16)] uint16 *trusted_domain_name,
214 [in] uint32 flags,
215 [out,ref] lsa_ForestTrustInformation **forest_trust_info