/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RUA-CommonDataTypes"
 * 	found in "../../asn1/rua/RUA-CommonDataTypes.asn"
 */

#ifndef	_RUA_TriggeringMessage_H_
#define	_RUA_TriggeringMessage_H_


#include <asn_application.h>

/* Including external dependencies */
#include <NativeEnumerated.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RUA_TriggeringMessage {
	RUA_TriggeringMessage_initiating_message	= 0,
	RUA_TriggeringMessage_successful_outcome	= 1,
	RUA_TriggeringMessage_unsuccessful_outcome	= 2
} e_RUA_TriggeringMessage;

/* RUA_TriggeringMessage */
typedef long	 RUA_TriggeringMessage_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RUA_TriggeringMessage;
asn_struct_free_f RUA_TriggeringMessage_free;
asn_struct_print_f RUA_TriggeringMessage_print;
asn_constr_check_f RUA_TriggeringMessage_constraint;
ber_type_decoder_f RUA_TriggeringMessage_decode_ber;
der_type_encoder_f RUA_TriggeringMessage_encode_der;
xer_type_decoder_f RUA_TriggeringMessage_decode_xer;
xer_type_encoder_f RUA_TriggeringMessage_encode_xer;
per_type_decoder_f RUA_TriggeringMessage_decode_uper;
per_type_encoder_f RUA_TriggeringMessage_encode_uper;
per_type_decoder_f RUA_TriggeringMessage_decode_aper;
per_type_encoder_f RUA_TriggeringMessage_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _RUA_TriggeringMessage_H_ */
#include <asn_internal.h>
