/* header auto-generated by pidl */

#ifndef _PIDL_HEADER_dnsp
#define _PIDL_HEADER_dnsp

#include <stdint.h>

#include "libcli/util/ntstatus.h"

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

enum dns_record_type
#ifndef USE_UINT_ENUMS
 {
	DNS_TYPE_TOMBSTONE=(int)(0x0),
	DNS_TYPE_A=(int)(0x1),
	DNS_TYPE_NS=(int)(0x2),
	DNS_TYPE_MD=(int)(0x3),
	DNS_TYPE_MF=(int)(0x4),
	DNS_TYPE_CNAME=(int)(0x5),
	DNS_TYPE_SOA=(int)(0x6),
	DNS_TYPE_MB=(int)(0x7),
	DNS_TYPE_MG=(int)(0x8),
	DNS_TYPE_MR=(int)(0x9),
	DNS_TYPE_NULL=(int)(0xA),
	DNS_TYPE_WKS=(int)(0xB),
	DNS_TYPE_PTR=(int)(0xC),
	DNS_TYPE_HINFO=(int)(0xD),
	DNS_TYPE_MINFO=(int)(0xE),
	DNS_TYPE_MX=(int)(0xF),
	DNS_TYPE_TXT=(int)(0x10),
	DNS_TYPE_RP=(int)(0x11),
	DNS_TYPE_AFSDB=(int)(0x12),
	DNS_TYPE_X25=(int)(0x13),
	DNS_TYPE_ISDN=(int)(0x14),
	DNS_TYPE_RT=(int)(0x15),
	DNS_TYPE_SIG=(int)(0x18),
	DNS_TYPE_KEY=(int)(0x19),
	DNS_TYPE_AAAA=(int)(0x1C),
	DNS_TYPE_LOC=(int)(0x1D),
	DNS_TYPE_NXT=(int)(0x1E),
	DNS_TYPE_SRV=(int)(0x21),
	DNS_TYPE_ATMA=(int)(0x22),
	DNS_TYPE_NAPTR=(int)(0x23),
	DNS_TYPE_DNAME=(int)(0x27),
	DNS_TYPE_DS=(int)(0x2B),
	DNS_TYPE_RRSIG=(int)(0x2E),
	DNS_TYPE_NSEC=(int)(0x2F),
	DNS_TYPE_DNSKEY=(int)(0x30),
	DNS_TYPE_DHCID=(int)(0x31),
	DNS_TYPE_ALL=(int)(0xFF),
	DNS_TYPE_WINS=(int)(0xFF01),
	DNS_TYPE_WINSR=(int)(0xFF02)
}
#else
 { __donnot_use_enum_dns_record_type=0x7FFFFFFF}
#define DNS_TYPE_TOMBSTONE ( 0x0 )
#define DNS_TYPE_A ( 0x1 )
#define DNS_TYPE_NS ( 0x2 )
#define DNS_TYPE_MD ( 0x3 )
#define DNS_TYPE_MF ( 0x4 )
#define DNS_TYPE_CNAME ( 0x5 )
#define DNS_TYPE_SOA ( 0x6 )
#define DNS_TYPE_MB ( 0x7 )
#define DNS_TYPE_MG ( 0x8 )
#define DNS_TYPE_MR ( 0x9 )
#define DNS_TYPE_NULL ( 0xA )
#define DNS_TYPE_WKS ( 0xB )
#define DNS_TYPE_PTR ( 0xC )
#define DNS_TYPE_HINFO ( 0xD )
#define DNS_TYPE_MINFO ( 0xE )
#define DNS_TYPE_MX ( 0xF )
#define DNS_TYPE_TXT ( 0x10 )
#define DNS_TYPE_RP ( 0x11 )
#define DNS_TYPE_AFSDB ( 0x12 )
#define DNS_TYPE_X25 ( 0x13 )
#define DNS_TYPE_ISDN ( 0x14 )
#define DNS_TYPE_RT ( 0x15 )
#define DNS_TYPE_SIG ( 0x18 )
#define DNS_TYPE_KEY ( 0x19 )
#define DNS_TYPE_AAAA ( 0x1C )
#define DNS_TYPE_LOC ( 0x1D )
#define DNS_TYPE_NXT ( 0x1E )
#define DNS_TYPE_SRV ( 0x21 )
#define DNS_TYPE_ATMA ( 0x22 )
#define DNS_TYPE_NAPTR ( 0x23 )
#define DNS_TYPE_DNAME ( 0x27 )
#define DNS_TYPE_DS ( 0x2B )
#define DNS_TYPE_RRSIG ( 0x2E )
#define DNS_TYPE_NSEC ( 0x2F )
#define DNS_TYPE_DNSKEY ( 0x30 )
#define DNS_TYPE_DHCID ( 0x31 )
#define DNS_TYPE_ALL ( 0xFF )
#define DNS_TYPE_WINS ( 0xFF01 )
#define DNS_TYPE_WINSR ( 0xFF02 )
#endif
;

