9a4fcafcccb8a813b5dac45f441b57d4b11d7031
[samba.git] / source4 / librpc / idl / dssetup.idl
1 #include "idl_types.h"
2
3 /*
4   dssetup interface definition
5 */
6
7 [
8         uuid("3919286a-b10c-11d0-9ba8-00c04fd92ef5"),
9         version(0.0),
10         endpoint("ncacn_np:[\\pipe\\lsarpc]", "ncacn_np:[\\pipe\\lsass]", "ncacn_ip_tcp:", "ncalrpc:"),
11         pointer_default(unique),
12         helpstring("Active Directory Setup")
13 ] interface dssetup
14 {
15         /**********************************************/
16         /* Function 0x00                              */
17
18         typedef enum {
19                 DS_ROLE_STANDALONE_WORKSTATION = 0,
20                 DS_ROLE_MEMBER_WORKSTATION     = 1,
21                 DS_ROLE_STANDALONE_SERVER      = 2,
22                 DS_ROLE_MEMBER_SERVER          = 3,
23                 DS_ROLE_BACKUP_DC              = 4,
24                 DS_ROLE_PRIMARY_DC             = 5
25         } dssetup_DsRole;
26
27         typedef [bitmap32bit] bitmap {
28                 DS_ROLE_PRIMARY_DS_RUNNING              = 0x00000001,
29                 DS_ROLE_PRIMARY_DS_MIXED_MODE           = 0x00000002,
30                 DS_ROLE_UPGRADE_IN_PROGRESS             = 0x00000004,
31                 DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT     = 0x01000000
32         } dssetup_DsRoleFlags;
33
34         typedef struct {
35                 dssetup_DsRole          role;
36                 dssetup_DsRoleFlags     flags;
37                 unistr                  *domain;
38                 unistr                  *dns_domain;
39                 unistr                  *forest;
40                 GUID                    domain_guid;
41         } dssetup_DsRolePrimaryDomInfoBasic;
42
43         typedef [v1_enum] enum {
44                 DS_ROLE_NOT_UPGRADING = 0,
45                 DS_ROLE_UPGRADING     = 1
46         } dssetup_DsUpgrade;
47
48         typedef enum {
49                 DS_ROLE_PREVIOUS_UNKNOWN = 0,
50                 DS_ROLE_PREVIOUS_PRIMARY = 1,
51                 DS_ROLE_PREVIOUS_BACKUP  = 2
52         } dssetup_DsPrevious;
53
54         typedef struct {
55                 dssetup_DsUpgrade       upgrading;
56                 dssetup_DsPrevious      previous_role;
57         } dssetup_DsRoleUpgradeStatus;
58
59         typedef enum {
60                 DS_ROLE_OP_IDLE         = 0,
61                 DS_ROLE_OP_ACTIVE       = 1,
62                 DS_ROLE_OP_NEEDS_REBOOT = 2
63         } dssetup_DsRoleOp;
64
65         typedef struct {
66                 dssetup_DsRoleOp status;
67         } dssetup_DsRoleOpStatus;
68
69         typedef enum {
70                 DS_ROLE_BASIC_INFORMATION       = 1,
71                 DS_ROLE_UPGRADE_STATUS          = 2,
72                 DS_ROLE_OP_STATUS               = 3
73         } dssetup_DsRoleInfoLevel;
74
75         typedef union {
76                 [case(DS_ROLE_BASIC_INFORMATION)] dssetup_DsRolePrimaryDomInfoBasic     basic;
77                 [case(DS_ROLE_UPGRADE_STATUS)]    dssetup_DsRoleUpgradeStatus           upgrade;
78                 [case(DS_ROLE_OP_STATUS)]         dssetup_DsRoleOpStatus                opstatus;
79         } dssetup_DsRoleInfo;
80
81         WERROR dssetup_DsRoleGetPrimaryDomainInformation(
82                 [in] dssetup_DsRoleInfoLevel level,
83                 [out,switch_is(level)] dssetup_DsRoleInfo *info
84                 );
85
86         /*
87           w2k3 has removed all the calls below from their implementation.
88           These stubs are left here only as a way of documenting the names
89           of the calls in case they ever turn up on the wire.
90         */
91         WERROR dssetup_DsRoleDnsNameToFlatName();
92         WERROR dssetup_DsRoleDcAsDc();
93         WERROR dssetup_DsRoleDcAsReplica();
94         WERROR dssetup_DsRoleDemoteDc();
95         WERROR dssetup_DsRoleGetDcOperationProgress();
96         WERROR dssetup_DsRoleGetDcOperationResults();
97         WERROR dssetup_DsRoleCancel();
98         WERROR dssetup_DsRoleServerSaveStateForUpgrade();
99         WERROR dssetup_DsRoleUpgradeDownlevelServer();
100         WERROR dssetup_DsRoleAbortDownlevelServerUpgrade();
101 }