librpc: add clusapi_ClusterGroupState enum to IDL.
[gd/samba-autobuild/.git] / librpc / idl / fsrvp.idl
1 #include "idl_types.h"
2
3 /*
4  * File Server Remote VSS Protocol Definitions
5  */
6
7 import "misc.idl";
8
9 [ uuid("a8e0653c-2744-4389-a61d-7373df8b2292"),
10   version(1.0),
11   endpoint("ncacn_np:[\\pipe\\FssagentRpc]"),
12   helpstring("File Server Remote VSS Protocol"),
13   pointer_default(unique)
14 ] interface FileServerVssAgent
15 {
16         const uint32 FSRVP_E_BAD_STATE = 0x80042301;
17         const uint32 FSRVP_E_SHADOW_COPY_SET_IN_PROGRESS = 0x80042316;
18         const uint32 FSRVP_E_NOT_SUPPORTED = 0x8004230C;
19         const uint32 FSRVP_E_WAIT_TIMEOUT = 0x00000102;
20         const uint32 FSRVP_E_WAIT_FAILED = 0xFFFFFFFF;
21         const uint32 FSRVP_E_OBJECT_ALREADY_EXISTS = 0x8004230D;
22         const uint32 FSRVP_E_OBJECT_NOT_FOUND = 0x80042308;
23         const uint32 FSRVP_E_UNSUPPORTED_CONTEXT = 0x8004231B;
24         const uint32 FSRVP_E_BAD_ID = 0x80042302;       /* wire, not documented */
25         const uint32 FSRVP_E_SHADOWCOPYSET_ID_MISMATCH = 0x80042501;
26         typedef struct {
27                 GUID ShadowCopySetId;
28                 GUID ShadowCopyId;
29                 [string,charset(UTF16)] uint16 *ShareNameUNC;
30                 [string,charset(UTF16)] uint16 *ShadowCopyShareName;
31                 NTTIME tstamp;
32         } fssagent_share_mapping_1;
33
34         typedef union {
35                 [case(1)] fssagent_share_mapping_1 *ShareMapping1;
36                 [default];
37         } fssagent_share_mapping;
38
39         const uint32 FSRVP_RPC_VERSION_1 = 0x000000001;
40         DWORD fss_GetSupportedVersion(
41                 [out] uint32 *MinVersion,
42                 [out] uint32 *MaxVersion);
43
44         const uint32 ATTR_PERSISTENT = 0x00000001;
45         const uint32 ATTR_NO_AUTO_RECOVERY = 0x00000002;
46         const uint32 ATTR_NO_AUTO_RELEASE = 0x00000008;
47         const uint32 ATTR_NO_WRITERS = 0x00000010;
48         const uint32 ATTR_FILE_SHARE = 0x04000000;
49         const uint32 ATTR_AUTO_RECOVERY = 0x00400000;
50
51         const uint32 FSRVP_CTX_BACKUP = 0x00000000;
52         const uint32 FSRVP_CTX_FILE_SHARE_BACKUP = 0x00000010;
53         const uint32 FSRVP_CTX_NAS_ROLLBACK = 0x00000019;
54         const uint32 FSRVP_CTX_APP_ROLLBACK = 0x00000009;
55         DWORD fss_SetContext(
56                 [in] uint32 Context);
57
58         DWORD fss_StartShadowCopySet(
59                 [in] GUID ClientShadowCopySetId,
60                 [out] GUID *pShadowCopySetId);
61
62         DWORD fss_AddToShadowCopySet(
63                 [in] GUID ClientShadowCopyId,
64                 [in] GUID ShadowCopySetId,
65                 [in] [string,charset(UTF16)] uint16 *ShareName,
66                 [out] GUID *pShadowCopyId);
67
68         DWORD fss_CommitShadowCopySet(
69                 [in] GUID ShadowCopySetId,
70                 [in] uint32 TimeOutInMilliseconds);
71
72         DWORD fss_ExposeShadowCopySet(
73                 [in] GUID ShadowCopySetId,
74                 [in] uint32 TimeOutInMilliseconds);
75
76         DWORD fss_RecoveryCompleteShadowCopySet(
77                 [in] GUID ShadowCopySetId);
78
79         DWORD fss_AbortShadowCopySet(
80                 [in] GUID ShadowCopySetId);
81
82         DWORD fss_IsPathSupported(
83                 [in] [string,charset(UTF16)] uint16 *ShareName,
84                 [out] boolean32 *SupportedByThisProvider,
85                 [out] [string,charset(UTF16)] uint16 **OwnerMachineName);
86
87         DWORD fss_IsPathShadowCopied(
88                 [in] [string,charset(UTF16)] uint16 *ShareName,
89                 [out] boolean32 *ShadowCopyPresent,
90                 [out] int32 *ShadowCopyCompatibility);
91
92         DWORD fss_GetShareMapping(
93                 [in] GUID ShadowCopyId,
94                 [in] GUID ShadowCopySetId,
95                 [in] [string,charset(UTF16)] uint16 *ShareName,
96                 [in] uint32 Level,
97                 [out,switch_is(Level)] fssagent_share_mapping *ShareMapping);
98
99         DWORD fss_DeleteShareMapping(
100                 [in] GUID ShadowCopySetId,
101                 [in] GUID ShadowCopyId,
102                 [in] [string,charset(UTF16)] uint16 *ShareName);
103
104         DWORD fss_PrepareShadowCopySet(
105                 [in] GUID ShadowCopySetId,
106                 [in] uint32 TimeOutInMilliseconds);
107 }