/* bitmap dns_rpc_node_flags */
#define DNS_RPC_FLAG_SUPPRESS_NOTIFY ( 0x00010000 )
#define DNS_RPC_FLAG_AGING_ON ( 0x00020000 )
#define DNS_RPC_FLAG_OPEN_ACL ( 0x00040000 )
#define DNS_RPC_FLAG_NODE_COMPLETE ( 0x00800000 )
#define DNS_RPC_FLAG_NODE_STICKY ( 0x01000000 )
#define DNS_RPC_FLAG_RECORD_CREATE_PTR ( 0x02000000 )
#define DNS_RPC_FLAG_RECORD_TTL_CHANGE ( 0x04000000 )
#define DNS_RPC_FLAG_RECORD_DEFAULT_TTL ( 0x08000000 )
#define DNS_RPC_FLAG_ZONE_DELEGATION ( 0x10000000 )
#define DNS_RPC_FLAG_AUTH_ZONE_ROOT ( 0x20000000 )
#define DNS_RPC_FLAG_ZONE_ROOT ( 0x40000000 )
#define DNS_RPC_FLAG_CACHE_DATA ( 0x80000000 )

enum dns_record_rank
#ifndef USE_UINT_ENUMS
 {
	DNS_RANK_NONE=(int)(0x00),
	DNS_RANK_CACHE_BIT=(int)(0x01),
	DNS_RANK_ROOT_HINT=(int)(0x08),
	DNS_RANK_OUTSIDE_GLUE=(int)(0x20),
	DNS_RANK_CACHE_NA_ADDITIONAL=(int)(0x31),
	DNS_RANK_CACHE_NA_AUTHORITY=(int)(0x41),
	DNS_RANK_CACHE_A_ADDITIONAL=(int)(0x51),
	DNS_RANK_CACHE_NA_ANSWER=(int)(0x61),
	DNS_RANK_CACHE_A_AUTHORITY=(int)(0x71),
	DNS_RANK_GLUE=(int)(0x80),
	DNS_RANK_NS_GLUE=(int)(0x82),
	DNS_RANK_CACHE_A_ANSWER=(int)(0xc1),
	DNS_RANK_ZONE=(int)(0xf0)
}
#else
 { __donnot_use_enum_dns_record_rank=0x7FFFFFFF}
#define DNS_RANK_NONE ( 0x00 )
#define DNS_RANK_CACHE_BIT ( 0x01 )
#define DNS_RANK_ROOT_HINT ( 0x08 )
#define DNS_RANK_OUTSIDE_GLUE ( 0x20 )
#define DNS_RANK_CACHE_NA_ADDITIONAL ( 0x31 )
#define DNS_RANK_CACHE_NA_AUTHORITY ( 0x41 )
#define DNS_RANK_CACHE_A_ADDITIONAL ( 0x51 )
#define DNS_RANK_CACHE_NA_ANSWER ( 0x61 )
#define DNS_RANK_CACHE_A_AUTHORITY ( 0x71 )
#define DNS_RANK_GLUE ( 0x80 )
#define DNS_RANK_NS_GLUE ( 0x82 )
#define DNS_RANK_CACHE_A_ANSWER ( 0xc1 )
#define DNS_RANK_ZONE ( 0xf0 )
#endif
;

