r5362: Add pointer_default() support to pidl. pointer_default()
[samba.git] / source4 / librpc / idl / drsblobs.idl
1 #include "idl_types.h"
2
3 [
4   uuid("38578646-4566-4564-2244-275796345667"),
5   version(0.0),
6   pointer_default(unique),
7   helpstring("Active Directory Replication LDAP Blobs")
8 ]
9 interface drsblobs {
10         /*
11          * replPropertyMetaData
12          * w2k  uses version 1
13          * w2k3 uses version 1
14          */
15         typedef struct {
16                 uint32 attribute_id;
17                 uint32 version;
18                 NTTIME_1sec orginating_time;
19                 GUID orginating_dsa; /* the 'invocationId' ? */
20                 hyper orginating_usn;
21                 hyper local_usn;
22         } replPropertyMetaData1;
23
24         typedef struct {
25                 uint32 count;
26                 uint32 reserved;
27                 replPropertyMetaData1 array[count];
28         } replPropertyMetaDataCtr1;
29
30         typedef [nodiscriminant] union {
31                 [case(1)] replPropertyMetaDataCtr1 ctr1;
32         } replPropertyMetaDataCtr;
33         
34         typedef [public] struct {
35                 uint32 version;
36                 uint32 reserved;
37                 [switch_is(version)] replPropertyMetaDataCtr ctr;
38         } replPropertyMetaDataBlob;
39
40         void decode_replPropertyMetaData(
41                 [in] replPropertyMetaDataBlob blob
42                 );
43
44         /*
45          * replUpToDateVector
46          * w2k  uses version 1
47          * w2k3 uses version 2
48          */
49         typedef struct {
50                 GUID invocation_id_guid; /* the 'invocationId' field of the CN=NTDS Settings object */
51                 hyper highest_usn; /* updated after a full replication cycle */
52         } replUpToDateVector1;
53
54         typedef struct {
55                 uint32 count;
56                 uint32 reserved;
57                 replUpToDateVector1 array[count];
58         } replUpToDateVectorCtr1;
59
60         typedef struct {
61                 GUID invocation_id_guid; /* the 'invocationId' field of the CN=NTDS Settings object */
62                 hyper highest_usn; /* updated after a full replication cycle */
63                 NTTIME_1sec last_success;
64         } replUpToDateVector2;
65
66         typedef struct {
67                 uint32 count;
68                 uint32 reserved;
69                 replUpToDateVector2 array[count];
70         } replUpToDateVectorCtr2;
71
72         typedef [nodiscriminant] union {
73                 [case(1)] replUpToDateVectorCtr1 ctr1;
74                 [case(2)] replUpToDateVectorCtr2 ctr2;
75         } replUpToDateVectorCtr;
76
77         typedef [public] struct {
78                 uint32 version;
79                 uint32 reserved;
80                 [switch_is(version)] replUpToDateVectorCtr ctr;
81         } replUpToDateVectorBlob;
82
83         void decode_replUpToDateVector(
84                 [in] replUpToDateVectorBlob blob
85                 );
86
87         /*
88          * repsFrom/repsTo
89          * w2k  uses version 1
90          * w2k3 uses version 1
91          */
92         typedef [gensize] struct {
93                 asclstr dns_name;
94         } repsFromTo1OtherInfo;
95
96         typedef [gensize,flag(NDR_PAHEX)] struct {
97                 /* this includes the 8 bytes of the repsFromToBlob header */
98                 [value(ndr_size_repsFromTo1(r, ndr->flags)+8)] uint32 blobsize;
99                 uint32 consecutive_sync_failures;
100                 NTTIME_1sec last_success;
101                 NTTIME_1sec last_attempt;
102                 WERROR result_last_attempt;
103                 [relative,length_is(other_info_length)] repsFromTo1OtherInfo *other_info;
104                 [value(ndr_size_repsFromTo1OtherInfo(r->other_info, ndr->flags))] uint32 other_info_length;
105                 uint32 replica_flags;
106                 uint8 schedule[84];
107                 uint32 reserved;
108                 hyper tmp_highest_usn; /* updated after each object update */
109                 hyper reserved_usn;
110                 hyper highest_usn; /* updated after a full replication cycle */
111                 GUID source_dsa_obj_guid; /* the 'objectGuid' field of the CN=NTDS Settings object */
112                 GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */
113                 GUID transport_guid;
114         } repsFromTo1;
115
116         typedef [nodiscriminant] union {
117                 [case(1)] repsFromTo1 ctr1;
118         } repsFromTo;
119
120         typedef [public] struct {
121                 uint32 version;
122                 uint32 reserved;
123                 [switch_is(version)] repsFromTo ctr;
124         } repsFromToBlob;
125
126         void decode_repsFromTo(
127                 [in] repsFromToBlob blob
128                 );
129 }