/* 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=0,
	DS_ROLE_MEMBER_WORKSTATION=1,
	DS_ROLE_STANDALONE_SERVER=2,
	DS_ROLE_MEMBER_SERVER=3,
	DS_ROLE_BACKUP_DC=4,
	DS_ROLE_PRIMARY_DC=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=0,
	DS_ROLE_UPGRADING=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=0,
	DS_ROLE_PREVIOUS_PRIMARY=1,
	DS_ROLE_PREVIOUS_BACKUP=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=0,
	DS_ROLE_OP_ACTIVE=1,
	DS_ROLE_OP_NEEDS_REBOOT=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=1,
	DS_ROLE_UPGRADE_STATUS=2,
	DS_ROLE_OP_STATUS=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 */