enum dns_zone_type
#ifndef USE_UINT_ENUMS
 {
	DNS_ZONE_TYPE_CACHE=(int)(0x00),
	DNS_ZONE_TYPE_PRIMARY=(int)(0x01),
	DNS_ZONE_TYPE_SECONDARY=(int)(0x02),
	DNS_ZONE_TYPE_STUB=(int)(0x03),
	DNS_ZONE_TYPE_FORWARDER=(int)(0x04),
	DNS_ZONE_TYPE_SECONDARY_CACHE=(int)(0x05)
}
#else
 { __donnot_use_enum_dns_zone_type=0x7FFFFFFF}
#define DNS_ZONE_TYPE_CACHE ( 0x00 )
#define DNS_ZONE_TYPE_PRIMARY ( 0x01 )
#define DNS_ZONE_TYPE_SECONDARY ( 0x02 )
#define DNS_ZONE_TYPE_STUB ( 0x03 )
#define DNS_ZONE_TYPE_FORWARDER ( 0x04 )
#define DNS_ZONE_TYPE_SECONDARY_CACHE ( 0x05 )
#endif
;

enum dns_zone_update
#ifndef USE_UINT_ENUMS
 {
	DNS_ZONE_UPDATE_OFF=(int)(0x00),
	DNS_ZONE_UPDATE_UNSECURE=(int)(0x01),
	DNS_ZONE_UPDATE_SECURE=(int)(0x02)
}
#else
 { __donnot_use_enum_dns_zone_update=0x7FFFFFFF}
#define DNS_ZONE_UPDATE_OFF ( 0x00 )
#define DNS_ZONE_UPDATE_UNSECURE ( 0x01 )
#define DNS_ZONE_UPDATE_SECURE ( 0x02 )
#endif
;

enum dns_property_id
#ifndef USE_UINT_ENUMS
 {
	DSPROPERTY_ZONE_EMPTY=(int)(0x00),
	DSPROPERTY_ZONE_TYPE=(int)(0x01),
	DSPROPERTY_ZONE_ALLOW_UPDATE=(int)(0x02),
	DSPROPERTY_ZONE_SECURE_TIME=(int)(0x08),
	DSPROPERTY_ZONE_NOREFRESH_INTERVAL=(int)(0x10),
	DSPROPERTY_ZONE_SCAVENGING_SERVERS=(int)(0x11),
	DSPROPERTY_ZONE_AGING_ENABLED_TIME=(int)(0x12),
	DSPROPERTY_ZONE_REFRESH_INTERVAL=(int)(0x20),
	DSPROPERTY_ZONE_AGING_STATE=(int)(0x40),
	DSPROPERTY_ZONE_DELETED_FROM_HOSTNAME=(int)(0x80),
	DSPROPERTY_ZONE_MASTER_SERVERS=(int)(0x81),
	DSPROPERTY_ZONE_AUTO_NS_SERVERS=(int)(0x82),
	DSPROPERTY_ZONE_DCPROMO_CONVERT=(int)(0x83),
	DSPROPERTY_ZONE_SCAVENGING_SERVERS_DA=(int)(0x90),
	DSPROPERTY_ZONE_MASTER_SERVERS_DA=(int)(0x91),
	DSPROPERTY_ZONE_NS_SERVERS_DA=(int)(0x92),
	DSPROPERTY_ZONE_NODE_DBFLAGS=(int)(0x100)
}
#else
 { __donnot_use_enum_dns_property_id=0x7FFFFFFF}
