Move shared DCE/RPC IDL files to root IDL dir.
[kai/samba-autobuild/.git] / librpc / idl / atsvc.idl
1 /*
2   atsvc interface definition
3 */
4
5 [ uuid("1ff70682-0a51-30e8-076d-740be8cee98b"),
6   version(1.0),
7   pointer_default(unique),
8   helpstring("Microsoft AT-Scheduler Service"),
9   endpoint("ncacn_np:[\\pipe\\atsvc]", "ncalrpc:")
10 ] interface atsvc
11 {
12         typedef [bitmap32bit] bitmap {
13                 First           =       0x00000001,
14                 Second          =       0x00000002,
15                 Third           =       0x00000004,
16                 Fourth          =       0x00000008,
17                 Fifth           =       0x00000010,
18                 Sixth           =       0x00000020,
19                 Seventh         =       0x00000040,
20                 Eight           =       0x00000080,
21                 Ninth           =       0x00000100,
22                 Tenth           =       0x00000200,
23                 Eleventh        =       0x00000400,
24                 Twelfth         =       0x00000800,
25                 Thitteenth      =       0x00001000,
26                 Fourteenth      =       0x00002000,
27                 Fifteenth       =       0x00004000,
28                 Sixteenth       =       0x00008000,
29                 Seventeenth     =       0x00010000,
30                 Eighteenth      =       0x00020000,
31                 Ninteenth       =       0x00040000,
32                 Twentyth        =       0x00080000,
33                 Twentyfirst     =       0x00100000,
34                 Twentysecond    =       0x00200000,
35                 Twentythird     =       0x00400000,
36                 Twentyfourth    =       0x00800000,
37                 Twentyfifth     =       0x01000000,
38                 Twentysixth     =       0x02000000,
39                 Twentyseventh   =       0x04000000,
40                 Twentyeighth    =       0x08000000,
41                 Twentyninth     =       0x10000000,
42                 Thirtieth       =       0x20000000,
43                 Thirtyfirst     =       0x40000000
44         } atsvc_DaysOfMonth;
45
46         typedef [bitmap8bit] bitmap {
47                 JOB_RUN_PERIODICALLY    = 0x01,
48                 JOB_EXEC_ERROR          = 0x02,
49                 JOB_RUNS_TODAY          = 0x04,
50                 JOB_ADD_CURRENT_DATE    = 0x08,
51                 JOB_NONINTERACTIVE      = 0x10
52         } atsvc_Flags;
53
54         typedef [bitmap8bit] bitmap {
55                 DAYSOFWEEK_MONDAY    = 0x01,
56                 DAYSOFWEEK_TUESDAY   = 0x02,
57                 DAYSOFWEEK_WEDNESDAY = 0x04,
58                 DAYSOFWEEK_THURSDAY  = 0x08,
59                 DAYSOFWEEK_FRIDAY    = 0x10,
60                 DAYSOFWEEK_SATURDAY  = 0x20,
61                 DAYSOFWEEK_SUNDAY    = 0x40
62         } atsvc_DaysOfWeek;
63         
64         typedef struct {
65                 uint32 job_time;
66                 atsvc_DaysOfMonth days_of_month;
67                 atsvc_DaysOfWeek days_of_week;
68                 atsvc_Flags flags;
69                 [string,charset(UTF16)] uint16 *command;
70         } atsvc_JobInfo;
71
72         /******************/
73         /* Function: 0x00 */
74         [public] NTSTATUS atsvc_JobAdd(
75                 [in,unique,string,charset(UTF16)] uint16 *servername,
76                 [in] atsvc_JobInfo *job_info,
77                 [out,ref]        uint32 *job_id
78         );
79
80         /******************/
81         /* Function: 0x01 */
82         [public] NTSTATUS atsvc_JobDel(
83                 [in,unique,string,charset(UTF16)] uint16 *servername,
84                 [in]    uint32 min_job_id,
85                 [in]    uint32 max_job_id
86         );
87
88         typedef struct {
89                 uint32 job_id;
90                 uint32 job_time;
91                 atsvc_DaysOfMonth days_of_month;
92                 atsvc_DaysOfWeek days_of_week;
93                 atsvc_Flags flags;
94                 [string,charset(UTF16)] uint16 *command;
95         } atsvc_JobEnumInfo;
96
97         typedef struct {
98                 uint32 entries_read;
99                 [size_is(entries_read)] atsvc_JobEnumInfo *first_entry;
100         } atsvc_enum_ctr;
101
102         /******************/
103         /* Function: 0x02 */
104         [public] NTSTATUS atsvc_JobEnum(
105                 [in,unique,string,charset(UTF16)] uint16 *servername,
106                 [in,out]         atsvc_enum_ctr *ctr,
107                 [in]         uint32 preferred_max_len,
108                 [out,ref]            uint32 *total_entries,
109                 [in,out,unique]     uint32 *resume_handle
110         );
111
112         /******************/
113         /* Function: 0x03 */
114         [public] NTSTATUS atsvc_JobGetInfo(
115                 [in,unique,string,charset(UTF16)]       uint16 *servername,
116                 [in]    uint32 job_id,
117                 [out]   atsvc_JobInfo **job_info
118         );
119 }