s4-drsuapi: merge drsuapi_DsWriteAccountSpn from s3 drsuapi idl.
[samba.git] / source4 / librpc / idl / drsuapi.idl
index cc76599be67a198f02a3661a724e992976d22b0f..a4aab0f4417b82ad5c117816e01a3bdc4a3b5a75 100644 (file)
@@ -419,10 +419,17 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_searchFlags                   = 0x0002014e,
                DRSUAPI_ATTRIBUTE_lDAPDisplayName               = 0x000201cc,
                DRSUAPI_ATTRIBUTE_name                          = 0x00090001,
+               DRSUAPI_ATTRIBUTE_userAccountControl            = 0x00090008,
                DRSUAPI_ATTRIBUTE_currentValue                  = 0x0009001b,
+               DRSUAPI_ATTRIBUTE_homeDirectory                 = 0x0009002c,
+               DRSUAPI_ATTRIBUTE_homeDrive                     = 0x0009002d,
+               DRSUAPI_ATTRIBUTE_scriptPath                    = 0x0009003e,
+               DRSUAPI_ATTRIBUTE_profilePath                   = 0x0009008b,
                DRSUAPI_ATTRIBUTE_objectSid                     = 0x00090092,
                DRSUAPI_ATTRIBUTE_schemaIDGUID                  = 0x00090094,
                DRSUAPI_ATTRIBUTE_dBCSPwd                       = 0x00090037,/* lmPwdHash */
+               DRSUAPI_ATTRIBUTE_logonHours                    = 0x00090040,
+               DRSUAPI_ATTRIBUTE_userWorkstations              = 0x00090056,
                DRSUAPI_ATTRIBUTE_unicodePwd                    = 0x0009005a,/* ntPwdHash */
                DRSUAPI_ATTRIBUTE_ntPwdHistory                  = 0x0009005e,
                DRSUAPI_ATTRIBUTE_priorValue                    = 0x00090064,
@@ -431,6 +438,7 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_trustAuthOutgoing             = 0x00090087,
                DRSUAPI_ATTRIBUTE_lmPwdHistory                  = 0x000900a0,
                DRSUAPI_ATTRIBUTE_sAMAccountName                = 0x000900dd,
+               DRSUAPI_ATTRIBUTE_sAMAccountType                = 0x0009012e,
                DRSUAPI_ATTRIBUTE_fSMORoleOwner                 = 0x00090171,
                DRSUAPI_ATTRIBUTE_systemFlags                   = 0x00090177,
                DRSUAPI_ATTRIBUTE_serverReference               = 0x00090203,
@@ -438,7 +446,11 @@ interface drsuapi
                DRSUAPI_ATTRIBUTE_initialAuthIncoming           = 0x0009021b,
                DRSUAPI_ATTRIBUTE_initialAuthOutgoing           = 0x0009021c,
                DRSUAPI_ATTRIBUTE_wellKnownObjects              = 0x0009026a,
+               DRSUAPI_ATTRIBUTE_dNSHostName                   = 0x0009026b,
                DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet = 0x0009027f,
+               DRSUAPI_ATTRIBUTE_userPrincipalName             = 0x00090290,
+               DRSUAPI_ATTRIBUTE_groupType                     = 0x000902ee,
+               DRSUAPI_ATTRIBUTE_servicePrincipalName          = 0x00090303,
                DRSUAPI_ATTRIBUTE_objectCategory                = 0x0009030e,
                DRSUAPI_ATTRIBUTE_gPLink                        = 0x0009037b,
                DRSUAPI_ATTRIBUTE_msDS_Behavior_Version         = 0x000905b3,
@@ -796,9 +808,10 @@ interface drsuapi
 
        [todo] WERROR drsuapi_DsGetMemberships(
                [in] policy_handle *bind_handle,
-               [in,out] int32 level,
-               [in] [switch_is(level)] drsuapi_DsGetMembershipsRequest req,
-               [out] [switch_is(level)] drsuapi_DsGetMembershipsCtr ctr
+               [in] int32 level,
+               [in,ref] [switch_is(level)] drsuapi_DsGetMembershipsRequest *req,
+               [out,ref] int32 *level_out,
+               [out,ref] [switch_is(*level_out)] drsuapi_DsGetMembershipsCtr *ctr
                );
 
        /*****************/
