s3:messaging.idl: define MSG_SMBXSRV_SESSION_CLOSE
[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_Sid2Uid(
41         [in,unique,string,charset(UTF8)] char *dom_name,
42         [in] dom_sid *sid,
43         [out] hyper *uid
44         );
45
46     NTSTATUS wbint_Sid2Gid(
47         [in,unique,string,charset(UTF8)] char *dom_name,
48         [in] dom_sid *sid,
49         [out] hyper *gid
50         );
51
52     typedef struct {
53         id_type type;
54         uint32 domain_index;
55         uint32 rid;
56         hyper unix_id;
57     } wbint_TransID;
58
59     typedef struct {
60         uint32 num_ids;
61         [size_is(num_ids)] wbint_TransID ids[];
62     } wbint_TransIDArray;
63
64     NTSTATUS wbint_Sids2UnixIDs(
65         [in] lsa_RefDomainList *domains,
66         [in,out] wbint_TransIDArray *ids
67         );
68
69     NTSTATUS wbint_Uid2Sid(
70         [in,unique,string,charset(UTF8)] char *dom_name,
71         [in] hyper uid,
72         [out] dom_sid *sid
73         );
74
75     NTSTATUS wbint_Gid2Sid(
76         [in,unique,string,charset(UTF8)] char *dom_name,
77         [in] hyper gid,
78         [out] dom_sid *sid
79         );
80
81     NTSTATUS wbint_AllocateUid(
82         [out] hyper *uid
83         );
84
85     NTSTATUS wbint_AllocateGid(
86         [out] hyper *gid
87         );
88
89     typedef [public] struct {
90         [string,charset(UTF8)] char *acct_name;
91         [string,charset(UTF8)] char *full_name;
92         [string,charset(UTF8)] char *homedir;
93         [string,charset(UTF8)] char *shell;
94         hyper primary_gid;
95         dom_sid user_sid;
96         dom_sid group_sid;
97     } wbint_userinfo;
98
99     NTSTATUS wbint_QueryUser(
100         [in] dom_sid *sid,
101         [out] wbint_userinfo *info
102         );
103
104     typedef [public] struct {
105         uint32 num_sids;
106         [size_is(num_sids)] dom_sid sids[];
107     } wbint_SidArray;
108
109     typedef [public] struct {
110         uint32 num_rids;
111         [size_is(num_rids)] uint32 rids[];
112     } wbint_RidArray;
113
114     NTSTATUS wbint_LookupUserAliases(
115         [in] wbint_SidArray *sids,
116         [out] wbint_RidArray *rids
117         );
118
119     NTSTATUS wbint_LookupUserGroups(
120         [in] dom_sid *sid,
121         [out] wbint_SidArray *sids
122         );
123
124     NTSTATUS wbint_QuerySequenceNumber(
125         [out] uint32 *sequence
126         );
127
128     typedef [public] struct {
129         dom_sid sid;
130         lsa_SidType type;
131         [string,charset(UTF8)] char *name;
132     } wbint_Principal;
133
134     typedef [public] struct {
135         int num_principals;
136         [size_is(num_principals)] wbint_Principal principals[];
137     } wbint_Principals;
138
139     NTSTATUS wbint_LookupGroupMembers(
140         [in] dom_sid *sid,
141         [in] lsa_SidType type,
142         [out] wbint_Principals *members
143         );
144
145     typedef [public] struct {
146         uint32 num_userinfos;
147         [size_is(num_userinfos)] wbint_userinfo userinfos[];
148     } wbint_userinfos;
149
150     NTSTATUS wbint_QueryUserList(
151         [out] wbint_userinfos *users
152         );
153
154     NTSTATUS wbint_QueryGroupList(
155         [out] wbint_Principals *groups
156         );
157
158     NTSTATUS wbint_DsGetDcName(
159         [in,string,charset(UTF8)]               char *domain_name,
160         [in,unique]                             GUID *domain_guid,
161         [in,string,unique,charset(UTF8)]        char *site_name,
162         [in]                                    uint32 flags,
163         [out]                                   netr_DsRGetDCNameInfo **dc_info
164         );
165
166     NTSTATUS wbint_LookupRids(
167         [in] dom_sid *domain_sid,
168         [in] wbint_RidArray *rids,
169         [out,string,charset(UTF8)] char **domain_name,
170         [out] wbint_Principals *names
171         );
172
173     NTSTATUS wbint_CheckMachineAccount(
174         );
175
176     NTSTATUS wbint_ChangeMachineAccount(
177         );
178
179     NTSTATUS wbint_PingDc(
180         );
181 }