s3-rap: add rap_NetRemoteTOD to IDL.
[samba.git] / librpc / idl / rap.idl
index 061eb8f2fb9f23875ba56a854420b08bc6fa6fd6..780951c7503489ccfd5770d646aa3f63d3ef572c 100644 (file)
 ]
 interface rap
 {
+       typedef [public,noprint] enum {
+               NERR_Success = 0
+       } rap_status;
+
        const int RAP_WshareEnum                        = 0;
        const int RAP_WshareGetInfo                     = 1;
        const int RAP_WshareSetInfo                     = 2;
@@ -341,13 +345,22 @@ interface rap
        [public] void rap_NetShareEnum(
                [in] uint16 level,
                [in] uint16 bufsize,
-               [out] uint16 status,
+               [out] rap_status status,
                [out] uint16 convert,
                [out] uint16 count,
                [out] uint16 available,
                [out,switch_is(level)] rap_share_info *info
        );
 
+       /* not documented in MS-RAP */
+       [public] void rap_NetShareAdd(
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [in,switch_is(level)] rap_share_info info,
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
        typedef struct {
                uint8 name[16];
        } rap_server_info_0;
@@ -370,17 +383,17 @@ interface rap
                [in] uint16 bufsize,
                [in] uint32 servertype,
                [in] astring *domain,
-               [out] uint16 status,
+               [out] rap_status status,
                [out] uint16 convert,
                [out] uint16 count,
                [out] uint16 available,
-               [out,switch_is(level)] rap_server_info *info
+               [out,switch_is(level)] rap_server_info info[count]
        );
 
        [public] void rap_WserverGetInfo(
                [in] uint16 level,
                [in] uint16 bufsize,
-               [out] uint16 status,
+               [out] rap_status status,
                [out] uint16 convert,
                [out] uint16 available,
                [out,switch_is(level)] rap_server_info info
@@ -466,6 +479,13 @@ interface rap
                uint16 PrinterNameOffsetHigh;
        } rap_PrintJobInfo3;
 
+       typedef [public,nodiscriminant] union {
+               [case(0)] rap_PrintJobInfo0 info0;
+               [case(1)] rap_PrintJobInfo1 info1;
+               [case(2)] rap_PrintJobInfo2 info2;
+               [case(3)] rap_PrintJobInfo3 info3;
+       } rap_printj_info;
+
        typedef [public] enum {
                PRQ_ACTIVE      = 0x0000,
                PRQ_PAUSE       = 0x0001,
@@ -499,7 +519,7 @@ interface rap
 
        typedef struct {
                rap_PrintQueue1 queue;
-               rap_PrintJobInfo1 job;
+               rap_PrintJobInfo1 job[queue.PrintJobCount];
        } rap_PrintQueue2;
 
        typedef [public] struct {
@@ -529,7 +549,7 @@ interface rap
 
        typedef struct {
                rap_PrintQueue3 queue;
-               rap_PrintJobInfo2 job;
+               rap_PrintJobInfo2 job[queue.PrintJobCount];
        } rap_PrintQueue4;
 
        typedef struct {
@@ -546,10 +566,10 @@ interface rap
                [case(5)] rap_PrintQueue5 info5;
        } rap_printq_info;
 
-       [public,noprint] void rap_NetPrintQEnum(
+       [public] void rap_NetPrintQEnum(
                [in] uint16 level,
                [in] uint16 bufsize,
-               [out] uint16 status,
+               [out] rap_status status,
                [out] uint16 convert,
                [out] uint16 count,
                [out] uint16 available,
@@ -560,7 +580,7 @@ interface rap
                [in] astring PrintQueueName,
                [in] uint16 level,
                [in] uint16 bufsize,
-               [out] uint16 status,
+               [out] rap_status status,
                [out] uint16 convert,
                [out] uint16 available,
                [out,switch_is(level)] rap_printq_info info
@@ -568,22 +588,406 @@ interface rap
 
        [public] void rap_NetPrintJobPause(
                [in] uint16 JobID,
-               [out] uint16 status,
+               [out] rap_status status,
                [out] uint16 convert
        );
 
        [public] void rap_NetPrintJobContinue(
                [in] uint16 JobID,
-               [out] uint16 status,
+               [out] rap_status status,
                [out] uint16 convert
        );
 
        [public] void rap_NetPrintJobDelete(
                [in] uint16 JobID,
-               [out] uint16 status,
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetPrintQueuePause(
+               [in] astring PrintQueueName,
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetPrintQueueResume(
+               [in] astring PrintQueueName,
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetPrintQueuePurge(
+               [in] astring PrintQueueName,
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetPrintJobEnum(
+               [in] astring PrintQueueName,
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [out] rap_status status,
+               [out] uint16 convert,
+               [out] uint16 count,
+               [out] uint16 available,
+               [out,switch_is(level)] rap_printj_info info[count]
+       );
+
+       [public] void rap_NetPrintJobGetInfo(
+               [in] uint16 JobID,
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [out] rap_status status,
+               [out] uint16 convert,
+               [out] uint16 available,
+               [out,switch_is(level)] rap_printj_info info
+       );
+
+       typedef enum {
+               RAP_PARAM_JOBNUM                = 0x0001,
+               RAP_PARAM_USERNAME              = 0x0002,
+               RAP_PARAM_NOTIFYNAME            = 0x0003,
+               RAP_PARAM_DATATYPE              = 0x0004,
+               RAP_PARAM_PARAMETERS_STRING     = 0x0005,
+               RAP_PARAM_JOBPOSITION           = 0x0006,
+               RAP_PARAM_JOBSTATUS             = 0x0007,
+               RAP_PARAM_JOBSTATUSSTR          = 0x0008,
+               RAP_PARAM_TIMESUBMITTED         = 0x0009,
+               RAP_PARAM_JOBSIZE               = 0x000a,
+               RAP_PARAM_JOBCOMMENT            = 0x000b
+       } rap_JobInfoParamNum;
+
+       typedef [nodiscriminant] union {
+               [case (RAP_PARAM_JOBNUM)] uint16 value;
+               [case (RAP_PARAM_USERNAME)] astring string;
+               [case (RAP_PARAM_NOTIFYNAME)] astring string;
+               [case (RAP_PARAM_DATATYPE)] astring string;
+               [case (RAP_PARAM_PARAMETERS_STRING)] astring string;
+               [case (RAP_PARAM_JOBPOSITION)] uint16 value;
+               [case (RAP_PARAM_JOBSTATUS)] uint16 value;
+               [case (RAP_PARAM_JOBSTATUSSTR)] astring string;
+               [case (RAP_PARAM_TIMESUBMITTED)] uint32 value4;
+               [case (RAP_PARAM_JOBSIZE)] uint32 value4;
+               [case (RAP_PARAM_JOBCOMMENT)] astring string;
+       } rap_JobInfoParam;
+
+       [public] void rap_NetPrintJobSetInfo(
+               [in] uint16 JobID,
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [in] rap_JobInfoParamNum ParamNum,
+               [in,switch_is(ParamNum)] rap_JobInfoParam Param,
+               [out] rap_status status,
                [out] uint16 convert
        );
 
+       /* all not documented in MS-RAP */
+
+       typedef struct {
+               [charset(DOS)] uint8 PrintDestName[9];
+       } rap_PrintDest0;
+
+       typedef struct {
+               [charset(DOS)] uint8 PrintDestName[9];
+               [charset(DOS)] uint8 UserName[21];
+               uint16 JobId;
+               uint16 Status;
+               [relative_short] astring *StatusStringName;
+               uint16 PrintQueueNameHigh;
+               uint16 Time;
+       } rap_PrintDest1;
+
+       typedef struct {
+               [relative_short] astring *PrinterName;
+               uint16 PrinterNameHigh;
+       } rap_PrintDest2;
+
+       typedef struct {
+               [relative_short] astring *PrinterName;
+               uint16 PrinterNameHigh;
+               [relative_short] astring *UserName;
+               uint16 UserNameHigh;
+               [relative_short] astring *LogAddr;
+               uint16 LogAddrHigh;
+               uint16 JobId;
+               uint16 Status;
+               [relative_short] astring *StatusStringName;
+               uint16 PrintQueueNameHigh;
+               [relative_short] astring *Comment;
+               uint16 CommentHigh;
+               [relative_short] astring *Drivers;
+               uint16 DriversHigh;
+               uint16 Time;
+               uint16 Pad1;
+       } rap_PrintDest3;
+
+       typedef [public,nodiscriminant] union {
+               [case(0)] rap_PrintDest0 info0;
+               [case(1)] rap_PrintDest1 info1;
+               [case(2)] rap_PrintDest2 info2;
+               [case(3)] rap_PrintDest3 info3;
+       } rap_printdest_info;
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetPrintDestEnum(
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [out] rap_status status,
+               [out] uint16 convert,
+               [out] uint16 count,
+               [out] uint16 available,
+               [out,switch_is(level)] rap_printdest_info info[count]
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetPrintDestGetInfo(
+               [in] astring PrintDestName,
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [out] rap_status status,
+               [out] uint16 convert,
+               [out] uint16 available,
+               [out,switch_is(level)] rap_printdest_info info
+       );
+
+       [public] void rap_NetUserPasswordSet2(
+               [in] astring UserName,
+               [in] uint8 OldPassword[16],
+               [in] uint8 NewPassword[16],
+               [in] uint16 EncryptedPassword,
+               [in] uint16 RealPasswordLength,
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetOEMChangePassword(
+               [in] astring UserName,
+               [in] uint8 crypt_password[516],
+               [in] uint8 password_hash[16],
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
+       typedef struct {
+               [charset(DOS)] uint8 Name[21];
+       } rap_NetUserInfo0;
+
+       typedef [public] enum {
+               USER_PRIV_GUEST = 0,
+               USER_PRIV_USER  = 1,
+               USER_PRIV_ADMIN = 2
+       } rap_UserPriv;
+
+       typedef struct {
+               [charset(DOS)] uint8 Name[21];
+               uint8 Pad;
+               uint8 Password[16];
+               time_t PasswordAge;
+               rap_UserPriv Priv;
+               [relative_short] astring *HomeDir;
+               uint16 HomeDirHigh;
+               [relative_short] astring *Comment;
+               uint16 CommentHigh;
+               uint16 Flags; /* FIXME */
+               [relative_short] astring *ScriptPath;
+               uint16 ScriptPathHigh;
+       } rap_NetUserInfo1;
+
+       typedef [public,v1_enum] enum {
+               AF_OP_PRINT     = 0,
+               AF_OP_COMM      = 1,
+               AF_OP_SERVER    = 2,
+               AF_OP_ACCOUNTS  = 3
+       } rap_AuthFlags;
+
+       typedef [public] struct {
+               uint8 LogonHours[21];
+       } rap_LogonHours;
+
+       typedef struct {
+               [charset(DOS)] uint8 Name[21];
+               uint8 Pad;
+               uint8 Password[16];
+               time_t PasswordAge;
+               rap_UserPriv Priv;
+               [relative_short] astring *HomeDir;
+               uint16 HomeDirHigh;
+               [relative_short] astring *Comment;
+               uint16 CommentHigh;
+               uint16 Flags; /* FIXME */
+               [relative_short] astring *ScriptPath;
+               uint16 ScriptPathHigh;
+               rap_AuthFlags AuthFlags;
+               [relative_short] astring *FullName;
+               uint16 FullNameHigh;
+               [relative_short] astring *UsrComment;
+               uint16 UsrCommentHigh;
+               [relative_short] astring *pParms;
+               uint16 pParmsHigh;
+               [relative_short] astring *WorkStations;
+               uint16 WorkStationsHigh;
+               time_t LastLogon;
+               time_t LastLogOff;
+               time_t AcctExpires;
+               uint32 MaxStorage;
+               uint16 UnitsPerWeek;
+               [relative_short] rap_LogonHours *LogonHours;
+               uint16 LogonHoursHigh;
+               uint16 BadPwCount;
+               uint16 NumLogons;
+               [relative_short] astring *LogonServer;
+               uint16 LogonServerHigh;
+               uint16 CountryCode;
+               uint16 CodePage;
+       } rap_NetUserInfo2;
+
+       typedef struct {
+               [charset(DOS)] uint8 Name[21];
+               uint8 Pad;
+               [relative_short] astring *Comment;
+               uint16 CommentHigh;
+               [relative_short] astring *UsrComment;
+               uint16 UsrCommentHigh;
+               [relative_short] astring *FullName;
+               uint16 FullNameHigh;
+       } rap_NetUserInfo10;
+
+       typedef struct {
+               [charset(DOS)] uint8 Name[21];
+               uint8 Pad;
+               [relative_short] astring *Comment;
+               uint16 CommentHigh;
+               [relative_short] astring *UsrComment;
+               uint16 UsrCommentHigh;
+               [relative_short] astring *FullName;
+               uint16 FullNameHigh;
+               rap_UserPriv Priv;
+               rap_AuthFlags AuthFlags;
+               time_t PasswordAge;
+               [relative_short] astring *HomeDir;
+               uint16 HomeDirHigh;
+               [relative_short] astring *Parms;
+               uint16 ParmsHigh;
+               time_t LastLogon;
+               time_t LastLogOff;
+               uint16 BadPWCount;
+               uint16 NumLogons;
+               [relative_short] astring *LogonServer;
+               uint16 LogonServerHigh;
+               uint16 CountryCode;
+               [relative_short] astring *WorkStations;
+               uint16 WorkStationsHigh;
+               uint32 MaxStorage;
+               uint16 UnitsPerWeek;
+               [relative_short] rap_LogonHours *LogonHours;
+               uint16 LogonHoursHigh;
+               uint16 CodePage;
+       } rap_NetUserInfo11;
+
+       typedef [public,nodiscriminant] union {
+               [case(0)] rap_NetUserInfo0 info0;
+               [case(1)] rap_NetUserInfo1 info1;
+               [case(2)] rap_NetUserInfo2 info2;
+               [case(10)] rap_NetUserInfo10 info10;
+               [case(11)] rap_NetUserInfo11 info11;
+       } rap_netuser_info;
+
+       [public] void rap_NetUserGetInfo(
+               [in] astring UserName,
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [out] rap_status status,
+               [out] uint16 convert,
+               [out] uint16 available,
+               [out,switch_is(level)] rap_netuser_info info
+       );
+
+       typedef struct {
+               [relative_short] astring *ComputerName;
+               uint16 ComputerNameHigh;
+               [relative_short] astring *UserName;
+               uint16 UserNameHigh;
+               uint16 num_conns;
+               uint16 num_opens;
+               uint16 num_users;
+               uint32 sess_time;
+               uint32 idle_time;
+               uint32 user_flags;
+               [relative_short] astring *CliTypeName;
+               uint16 CliTypeNameHigh;
+       } rap_session_info_2;
+
+       typedef [public,nodiscriminant] union {
+               [case(2)] rap_session_info_2 info2;
+       } rap_session_info;
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetSessionEnum(
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [out] rap_status status,
+               [out] uint16 convert,
+               [out] uint16 count,
+               [out] uint16 available,
+               [out,switch_is(level)] rap_session_info info[count]
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetSessionGetInfo(
+               [in] astring SessionName,
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [out] rap_status status,
+               [out] uint16 convert,
+               [out] uint16 available,
+               [out,switch_is(level)] rap_session_info info
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetUserAdd(
+               [in] uint16 level,
+               [in] uint16 bufsize,
+               [in] uint16 pwdlength,
+               [in] uint16 unknown,
+               [in,switch_is(level)] rap_netuser_info info,
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
+       /* not documented in MS-RAP */
+       [public] void rap_NetUserDelete(
+               [in] astring UserName,
+               [out] rap_status status,
+               [out] uint16 convert
+       );
+
+       typedef [public] struct {
+               uint32 TimeSinceJan11970;
+               uint32 TimeSinceBoot;
+               uint8 Hours;
+               uint8 Minutes;
+               uint8 Seconds;
+               uint8 Hundreds;
+               uint16 TimeZone;
+               uint16 ClockFrequency;
+               uint8 Day;
+               uint8 Month;
+               uint16 Year;
+               uint8 Weekday;
+       } rap_TimeOfDayInfo;
+
+       [public] void rap_NetRemoteTOD(
+               [in] uint16 bufsize,
+               [out] rap_status status,
+               [out] uint16 convert,
+               [out] rap_TimeOfDayInfo tod
+       );
+
        /* Parameter description strings for RAP calls   */
        /* Names are defined name for RAP call with _REQ */
        /* appended to end.                              */