s3:winbindd: remove wbint_Sid2Uid() from the wbint.idl
[kai/samba.git] / source3 / librpc / idl / wbint.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 wbint
13 {
14     void wbint_Ping(
15         [in] uint32 in_data,
16         [out] uint32 *out_data
17         );
18
19     NTSTATUS wbint_LookupSid(
20         [in] dom_sid *sid,
21         [out] lsa_SidType *type,
22         [out,string,charset(UTF8)] char **domain,
23         [out,string,charset(UTF8)] char **name
24         );
25
26     NTSTATUS wbint_LookupSids(
27         [in] lsa_SidArray *sids,
28         [out,ref] lsa_RefDomainList *domains,
29         [out,ref] lsa_TransNameArray *names
30         );
31
32     NTSTATUS wbint_LookupName(
33         [in,string,charset(UTF8)] char *domain,
34         [in,string,charset(UTF8)] char *name,
35         [in] uint32 flags,
36         [out] lsa_SidType *type,
37         [out] dom_sid *sid
38         );
39
40     NTSTATUS wbint_Sid2Gid(
41         [in,unique,string,charset(UTF8)] char *dom_name,
42         [in] dom_sid *sid,
43         [out] hyper *gid
44         );
45
46     typedef struct {
47         id_type type;
48         uint32 domain_index;
49         uint32 rid;
50         unixid xid;
51     } wbint_TransID;
52
53     typedef struct {
54         uint32 num_ids;
55         [size_is(num_ids)] wbint_TransID ids[];
56     } wbint_TransIDArray;
57
58     NTSTATUS wbint_Sids2UnixIDs(
59         [in] lsa_RefDomainList *domains,
60         [in,out] wbint_TransIDArray *ids
61         );
62
63     NTSTATUS wbint_Uid2Sid(
64         [in,unique,string,charset(UTF8)] char *dom_name,
65         [in] hyper uid,
66         [out] dom_sid *sid
67         );
68
69     NTSTATUS wbint_Gid2Sid(
70         [in,unique,string,charset(UTF8)] char *dom_name,
71         [in] hyper gid,
72         [out] dom_sid *sid
73         );
74
75     NTSTATUS wbint_AllocateUid(
76         [out] hyper *uid
77         );
78
79     NTSTATUS wbint_AllocateGid(
80         [out] hyper *gid
81         );
82
83     typedef [public] struct {
84         [string,charset(UTF8)] char *acct_name;
85         [string,charset(UTF8)] char *full_name;
86         [string,charset(UTF8)] char *homedir;
87         [string,charset(UTF8)] char *shell;
88         hyper primary_gid;
89         dom_sid user_sid;
90         dom_sid group_sid;
91     } wbint_userinfo;
92
93     NTSTATUS wbint_QueryUser(
94         [in] dom_sid *sid,
95         [out] wbint_userinfo *info
96         );
97
98     typedef [public] struct {
99         uint32 num_sids;
100         [size_is(num_sids)] dom_sid sids[];
101     } wbint_SidArray;
102
103     typedef [public] struct {
104         uint32 num_rids;
105         [size_is(num_rids)] uint32 rids[];
106     } wbint_RidArray;
107
108     NTSTATUS wbint_LookupUserAliases(
109         [in] wbint_SidArray *sids,
110         [out] wbint_RidArray *rids
111         );
112
113     NTSTATUS wbint_LookupUserGroups(
114         [in] dom_sid *sid,
115         [out] wbint_SidArray *sids
116         );
117
118     NTSTATUS wbint_QuerySequenceNumber(
119         [out] uint32 *sequence
120         );
121
122     typedef [public] struct {
123         dom_sid sid;
124         lsa_SidType type;
125         [string,charset(UTF8)] char *name;
126     } wbint_Principal;
127
128     typedef [public] struct {
129         int num_principals;
130         [size_is(num_principals)] wbint_Principal principals[];
131     } wbint_Principals;
132
133     NTSTATUS wbint_LookupGroupMembers(
134         [in] dom_sid *sid,
135         [in] lsa_SidType type,
136         [out] wbint_Principals *members
137         );
138
139     typedef [public] struct {
140         uint32 num_userinfos;
141         [size_is(num_userinfos)] wbint_userinfo userinfos[];
142     } wbint_userinfos;
143
144     NTSTATUS wbint_QueryUserList(
145         [out] wbint_userinfos *users
146         );
147
148     NTSTATUS wbint_QueryGroupList(
149         [out] wbint_Principals *groups
150         );
151
152     NTSTATUS wbint_DsGetDcName(
153         [in,string,charset(UTF8)]               char *domain_name,
154         [in,unique]                             GUID *domain_guid,
155         [in,string,unique,charset(UTF8)]        char *site_name,
156         [in]                                    uint32 flags,
157         [out]                                   netr_DsRGetDCNameInfo **dc_info
158         );
159
160     NTSTATUS wbint_LookupRids(
161         [in] dom_sid *domain_sid,
162         [in] wbint_RidArray *rids,
163         [out,string,charset(UTF8)] char **domain_name,
164         [out] wbint_Principals *names
165         );
166
167     NTSTATUS wbint_CheckMachineAccount(
168         );
169
170     NTSTATUS wbint_ChangeMachineAccount(
171         );
172
173     NTSTATUS wbint_PingDc(
174         [out,string,charset(UTF8)] char **dcname
175         );
176 }