@@ -838,9 +851,10 @@ interface drsuapi
 
        [todo] WERROR drsuapi_DsGetNT4ChangeLog(
                [in] policy_handle *bind_handle,
-               [in,out] uint32 level,
-               [in] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest req,
-               [out] [switch_is(level)] drsuapi_DsGetNT4ChangeLogInfo info
+               [in] uint32 level,
+               [in,ref] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest *req,
+               [out,ref] uint32 *level_out,
+               [out,ref] [switch_is(*level_out)] drsuapi_DsGetNT4ChangeLogInfo *info
                );
 
        /*****************/
@@ -865,7 +879,7 @@ interface drsuapi
        } drsuapi_DsNameFlags;
 
        typedef [v1_enum] enum {
-               DRSUAPI_DS_NAME_FORMAT_UKNOWN                   = 0,
+               DRSUAPI_DS_NAME_FORMAT_UNKNOWN                  = 0,
                DRSUAPI_DS_NAME_FORMAT_FQDN_1779                = 1,
                DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT              = 2,
                DRSUAPI_DS_NAME_FORMAT_DISPLAY                  = 3,
@@ -948,9 +962,10 @@ interface drsuapi
 
        WERROR drsuapi_DsWriteAccountSpn(
                [in] policy_handle *bind_handle,
-               [in,out] int32 level,
-               [in,switch_is(level)] drsuapi_DsWriteAccountSpnRequest req,
-               [out,switch_is(level)] drsuapi_DsWriteAccountSpnResult res
+               [in] int32 level,
+               [in,ref,switch_is(level)] drsuapi_DsWriteAccountSpnRequest *req,
+               [out,ref] int32 *level_out,
+               [out,ref,switch_is(*level_out)] drsuapi_DsWriteAccountSpnResult *res
                );
 
        /*****************/
@@ -958,7 +973,7 @@ interface drsuapi
        typedef struct {
                [charset(UTF16),string] uint16 *server_dn;
                [charset(UTF16),string] uint16 *domain_dn;
-               uint32 unknown; /* 0x000000001 */
+               boolean32 commit;
        } drsuapi_DsRemoveDSServerRequest1;
 
        typedef [switch_type(int32)] union {
@@ -966,7 +981,7 @@ interface drsuapi
        } drsuapi_DsRemoveDSServerRequest;
 
        typedef struct {
-               WERROR status;
+               boolean32 last_dc_in_domain;
        } drsuapi_DsRemoveDSServerResult1;
 
        typedef [switch_type(int32)] union {
@@ -975,9 +990,10 @@ interface drsuapi
 
        WERROR drsuapi_DsRemoveDSServer(
                [in] policy_handle *bind_handle,
-               [in,out] int32 level,
-               [in,switch_is(level)] drsuapi_DsRemoveDSServerRequest req,
-               [out,switch_is(level)] drsuapi_DsRemoveDSServerResult res
+               [in] int32 level,
+               [in,ref,switch_is(level)] drsuapi_DsRemoveDSServerRequest *req,
+               [out,ref] int32 *level_out,
+               [out,ref,switch_is(*level_out)] drsuapi_DsRemoveDSServerResult *res
                );
 
        /*****************/
@@ -1032,6 +1048,29 @@ interface drsuapi
                [size_is(count)] drsuapi_DsGetDCInfo2 *array;
        } drsuapi_DsGetDCInfoCtr2;
 
+       typedef struct {
+               [charset(UTF16),string] uint16 *netbios_name;
+               [charset(UTF16),string] uint16 *dns_name;
+               [charset(UTF16),string] uint16 *site_name;
+               [charset(UTF16),string] uint16 *site_dn;
+               [charset(UTF16),string] uint16 *computer_dn;
+               [charset(UTF16),string] uint16 *server_dn;
+               [charset(UTF16),string] uint16 *ntds_dn;
+               uint32 is_pdc;
+               uint32 is_enabled;
+               uint32 is_gc;
+               uint32 is_rodc;
+               GUID site_guid;
+               GUID computer_guid;
+               GUID server_guid;
+               GUID ntds_guid;
+       } drsuapi_DsGetDCInfo3;
+
+       typedef struct {
+               [range(0,10000)] uint32 count;
+               [size_is(count)] drsuapi_DsGetDCInfo3 *array;
+       } drsuapi_DsGetDCInfoCtr3;
+
        /*
         * this represents an active connection to the
         * Directory System Agent (DSA)
@@ -1063,12 +1102,14 @@ interface drsuapi
        typedef [v1_enum] enum {
                DRSUAPI_DC_INFO_CTR_1  = 1,
                DRSUAPI_DC_INFO_CTR_2  = 2,
+               DRSUAPI_DC_INFO_CTR_3  = 3,
                DRSUAPI_DC_CONNECTION_CTR_01 = -1
        } drsuapi_DsGetDCInfoCtrLevels;
 
         typedef [switch_type(int32)] union {
                [case(DRSUAPI_DC_INFO_CTR_1)]  drsuapi_DsGetDCInfoCtr1  ctr1;
                [case(DRSUAPI_DC_INFO_CTR_2)]  drsuapi_DsGetDCInfoCtr2  ctr2;
+               [case(DRSUAPI_DC_INFO_CTR_3)]  drsuapi_DsGetDCInfoCtr3  ctr3;
                [case(DRSUAPI_DC_CONNECTION_CTR_01)] drsuapi_DsGetDCConnectionCtr01 ctr01;
        } drsuapi_DsGetDCInfoCtr;
 
@@ -1193,9 +1234,10 @@ interface drsuapi
 
        [public] WERROR drsuapi_DsAddEntry(
                [in] policy_handle *bind_handle,
-               [in,out] int32 level,
-               [in,switch_is(level)] drsuapi_DsAddEntryRequest req,
-               [out,switch_is(level)] drsuapi_DsAddEntryCtr ctr
+               [in] int32 level,
+               [in,ref,switch_is(level)] drsuapi_DsAddEntryRequest *req,
+               [out,ref] int32 *level_out,
+               [out,ref,switch_is(*level_out)] drsuapi_DsAddEntryCtr *ctr
                );
 
        /*****************/
@@ -1319,7 +1361,7 @@ interface drsuapi
        typedef [switch_type(drsuapi_DsReplicaOpType)] union {
                [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)]         drsuapi_DsReplicaSyncOptions sync;
                [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)]          drsuapi_DsReplicaAddOptions add;
