/* header auto-generated by pidl */

#ifndef _PIDL_HEADER_claims
#define _PIDL_HEADER_claims

#include <stdint.h>


#ifndef _HEADER_claims
#define _HEADER_claims

#define CLAIM_LOWER_COMPRESSION_THRESHOLD	( 368 )
#define CLAIM_UPPER_COMPRESSION_THRESHOLD	( 384 )
enum CLAIM_TYPE
#ifndef USE_UINT_ENUMS
 {
	CLAIM_TYPE_INT64=(int)(1),
	CLAIM_TYPE_UINT64=(int)(2),
	CLAIM_TYPE_STRING=(int)(3),
	CLAIM_TYPE_BOOLEAN=(int)(6)
}
#else
 { __do_not_use_enum_CLAIM_TYPE=INT_MAX}
#define CLAIM_TYPE_INT64 ( 1 )
#define CLAIM_TYPE_UINT64 ( 2 )
#define CLAIM_TYPE_STRING ( 3 )
#define CLAIM_TYPE_BOOLEAN ( 6 )
#endif
;

enum CLAIMS_SOURCE_TYPE
#ifndef USE_UINT_ENUMS
 {
	CLAIMS_SOURCE_TYPE_AD=(int)(1),
	CLAIMS_SOURCE_TYPE_CERTIFICATE=(int)(2)
}
#else
 { __do_not_use_enum_CLAIMS_SOURCE_TYPE=INT_MAX}
#define CLAIMS_SOURCE_TYPE_AD ( 1 )
#define CLAIMS_SOURCE_TYPE_CERTIFICATE ( 2 )
#endif
;

enum CLAIMS_COMPRESSION_FORMAT
#ifndef USE_UINT_ENUMS
 {
	CLAIMS_COMPRESSION_FORMAT_NONE=(int)(0),
	CLAIMS_COMPRESSION_FORMAT_LZNT1=(int)(2),
	CLAIMS_COMPRESSION_FORMAT_XPRESS=(int)(3),
	CLAIMS_COMPRESSION_FORMAT_XPRESS_HUFF=(int)(4)
}
#else
 { __do_not_use_enum_CLAIMS_COMPRESSION_FORMAT=INT_MAX}
#define CLAIMS_COMPRESSION_FORMAT_NONE ( 0 )
#define CLAIMS_COMPRESSION_FORMAT_LZNT1 ( 2 )
#define CLAIMS_COMPRESSION_FORMAT_XPRESS ( 3 )
#define CLAIMS_COMPRESSION_FORMAT_XPRESS_HUFF ( 4 )
#endif
;

struct CLAIM_INT64 {
	uint32_t value_count;/* [range(0,10*1024*1024)] */
	int64_t *values;/* [size_is(value_count),unique] */
};

struct CLAIM_UINT64 {
	uint32_t value_count;/* [range(0,10*1024*1024)] */
	uint64_t *values;/* [size_is(value_count),unique] */
};

struct CLAIM_STRING {
	uint32_t value_count;/* [range(0,10*1024*1024)] */
	const char **values;/* [charset(UTF16),size_is(value_count),unique] */
};

union CLAIM_ENTRY_VALUES {
	struct CLAIM_INT64 claim_int64;/* [case(CLAIM_TYPE_INT64)] */
	struct CLAIM_UINT64 claim_uint64;/* [case(CLAIM_TYPE_UINT64)] */
	struct CLAIM_STRING claim_string;/* [case(CLAIM_TYPE_STRING)] */
	struct CLAIM_UINT64 claim_boolean;/* [case(CLAIM_TYPE_BOOLEAN)] */
}/* [flag(LIBNDR_FLAG_ALIGN8),switch_type(CLAIM_TYPE)] */;

struct CLAIM_ENTRY {
	const char *id;/* [charset(UTF16),unique] */
	enum CLAIM_TYPE type;
	union CLAIM_ENTRY_VALUES values;/* [switch_is(type)] */
};

struct CLAIMS_ARRAY {
	enum CLAIMS_SOURCE_TYPE claims_source_type;
	uint32_t claims_count;
	struct CLAIM_ENTRY *claim_entries;/* [size_is(claims_count),unique] */
};

struct CLAIMS_SET_METADATA_CTR {
	struct CLAIMS_SET_METADATA *metadata;/* [unique] */
};

struct CLAIMS_SET_CTR {
	struct CLAIMS_SET *claims;/* [unique] */
};

struct CLAIMS_SET {
	uint32_t claims_array_count;
	struct CLAIMS_ARRAY *claims_arrays;/* [size_is(claims_array_count),unique] */
	uint16_t reserved_type;
	uint32_t reserved_field_size;
	uint8_t *reserved_field;/* [size_is(reserved_field_size),unique] */
}/* [public] */;

