r2971: fix DsBind idl
[ira/wip.git] / source4 / librpc / idl / drsuapi.idl
1 #include "idl_types.h"
2
3
4   uuid(e3514235-4b06-11d1-ab04-00c04fc2dcd2),
5   version(4.0),
6   endpoints(lsass,protected_storage,TCP-0),
7   helpstring("Active Directory Replication"),
8   pointer_default(unique)
9
10 interface drsuapi
11 {
12         /*****************/
13         /* Function 0x00 */
14
15         typedef [flag(NDR_PAHEX)] struct {
16                 [range(1,10000)] uint32 length;
17                 [size_is(length)] uint8 data[];
18         } drsuapi_BindInfo;
19
20         NTSTATUS drsuapi_DsBind(
21                 [in]        GUID *server_guid,
22                 [in,out]    drsuapi_BindInfo *bind_info,
23                 [out,ref]   policy_handle *bind_handle
24                 );
25
26         /*****************/
27         /* Function 0x01 */
28         NTSTATUS drsuapi_DsUnbind(
29                 [in,out,ref] policy_handle *bind_handle
30                 );
31
32         /*****************/
33         /* Function 0x02 */
34         NTSTATUS DRSUAPI_REPLICA_SYNC();
35
36         /*****************/
37         /* Function 0x03 */
38         NTSTATUS DRSUAPI_GET_NC_CHANGES();
39
40         /*****************/
41         /* Function 0x04 */
42         NTSTATUS DRSUAPI_UPDATE_REFS();
43
44         /*****************/
45         /* Function 0x05 */
46         NTSTATUS DRSUAPI_REPLICA_ADD();
47
48         /*****************/
49         /* Function 0x06 */
50         NTSTATUS DRSUAPI_REPLICA_DEL();
51
52         /*****************/
53         /* Function 0x07 */
54         NTSTATUS DRSUAPI_REPLICA_MODIFY();
55
56         /*****************/
57         /* Function 0x08 */
58         NTSTATUS DRSUAPI_VERIFY_NAMES();
59
60         /*****************/
61         /* Function 0x09 */
62         NTSTATUS DRSUAPI_GET_MEMBERSHIPS();
63
64         /*****************/
65         /* Function 0x0a */
66         NTSTATUS DRSUAPI_INTER_DOMAIN_MOVE();
67
68         /*****************/
69         /* Function 0x0b */
70         NTSTATUS DRSUAPI_GET_NT4_CHANGELOG();
71
72         /*****************/
73         /* Function 0x0c */
74         typedef enum {
75                 DRSUAPI_DS_NAME_STATUS_OK                       = 0,
76                 DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR            = 1,
77                 DRSUAPI_DS_NAME_STATUS_NOT_FOUND                = 2,
78                 DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE               = 3,
79                 DRSUAPI_DS_NAME_STATUS_NO_MAPPING               = 4,
80                 DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY              = 5,
81                 DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING   = 6,
82                 DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL           = 7
83         } drsuapi_DsNameStatus;
84
85         typedef enum {
86                 DRSUAPI_DS_NAME_FLAG_NO_FLAGS                   = 0x0,
87                 DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY           = 0x1,
88                 DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC                 = 0x2,
89                 DRSUAPI_DS_NAME_FLAG_GCVERIFY                   = 0x4,
90                 DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL             = 0x8
91         } drsuapi_DsNameFlags;
92
93         typedef enum {
94                 DRSUAPI_DS_NAME_FORMAT_UKNOWN                   = 0,
95                 DRSUAPI_DS_NAME_FORMAT_FQDN_1779                = 1,
96                 DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT              = 2,
97                 DRSUAPI_DS_NAME_FORMAT_DISPLAY                  = 3,
98                 DRSUAPI_DS_NAME_FORMAT_GUID                     = 6,
99                 DRSUAPI_DS_NAME_FORMAT_CANONICAL                = 7,
100                 DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL           = 8,
101                 DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX             = 9,
102                 DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL        = 10,
103                 DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY       = 11,
104                 DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN               = 12
105         } drsuapi_DsNameFormat;
106
107         typedef struct {
108                 unistr *str;
109         } drsuapi_DsNameString;
110
111         typedef struct {
112                 uint32 unknown1; /* 0x000004e4 */
113                 uint32 unknown2; /* 0x00000407 */
114                 uint32 format_flags;
115                 uint32 format_offered;
116                 uint32 format_desired;
117                 [range(1,10000)] uint32 count;
118                 [size_is(count)] drsuapi_DsNameString *names;
119         } drsuapi_DsNameRequest1;
120
121         typedef union {
122                 [case(1)] drsuapi_DsNameRequest1 req1;
123         } drsuapi_DsNameRequest;
124
125         typedef struct {
126                 uint32 status;
127                 unistr *dns_domain_name;
128                 unistr *result_name;
129         } drsuapi_DsNameInfo1;
130
131         typedef struct {
132                 uint32 count;
133                 [size_is(count)] drsuapi_DsNameInfo1 *array;
134         } drsuapi_DsNameCtr1;
135
136         typedef union {
137                 [case(1)] drsuapi_DsNameCtr1 *ctr1;
138         } drsuapi_DsNameCtr;
139
140         NTSTATUS drsuapi_DsCrackNames(
141                 [in,ref] policy_handle *bind_handle,
142                 [in, out] uint32 level,
143                 [in,switch_is(level)] drsuapi_DsNameRequest req,
144                 [out,switch_is(level)] drsuapi_DsNameCtr ctr
145                 );
146
147         /*****************/
148         /* Function 0x0d */
149         NTSTATUS DRSUAPI_WRITE_SPN();
150
151         /*****************/
152         /* Function 0x0e */
153         NTSTATUS DRSUAPI_REMOVE_DS_SERVER();
154
155         /*****************/
156         /* Function 0x0f */
157         NTSTATUS DRSUAPI_REMOVE_DS_DOMAIN();
158
159         /*****************/
160         /* Function 0x10 */
161         NTSTATUS DRSUAPI_DOMAIN_CONTROLLER_INFO();
162
163         /*****************/
164         /* Function 0x11 */
165         NTSTATUS DRSUAPI_ADD_ENTRY();
166
167         /*****************/
168         /* Function 0x12 */
169         NTSTATUS DRSUAPI_EXECUTE_KCC();
170
171         /*****************/
172         /* Function 0x13 */
173         NTSTATUS DRSUAPI_GET_REPL_INFO();
174
175         /*****************/
176         /* Function 0x14 */
177         NTSTATUS DRSUAPI_ADD_SID_HISTORY();
178
179         /*****************/
180         /* Function 0x15 */
181         NTSTATUS DRSUAPI_GET_MEMBERSHIPS2();
182
183         /*****************/
184         /* Function 0x16 */
185         NTSTATUS DRSUAPI_REPLICA_VERIFY_OBJECTS();
186
187         /*****************/
188         /* Function 0x17 */
189         NTSTATUS DRSUAPI_GET_OBJECT_EXISTENCE();
190
191         /*****************/
192         /* Function 0x18 */
193         NTSTATUS DRSUAPI_QUERY_SITES_BY_COST();
194 }