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