struct CLAIMS_SET_NDR {
	struct CLAIMS_SET_CTR claims;/* [subcontext(0xFFFFFC01)] */
}/* [gensize,public] */;

struct CLAIMS_SET_METADATA_NDR {
	struct CLAIMS_SET_METADATA_CTR claims;/* [subcontext(0xFFFFFC01)] */
}/* [public] */;

struct CLAIMS_SET_METADATA {
	uint32_t claims_set_size;/* [value(ndr_claims_compressed_size(claims_set,r->compression_format,ndr->flags))] */
	struct CLAIMS_SET_NDR *claims_set;/* [compression(ndr_claims_compression_alg(compression_format),claims_set_size,uncompressed_claims_set_size),subcontext(4),unique] */
	enum CLAIMS_COMPRESSION_FORMAT compression_format;/* [value(ndr_claims_actual_wire_compression_alg(r->compression_format,claims_set,ndr->flags))] */
	uint32_t uncompressed_claims_set_size;/* [value(ndr_size_CLAIMS_SET_NDR(claims_set,ndr->flags))] */
	uint16_t reserved_type;
	uint32_t reserved_field_size;
	uint8_t *reserved_field;/* [size_is(reserved_field_size),unique] */
}/* [public] */;

enum claims_tf_condition_operator
#ifndef USE_UINT_ENUMS
 {
	CLAIMS_TF_CONDITION_OPERATOR_INVALID=(int)(0),
	CLAIMS_TF_CONDITION_OPERATOR_EQ=(int)(1),
	CLAIMS_TF_CONDITION_OPERATOR_NEQ=(int)(2),
	CLAIMS_TF_CONDITION_OPERATOR_REGEXP_MATCH=(int)(3),
	CLAIMS_TF_CONDITION_OPERATOR_REGEXP_NOT_MATCH=(int)(4)
}
#else
 { __do_not_use_enum_claims_tf_condition_operator=INT_MAX}
#define CLAIMS_TF_CONDITION_OPERATOR_INVALID ( 0 )
#define CLAIMS_TF_CONDITION_OPERATOR_EQ ( 1 )
#define CLAIMS_TF_CONDITION_OPERATOR_NEQ ( 2 )
#define CLAIMS_TF_CONDITION_OPERATOR_REGEXP_MATCH ( 3 )
#define CLAIMS_TF_CONDITION_OPERATOR_REGEXP_NOT_MATCH ( 4 )
#endif
;

enum claims_tf_property_enum
#ifndef USE_UINT_ENUMS
 {
	CLAIMS_TF_PROPERTY_INVALID=(int)(0),
	CLAIMS_TF_PROPERTY_TYPE=(int)(1),
	CLAIMS_TF_PROPERTY_VALUE=(int)(2),
	CLAIMS_TF_PROPERTY_VALUE_TYPE=(int)(3)
}
#else
 { __do_not_use_enum_claims_tf_property_enum=INT_MAX}
#define CLAIMS_TF_PROPERTY_INVALID ( 0 )
#define CLAIMS_TF_PROPERTY_TYPE ( 1 )
#define CLAIMS_TF_PROPERTY_VALUE ( 2 )
#define CLAIMS_TF_PROPERTY_VALUE_TYPE ( 3 )
#endif
;

struct claims_tf_condition {
	enum claims_tf_property_enum property;
	enum claims_tf_condition_operator operator;
	const char *string;/* [charset(UTF8),ref] */
}/* [nopull,nopush] */;

struct claims_tf_condition_set {
	const char *opt_identifier;/* [charset(UTF8),unique] */
	uint32_t num_conditions;
	struct claims_tf_condition *conditions;
}/* [nopull,nopush] */;

struct claims_tf_property_ref {
	const char *identifier;/* [charset(UTF8),unique] */
	enum claims_tf_property_enum property;
}/* [nopull,nopush] */;

struct claims_tf_property {
	struct claims_tf_property_ref ref;
	const char *string;/* [charset(UTF8),unique] */
}/* [nopull,nopush] */;

struct claims_tf_rule_action {
	struct claims_tf_property type;
	struct claims_tf_property value;
	struct claims_tf_property value_type;
}/* [nopull,nopush] */;

struct claims_tf_rule {
	uint32_t num_condition_sets;
	struct claims_tf_condition_set *condition_sets;
	struct claims_tf_rule_action action;
}/* [nopull,nopush] */;

struct claims_tf_rule_set {
	uint32_t num_rules;
	struct claims_tf_rule *rules;
}/* [nopull,nopush,public] */;

#endif /* _HEADER_claims */
#endif /* _PIDL_HEADER_claims */