#define DSPROPERTY_ZONE_EMPTY ( 0x00 )
#define DSPROPERTY_ZONE_TYPE ( 0x01 )
#define DSPROPERTY_ZONE_ALLOW_UPDATE ( 0x02 )
#define DSPROPERTY_ZONE_SECURE_TIME ( 0x08 )
#define DSPROPERTY_ZONE_NOREFRESH_INTERVAL ( 0x10 )
#define DSPROPERTY_ZONE_SCAVENGING_SERVERS ( 0x11 )
#define DSPROPERTY_ZONE_AGING_ENABLED_TIME ( 0x12 )
#define DSPROPERTY_ZONE_REFRESH_INTERVAL ( 0x20 )
#define DSPROPERTY_ZONE_AGING_STATE ( 0x40 )
#define DSPROPERTY_ZONE_DELETED_FROM_HOSTNAME ( 0x80 )
#define DSPROPERTY_ZONE_MASTER_SERVERS ( 0x81 )
#define DSPROPERTY_ZONE_AUTO_NS_SERVERS ( 0x82 )
#define DSPROPERTY_ZONE_DCPROMO_CONVERT ( 0x83 )
#define DSPROPERTY_ZONE_SCAVENGING_SERVERS_DA ( 0x90 )
#define DSPROPERTY_ZONE_MASTER_SERVERS_DA ( 0x91 )
#define DSPROPERTY_ZONE_NS_SERVERS_DA ( 0x92 )
#define DSPROPERTY_ZONE_NODE_DBFLAGS ( 0x100 )
#endif
;

enum dns_dcpromo_flag
#ifndef USE_UINT_ENUMS
 {
	DCPROMO_CONVERT_NONE=(int)(0x00),
	DCPROMO_CONVERT_DOMAIN=(int)(0x01),
	DCPROMO_CONVERT_FOREST=(int)(0x02)
}
#else
 { __donnot_use_enum_dns_dcpromo_flag=0x7FFFFFFF}
#define DCPROMO_CONVERT_NONE ( 0x00 )
#define DCPROMO_CONVERT_DOMAIN ( 0x01 )
#define DCPROMO_CONVERT_FOREST ( 0x02 )
#endif
;

struct dnsp_soa {
	uint32_t serial;
	uint32_t refresh;
	uint32_t retry;
	uint32_t expire;
	uint32_t minimum;
	const char * mname;
	const char * rname;
}/* [public] */;

struct dnsp_mx {
	uint16_t wPriority;
	const char * nameTarget;
}/* [public] */;

struct dnsp_hinfo {
	const char * cpu;
	const char * os;
}/* [public] */;

struct dnsp_srv {
	uint16_t wPriority;
	uint16_t wWeight;
	uint16_t wPort;
	const char * nameTarget;
}/* [public] */;

struct dnsp_ip4_array {
	uint32_t addrCount;
	uint32_t *addr;/* [unique,size_is(addrCount)] */
};

struct dnsp_dns_addr {
	uint16_t family;
	uint16_t port;
	const char * ipv4;
	const char * ipv6;
	uint8_t pad[8];
	uint32_t unused[8];
};

struct dnsp_dns_addr_array {
	uint32_t MaxCount;
	uint32_t AddrCount;
	uint32_t Tag;
	uint16_t Family;
	uint16_t Reserved0;
	uint32_t MatchFlag;
	uint32_t Reserved1;
	uint32_t Reserved2;
	struct dnsp_dns_addr *AddrArray;
}/* [public] */;

struct dnsp_string_list {
	uint8_t count;
	const char * *str;
}/* [noprint,gensize,nopull,public,nopush] */;

union dnsRecordData {
	NTTIME timestamp;/* [case(DNS_TYPE_TOMBSTONE)] */
	const char * ipv4;/* [flag(LIBNDR_FLAG_BIGENDIAN),case(DNS_TYPE_A)] */
	const char * ns;/* [case(DNS_TYPE_NS)] */
	const char * cname;/* [case(DNS_TYPE_CNAME)] */
	struct dnsp_soa soa;/* [flag(LIBNDR_FLAG_BIGENDIAN),case(DNS_TYPE_SOA)] */
	struct dnsp_mx mx;/* [flag(LIBNDR_FLAG_BIGENDIAN),case(DNS_TYPE_MX)] */
	struct dnsp_string_list txt;/* [case(DNS_TYPE_TXT)] */
	const char * ptr;/* [case(DNS_TYPE_PTR)] */
	struct dnsp_hinfo hinfo;/* [case(DNS_TYPE_HINFO)] */
	const char * ipv6;/* [case(DNS_TYPE_AAAA)] */
	struct dnsp_srv srv;/* [flag(LIBNDR_FLAG_BIGENDIAN),case(DNS_TYPE_SRV)] */
	DATA_BLOB data;/* [default,flag(LIBNDR_FLAG_REMAINING)] */
}/* [gensize,nodiscriminant] */;

