s4/drs: add DRSUAPI_ATTRIBUTE_options attribute
[abartlet/samba.git/.git] / librpc / idl / drsuapi.idl
index 9a9df03bb0078b66a3ef608d78532c1eac04ac21..e98cd2960270f30914a5f8824c920ac10bda7fe3 100644 (file)
@@ -34,6 +34,7 @@ interface drsuapi
                DRSUAPI_DRS_GET_ANC                   = 0x00000800,
                DRSUAPI_DRS_GET_NC_SIZE               = 0x00001000,
                DRSUAPI_DRS_LOCAL_ONLY                = 0x00001000,
+               DRSUAPI_DRS_NONGC_RO_REP              = 0x00002000,
                DRSUAPI_DRS_SYNC_BYNAME               = 0x00004000,
                DRSUAPI_DRS_REF_OK                    = 0x00004000,
                DRSUAPI_DRS_FULL_SYNC_NOW             = 0x00008000,
@@ -67,7 +68,7 @@ interface drsuapi
                DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS             = 0x00000010,
                DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1                   = 0x00000020,
                DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION    = 0x00000040,
-               DRSUAPI_SUPPORTED_EXTENSION_00000080                    = 0x00000080,
+               DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY                    = 0x00000080,
                DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE                 = 0x00000100,
                DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2                 = 0x00000200,
                DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION    = 0x00000400,
@@ -80,7 +81,7 @@ interface drsuapi
                DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP       = 0x00020000,
                DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY             = 0x00040000,
                DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3                  = 0x00080000,
-               DRSUAPI_SUPPORTED_EXTENSION_00100000                    = 0x00100000,
+               DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5                = 0x00100000,
                DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2            = 0x00200000,
                DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6                = 0x00400000,
                DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS               = 0x00800000,
@@ -95,14 +96,15 @@ interface drsuapi
                DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7              = 0x08000000,
                DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT               = 0x08000000,
                DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS             = 0x10000000,
-               DRSUAPI_SUPPORTED_EXTENSION_20000000                    = 0x20000000,
-               DRSUAPI_SUPPORTED_EXTENSION_40000000                    = 0x40000000,
-               DRSUAPI_SUPPORTED_EXTENSION_80000000                    = 0x80000000
+               DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10               = 0x20000000,
+               DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2              = 0x40000000,
+               DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3              = 0x80000000
        } drsuapi_SupportedExtensions;
 
        typedef [bitmap32bit] bitmap {
                DRSUAPI_SUPPORTED_EXTENSION_ADAM                        = 0x00000001,
-               DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2                    = 0x00000002
+               DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2                    = 0x00000002,
+               DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN                 = 0x00000004
        } drsuapi_SupportedExtensionsExt;
 
        /* this is used by w2k */
@@ -257,43 +259,6 @@ interface drsuapi
                [size_is(count)] drsuapi_DsReplicaCursor cursors[];
        } drsuapi_DsReplicaCursorCtrEx;
 
