wbclient: Add an async winbind client library.
[samba.git] / source4 / librpc / idl / winbind.idl
1 /*
2   winbind IRPC interface
3 */
4
5 #include "idl_types.h"
6
7 import "netlogon.idl", "lsa.idl", "security.idl";
8
9 [
10   uuid("245f3e6b-3c5d-6e21-3a2d-2a3d645b7221"),
11   version(1.0),
12   pointer_default(unique)
13 ]
14 interface winbind
15 {
16         typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
17         typedef [switch_type(uint16)] union netr_Validation netr_Validation;
18
19         typedef enum {
20                 ID_TYPE_NOT_SPECIFIED,
21                 ID_TYPE_UID,
22                 ID_TYPE_GID,
23                 ID_TYPE_BOTH
24         } id_type;
25
26         typedef struct {
27                 uint32 id;
28                 id_type type;
29         } unixid;
30
31         typedef struct {
32                 unixid *unixid;
33                 dom_sid *sid;
34                 NTSTATUS status;
35         } id_mapping;
36
37         /* a call to get runtime informations */
38         void winbind_information(/* TODO */);
39
40         /* 
41          * a call to trigger some internal events,
42          * for use in torture tests...
43          */
44         NTSTATUS winbind_remote_control(/* TODO */);
45
46         /*
47          * do a netr_LogonSamLogon() against the right DC
48          */
49         NTSTATUS winbind_SamLogon(
50                 [in]  uint16 logon_level,
51                 [in]  [switch_is(logon_level)] netr_LogonLevel logon,
52                 [in]  uint16 validation_level,
53                 [out] [switch_is(validation_level)] netr_Validation validation,
54                 [out] uint8 authoritative
55         );
56
57         typedef [v1_enum] enum {
58                 WINBIND_IDMAP_LEVEL_SIDS_TO_XIDS        = 1,
59                 WINBIND_IDMAP_LEVEL_XIDS_TO_SIDS        = 2
60         } winbind_get_idmap_level;
61
62         NTSTATUS winbind_get_idmap(
63                 [in]     winbind_get_idmap_level level,
64                 [in]     uint32 count,
65                 [in,out] [size_is(count)] id_mapping ids[]
66         );
67
68 }