-               [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)]       drsuapi_DsReplicaDeleteOptions delete;
+               [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)]       drsuapi_DsReplicaDeleteOptions op_delete;
                [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)]       drsuapi_DsReplicaModifyOptions modify;
                [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)]  drsuapi_DsReplicaUpdateRefsOptions update_refs;
                [default] uint32 unknown;
@@ -1474,9 +1516,9 @@ interface drsuapi
        WERROR drsuapi_DsReplicaGetInfo(
                [in] policy_handle *bind_handle,
                [in] drsuapi_DsReplicaGetInfoLevel level,
-               [in,switch_is(level)] drsuapi_DsReplicaGetInfoRequest req,
-               [out] drsuapi_DsReplicaInfoType info_type,
-               [out,switch_is(info_type)] drsuapi_DsReplicaInfo info
+               [in,ref,switch_is(level)] drsuapi_DsReplicaGetInfoRequest *req,
+               [out,ref] drsuapi_DsReplicaInfoType *info_type,
+               [out,ref,switch_is(*info_type)] drsuapi_DsReplicaInfo *info
                );
 
        /*****************/
@@ -1506,12 +1548,12 @@ interface drsuapi
 
        WERROR drsuapi_DsGetMemberships2(
                [in] policy_handle *bind_handle,
-               [in,out] int32 level,
-               [in] [switch_is(level)] drsuapi_DsGetMemberships2Request req,
-               [out] [switch_is(level)] drsuapi_DsGetMemberships2Ctr ctr
+               [in] int32 level,
+               [in,ref] [switch_is(level)] drsuapi_DsGetMemberships2Request *req,
+               [out,ref] int32 *level_out,
+               [out,ref] [switch_is(*level_out)] drsuapi_DsGetMemberships2Ctr *ctr
                );
 
-
        /*****************/
         /* Function 0x16 */
        [todo] WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS();
@@ -1551,8 +1593,8 @@ interface drsuapi
        WERROR drsuapi_QuerySitesByCost(
                [in] policy_handle *bind_handle,
                [in] int32 level,
-               [in] [switch_is(level)] drsuapi_QuerySitesByCostRequest req,
-               [out] int32 level_out,
-               [out] [switch_is(level_out)] drsuapi_QuerySitesByCostCtr ctr
+               [in,ref] [switch_is(level)] drsuapi_QuerySitesByCostRequest *req,
+               [out,ref] int32 *level_out,
+               [out,ref] [switch_is(*level_out)] drsuapi_QuerySitesByCostCtr *ctr
        );
 }