/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "PEDefinitions"
 * 	found in "../../../asn1/PEDefinitions.asn"
 * 	`asn1c -fcompound-names -no-gen-example`
 */

#ifndef	_ProfileElement_H_
#define	_ProfileElement_H_


#include <asn_application.h>

/* Including external dependencies */
#include "ProfileHeader.h"
#include "PE-GenericFileManagement.h"
#include "PE-PINCodes.h"
#include "PE-PUKCodes.h"
#include "PE-AKAParameter.h"
#include "PE-CDMAParameter.h"
#include "PE-SecurityDomain.h"
#include "PE-RFM.h"
#include "PE-Application.h"
#include "PE-NonStandard.h"
#include "PE-End.h"
#include "PE-Dummy.h"
#include "PE-MF.h"
#include "PE-CD.h"
#include "PE-TELECOM.h"
#include "PE-USIM.h"
#include "PE-OPT-USIM.h"
#include "PE-ISIM.h"
#include "PE-OPT-ISIM.h"
#include "PE-PHONEBOOK.h"
#include "PE-GSM-ACCESS.h"
#include "PE-CSIM.h"
#include "PE-OPT-CSIM.h"
#include "PE-EAP.h"
#include "PE-DF-5GS.h"
#include "PE-DF-SAIP.h"
#include "PE-DF-SNPN.h"
#include "PE-DF-5GPROSE.h"
#include "PE-IoT.h"
#include "PE-OPT-IoT.h"
#include <constr_CHOICE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum ProfileElement_PR {
	ProfileElement_PR_NOTHING,	/* No components present */
	ProfileElement_PR_header,
	ProfileElement_PR_genericFileManagement,
	ProfileElement_PR_pinCodes,
	ProfileElement_PR_pukCodes,
	ProfileElement_PR_akaParameter,
	ProfileElement_PR_cdmaParameter,
	ProfileElement_PR_securityDomain,
	ProfileElement_PR_rfm,
	ProfileElement_PR_application,
	ProfileElement_PR_nonStandard,
	ProfileElement_PR_end,
	ProfileElement_PR_rfu1,
	ProfileElement_PR_rfu2,
	ProfileElement_PR_rfu3,
	ProfileElement_PR_rfu4,
	ProfileElement_PR_rfu5,
	ProfileElement_PR_mf,
	ProfileElement_PR_cd,
	ProfileElement_PR_telecom,
	ProfileElement_PR_usim,
	ProfileElement_PR_opt_usim,
	ProfileElement_PR_isim,
	ProfileElement_PR_opt_isim,
	ProfileElement_PR_phonebook,
	ProfileElement_PR_gsm_access,
	ProfileElement_PR_csim,
	ProfileElement_PR_opt_csim,
	ProfileElement_PR_eap,
	ProfileElement_PR_df_5gs,
	ProfileElement_PR_df_saip,
	ProfileElement_PR_df_snpn,
	ProfileElement_PR_df_5gprose,
	ProfileElement_PR_iot,
	ProfileElement_PR_opt_iot
	/* Extensions may appear below */
	
} ProfileElement_PR;

/* ProfileElement */
typedef struct ProfileElement {
	ProfileElement_PR present;
	union ProfileElement_u {
		ProfileHeader_t	 header;
		PE_GenericFileManagement_t	 genericFileManagement;
		PE_PINCodes_t	 pinCodes;
		PE_PUKCodes_t	 pukCodes;
		PE_AKAParameter_t	 akaParameter;
		PE_CDMAParameter_t	 cdmaParameter;
		PE_SecurityDomain_t	 securityDomain;
		PE_RFM_t	 rfm;
		PE_Application_t	 application;
		PE_NonStandard_t	 nonStandard;
		PE_End_t	 end;
		PE_Dummy_t	 rfu1;
		PE_Dummy_t	 rfu2;
		PE_Dummy_t	 rfu3;
		PE_Dummy_t	 rfu4;
		PE_Dummy_t	 rfu5;
		PE_MF_t	 mf;
		PE_CD_t	 cd;
		PE_TELECOM_t	 telecom;
		PE_USIM_t	 usim;
		PE_OPT_USIM_t	 opt_usim;
		PE_ISIM_t	 isim;
		PE_OPT_ISIM_t	 opt_isim;
		PE_PHONEBOOK_t	 phonebook;
		PE_GSM_ACCESS_t	 gsm_access;
		PE_CSIM_t	 csim;
		PE_OPT_CSIM_t	 opt_csim;
		PE_EAP_t	 eap;
		PE_DF_5GS_t	 df_5gs;
		PE_DF_SAIP_t	 df_saip;
		PE_DF_SNPN_t	 df_snpn;
		PE_DF_5GPROSE_t	 df_5gprose;
		PE_IoT_t	 iot;
		PE_OPT_IoT_t	 opt_iot;
		/*
		 * This type is extensible,
		 * possible extensions are below.
		 */
	} choice;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ProfileElement_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ProfileElement;

#ifdef __cplusplus
}
#endif

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