/* header auto-generated by pidl */

#include <stdint.h>

#include "libcli/util/ntstatus.h"

#include "librpc/gen_ndr/misc.h"
#ifndef _HEADER_dssetup
#define _HEADER_dssetup

enum dssetup_DsRole
#ifndef USE_UINT_ENUMS
 {
	DS_ROLE_STANDALONE_WORKSTATION=(int)(0),
	DS_ROLE_MEMBER_WORKSTATION=(int)(1),
	DS_ROLE_STANDALONE_SERVER=(int)(2),
	DS_ROLE_MEMBER_SERVER=(int)(3),
	DS_ROLE_BACKUP_DC=(int)(4),
	DS_ROLE_PRIMARY_DC=(int)(5)
}
#else
 { __donnot_use_enum_dssetup_DsRole=0x7FFFFFFF}
#define DS_ROLE_STANDALONE_WORKSTATION ( 0 )
#define DS_ROLE_MEMBER_WORKSTATION ( 1 )
#define DS_ROLE_STANDALONE_SERVER ( 2 )
#define DS_ROLE_MEMBER_SERVER ( 3 )
#define DS_ROLE_BACKUP_DC ( 4 )
#define DS_ROLE_PRIMARY_DC ( 5 )
#endif
;

/* bitmap dssetup_DsRoleFlags */
#define DS_ROLE_PRIMARY_DS_RUNNING ( 0x00000001 )
#define DS_ROLE_PRIMARY_DS_MIXED_MODE ( 0x00000002 )
#define DS_ROLE_UPGRADE_IN_PROGRESS ( 0x00000004 )
#define DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT ( 0x01000000 )

struct dssetup_DsRolePrimaryDomInfoBasic {
	enum dssetup_DsRole role;
	uint32_t flags;
	const char *domain;/* [unique,charset(UTF16)] */
	const char *dns_domain;/* [unique,charset(UTF16)] */
	const char *forest;/* [unique,charset(UTF16)] */
	struct GUID domain_guid;
};

enum dssetup_DsUpgrade
#ifndef USE_UINT_ENUMS
 {
	DS_ROLE_NOT_UPGRADING=(int)(0),
	DS_ROLE_UPGRADING=(int)(1)
}
#else
 { __donnot_use_enum_dssetup_DsUpgrade=0x7FFFFFFF}
#define DS_ROLE_NOT_UPGRADING ( 0 )
#define DS_ROLE_UPGRADING ( 1 )
#endif
;

enum dssetup_DsPrevious
#ifndef USE_UINT_ENUMS
 {
	DS_ROLE_PREVIOUS_UNKNOWN=(int)(0),
	DS_ROLE_PREVIOUS_PRIMARY=(int)(1),
	DS_ROLE_PREVIOUS_BACKUP=(int)(2)
}
#else
 { __donnot_use_enum_dssetup_DsPrevious=0x7FFFFFFF}
#define DS_ROLE_PREVIOUS_UNKNOWN ( 0 )
#define DS_ROLE_PREVIOUS_PRIMARY ( 1 )
#define DS_ROLE_PREVIOUS_BACKUP ( 2 )
#endif
;

struct dssetup_DsRoleUpgradeStatus {
	enum dssetup_DsUpgrade upgrading;
	enum dssetup_DsPrevious previous_role;
};

enum dssetup_DsRoleOp
#ifndef USE_UINT_ENUMS
 {
	DS_ROLE_OP_IDLE=(int)(0),
	DS_ROLE_OP_ACTIVE=(int)(1),
	DS_ROLE_OP_NEEDS_REBOOT=(int)(2)
}
#else
 { __donnot_use_enum_dssetup_DsRoleOp=0x7FFFFFFF}
#define DS_ROLE_OP_IDLE ( 0 )
#define DS_ROLE_OP_ACTIVE ( 1 )
#define DS_ROLE_OP_NEEDS_REBOOT ( 2 )
#endif
;

struct dssetup_DsRoleOpStatus {
	enum dssetup_DsRoleOp status;
};

enum dssetup_DsRoleInfoLevel
#ifndef USE_UINT_ENUMS
 {
	DS_ROLE_BASIC_INFORMATION=(int)(1),
	DS_ROLE_UPGRADE_STATUS=(int)(2),
	DS_ROLE_OP_STATUS=(int)(3)
}
#else
 { __donnot_use_enum_dssetup_DsRoleInfoLevel=0x7FFFFFFF}
#define DS_ROLE_BASIC_INFORMATION ( 1 )
#define DS_ROLE_UPGRADE_STATUS ( 2 )
#define DS_ROLE_OP_STATUS ( 3 )
#endif
;

union dssetup_DsRoleInfo {
	struct dssetup_DsRolePrimaryDomInfoBasic basic;/* [case(DS_ROLE_BASIC_INFORMATION)] */
	struct dssetup_DsRoleUpgradeStatus upgrade;/* [case(DS_ROLE_UPGRADE_STATUS)] */
	struct dssetup_DsRoleOpStatus opstatus;/* [case(DS_ROLE_OP_STATUS)] */
}/* [switch_type(dssetup_DsRoleInfoLevel)] */;


struct dssetup_DsRoleGetPrimaryDomainInformation {
	struct {
		enum dssetup_DsRoleInfoLevel level;
	} in;

	struct {
		union dssetup_DsRoleInfo *info;/* [unique,switch_is(level)] */
		WERROR result;
	} out;

};


struct dssetup_DsRoleDnsNameToFlatName {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleDcAsDc {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleDcAsReplica {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleDemoteDc {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleGetDcOperationProgress {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleGetDcOperationResults {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleCancel {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleServerSaveStateForUpgrade {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleUpgradeDownlevelServer {
	struct {
		WERROR result;
	} out;

};


struct dssetup_DsRoleAbortDownlevelServerUpgrade {
	struct {
		WERROR result;
	} out;

};

#endif /* _HEADER_dssetup */