struct dnsp_DnssrvRpcRecord {
	uint16_t wDataLength;/* [value(ndr_size_dnsRecordData(&data,wType,ndr->flags))] */
	enum dns_record_type wType;
	uint8_t version;/* [value(5)] */
	enum dns_record_rank rank;
	uint16_t flags;
	uint32_t dwSerial;
	uint32_t dwTtlSeconds;/* [flag(LIBNDR_FLAG_BIGENDIAN)] */
	uint32_t dwReserved;
	uint32_t dwTimeStamp;
	union dnsRecordData data;/* [switch_is(wType)] */
}/* [public] */;

union dnsPropertyData {
	enum dns_zone_type zone_type;/* [case(DSPROPERTY_ZONE_TYPE)] */
	enum dns_zone_update allow_update_flag;/* [case(DSPROPERTY_ZONE_ALLOW_UPDATE)] */
	NTTIME zone_secure_time;/* [case(DSPROPERTY_ZONE_SECURE_TIME)] */
	uint32_t norefresh_hours;/* [case(DSPROPERTY_ZONE_NOREFRESH_INTERVAL)] */
	uint32_t refresh_hours;/* [case(DSPROPERTY_ZONE_REFRESH_INTERVAL)] */
	uint32_t aging_enabled;/* [case(DSPROPERTY_ZONE_AGING_STATE)] */
	struct dnsp_ip4_array servers;/* [case(DSPROPERTY_ZONE_SCAVENGING_SERVERS)] */
	uint32_t next_scavenging_cycle_hours;/* [case(DSPROPERTY_ZONE_AGING_ENABLED_TIME)] */
	const char * deleted_by_hostname;/* [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM),case(DSPROPERTY_ZONE_DELETED_FROM_HOSTNAME)] */
	struct dnsp_ip4_array master_servers;/* [case(DSPROPERTY_ZONE_MASTER_SERVERS)] */
	struct dnsp_ip4_array ns_servers;/* [case(DSPROPERTY_ZONE_AUTO_NS_SERVERS)] */
	enum dns_dcpromo_flag dcpromo_flag;/* [case(DSPROPERTY_ZONE_DCPROMO_CONVERT)] */
	struct dnsp_dns_addr_array s_ns_servers;/* [case(DSPROPERTY_ZONE_SCAVENGING_SERVERS_DA)] */
	struct dnsp_dns_addr_array z_master_servers;/* [case(DSPROPERTY_ZONE_MASTER_SERVERS_DA)] */
	struct dnsp_dns_addr_array d_ns_servers;/* [case(DSPROPERTY_ZONE_NS_SERVERS_DA)] */
	uint32_t flags;/* [case(DSPROPERTY_ZONE_NODE_DBFLAGS)] */
}/* [gensize,nodiscriminant] */;

struct dnsp_DnsProperty {
	uint32_t wDataLength;/* [value(ndr_size_dnsPropertyData(&data,id,ndr->flags))] */
	uint32_t namelength;
	uint32_t flag;/* [value(0)] */
	uint32_t version;/* [value] */
	enum dns_property_id id;
	union dnsPropertyData data;/* [switch_is(wDataLength?id:DSPROPERTY_ZONE_EMPTY)] */
	uint32_t name;
}/* [public,flag(LIBNDR_FLAG_NOALIGN)] */;


struct decode_DnssrvRpcRecord {
	struct {
		struct dnsp_DnssrvRpcRecord blob;
	} in;

};


struct decode_DnsProperty {
	struct {
		struct dnsp_DnsProperty blob;
	} in;

};

#endif /* _HEADER_dnsp */
#endif /* _PIDL_HEADER_dnsp */