-       typedef [public] bitmap {
-               /* the _WRITEABLE flag indicates a replication with all attributes
-                *
-                * --metze
-                *
-                * See drsuapi_DrsOptions for the WSPP bit names 
-                */
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE                          = 0x00000010,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP                    = 0x00000020,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS                 = 0x00000040,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT      = 0x00000080,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_ASYNC_REP                          = 0x00000100,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_ERROR                       = 0x00000100,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC                       = 0x00000200,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_CRITICAL_ONLY                      = 0x00000400,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS              = 0x00000800,/*Include updates to ancestor objects before updates to their descendants*/
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS                   = 0x00010000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET                   = 0x00020000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED                       = 0x00200000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_SPECIAL_SECRET_PROCESSING          = 0x00800000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED                          = 0x01000000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS        = 0x04000000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC             = 0x08000000,
-               /*
-                * the following NOTE applies to DsGetNCChangesRequest5:
-                *  - the data is only compressed when 10 or more objects are replicated
-                *  - but there could also be a size limit of 35 KBytes or something like that
-                *  - the reply is DsGetNCChangesCtr2
-                *  - maybe the same applies to DsGetNCChangesRequest8...
-                *
-                *  --metze
-                */
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES                   = 0x10000000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS            = 0x20000000,
-               DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET              = 0x40000000
-       } drsuapi_DsReplicaNeighbourFlags;
-
        typedef [flag(NDR_PAHEX),v1_enum] enum {
                DRSUAPI_EXOP_NONE                               = 0x00000000,
                DRSUAPI_EXOP_FSMO_REQ_ROLE                      = 0x00000001,
@@ -331,7 +296,7 @@ interface drsuapi
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                drsuapi_DsReplicaHighWaterMark highwatermark;
                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
-               drsuapi_DsReplicaNeighbourFlags replica_flags;
+               drsuapi_DrsOptions replica_flags;
                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
                uint32 max_ndr_size; /* w2k3 seems to ignore this */
                drsuapi_DsExtendedOperation extended_op;
@@ -498,7 +463,8 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_systemAuxiliaryClass          = 0x000900c6,
                DRSUAPI_ATTRIBUTE_sAMAccountName                = 0x000900dd,
                DRSUAPI_ATTRIBUTE_sAMAccountType                = 0x0009012e,
-               DRSUAPI_ATTRIBUTE_fSMORoleOwner                 = 0x00090171,
+               DRSUAPI_ATTRIBUTE_options                       = 0x00090133,
+               DRSUAPI_ATTRIBUTE_fSMORoleOwner                 = 0x00090171,
                DRSUAPI_ATTRIBUTE_systemFlags                   = 0x00090177,
                DRSUAPI_ATTRIBUTE_serverReference               = 0x00090203,
                DRSUAPI_ATTRIBUTE_serverReferenceBL             = 0x00090204,
@@ -533,7 +499,7 @@ interface drsuapi
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                drsuapi_DsReplicaHighWaterMark highwatermark;
                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
-               drsuapi_DsReplicaNeighbourFlags replica_flags;
+               drsuapi_DrsOptions replica_flags;
                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
                uint32 max_ndr_size; /* w2k3 seems to ignore this */
                drsuapi_DsExtendedOperation extended_op;
@@ -549,7 +515,7 @@ interface drsuapi
                [ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
                drsuapi_DsReplicaHighWaterMark highwatermark;
                drsuapi_DsReplicaCursorCtrEx *uptodateness_vector;
-               drsuapi_DsReplicaNeighbourFlags replica_flags;
+               drsuapi_DrsOptions replica_flags;
                uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */
                uint32 max_ndr_size; /* w2k3 seems to ignore this */
                drsuapi_DsExtendedOperation extended_op;
@@ -1400,10 +1366,10 @@ interface drsuapi
                DRSUAPI_DS_REPLICA_INFO_CURSORS3                        = 8,
                DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2                   = 9,
                DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2       = 10,
-               DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02                     = -2,
-               DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04                   = -4,
-               DRSUAPI_DS_REPLICA_INFO_CURSORS05                       = -5,
-               DRSUAPI_DS_REPLICA_INFO_06                              = -6
+               DRSUAPI_DS_REPLICA_INFO_REPSTO                          = -2,
+               DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS                 = -4,
+               DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1              = -5,
+               DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS           = -6
        } drsuapi_DsReplicaInfoType;
 
        typedef struct {
@@ -1416,10 +1382,10 @@ interface drsuapi
                drsuapi_DsReplicaInfoType info_type;
                [charset(UTF16),string] uint16 *object_dn;
                GUID guid1;
-               uint32 unknown1;
+               uint32 flags;
                [charset(UTF16),string] uint16 *string1;
                [charset(UTF16),string] uint16 *string2;
-               uint32 unknown2;
+               uint32 enumeration_context;
        } drsuapi_DsReplicaGetInfoRequest2;
 
        typedef [switch_type(drsuapi_DsReplicaGetInfoLevel)] union {
@@ -1432,7 +1398,7 @@ interface drsuapi
                [charset(UTF16),string] uint16 *source_dsa_obj_dn;
                [charset(UTF16),string] uint16 *source_dsa_address;
                [charset(UTF16),string] uint16 *transport_obj_dn;
-               drsuapi_DsReplicaNeighbourFlags replica_flags;
+               drsuapi_DrsOptions replica_flags;
                uint32 reserved;
                GUID naming_context_obj_guid;
                GUID source_dsa_obj_guid;
@@ -1530,13 +1496,13 @@ interface drsuapi
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[];
        } drsuapi_DsReplicaAttrValMetaDataCtr;
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaCursor2 array[];
        } drsuapi_DsReplicaCursor2Ctr;
 
@@ -1549,7 +1515,7 @@ interface drsuapi
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaCursor3 array[];
        } drsuapi_DsReplicaCursor3Ctr;
 
@@ -1565,7 +1531,7 @@ interface drsuapi
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[];
        } drsuapi_DsReplicaObjMetaData2Ctr;
 
@@ -1586,7 +1552,7 @@ interface drsuapi
 
        typedef struct {
                uint32 count;
-               int32 enumeration_context;
+               uint32 enumeration_context;
                [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[];
        } drsuapi_DsReplicaAttrValMetaData2Ctr;
 
@@ -1635,10 +1601,10 @@ interface drsuapi
                [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] drsuapi_DsReplicaCursor3Ctr *cursors3;
                [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2;
                [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2;
-               [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] drsuapi_DsReplicaNeighbourCtr *neighbours02;
-               [case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] drsuapi_DsReplicaConnection04Ctr *connections04;
-               [case(DRSUAPI_DS_REPLICA_INFO_CURSORS05)] drsuapi_DsReplicaCursorCtrEx *cursors05;
-               [case(DRSUAPI_DS_REPLICA_INFO_06)] drsuapi_DsReplica06Ctr *i06;
+               [case(DRSUAPI_DS_REPLICA_INFO_REPSTO)] drsuapi_DsReplicaNeighbourCtr *repsto;
+               [case(DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS)] drsuapi_DsReplicaConnection04Ctr *clientctx;
+               [case(DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1)] drsuapi_DsReplicaCursorCtrEx *udv1;
+               [case(DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS)] drsuapi_DsReplica06Ctr *srvoutgoingcalls;
        } drsuapi_DsReplicaInfo;
 
        WERROR drsuapi_DsReplicaGetInfo(