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