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

#ifndef	_SGP32_EUICCInfo2_H_
#define	_SGP32_EUICCInfo2_H_


#include <asn_application.h>

/* Including external dependencies */
#include "VersionType.h"
#include <OCTET_STRING.h>
#include "UICCCapability.h"
#include "RspCapability.h"
#include <NativeInteger.h>
#include "PprIds.h"
#include <UTF8String.h>
#include <BIT_STRING.h>
#include "IpaMode.h"
#include "SubjectKeyIdentifier.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum SGP32_EUICCInfo2__euiccCategory {
	SGP32_EUICCInfo2__euiccCategory_other	= 0,
	SGP32_EUICCInfo2__euiccCategory_basicEuicc	= 1,
	SGP32_EUICCInfo2__euiccCategory_mediumEuicc	= 2,
	SGP32_EUICCInfo2__euiccCategory_contactlessEuicc	= 3
} e_SGP32_EUICCInfo2__euiccCategory;
typedef enum SGP32_EUICCInfo2__treProperties {
	SGP32_EUICCInfo2__treProperties_isDiscrete	= 0,
	SGP32_EUICCInfo2__treProperties_isIntegrated	= 1,
	SGP32_EUICCInfo2__treProperties_usesRemoteMemory	= 2
} e_SGP32_EUICCInfo2__treProperties;

/* Forward declarations */
struct CertificationDataObject;
struct IoTSpecificInfo;

/* SGP32-EUICCInfo2 */
typedef struct SGP32_EUICCInfo2 {
	VersionType_t	 profileVersion;
	VersionType_t	 svn;
	VersionType_t	 euiccFirmwareVer;
	OCTET_STRING_t	 extCardResource;
	UICCCapability_t	 uiccCapability;
	VersionType_t	*ts102241Version	/* OPTIONAL */;
	VersionType_t	*globalplatformVersion	/* OPTIONAL */;
	RspCapability_t	 rspCapability;
	struct SGP32_EUICCInfo2__euiccCiPKIdListForVerification {
		A_SEQUENCE_OF(SubjectKeyIdentifier_t) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} euiccCiPKIdListForVerification;
	struct SGP32_EUICCInfo2__euiccCiPKIdListForSigning {
		A_SEQUENCE_OF(SubjectKeyIdentifier_t) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} euiccCiPKIdListForSigning;
	long	*euiccCategory	/* OPTIONAL */;
	PprIds_t	*forbiddenProfilePolicyRules	/* OPTIONAL */;
	VersionType_t	 ppVersion;
	UTF8String_t	 sasAcreditationNumber;
	struct CertificationDataObject	*certificationDataObject	/* OPTIONAL */;
	BIT_STRING_t	*treProperties	/* OPTIONAL */;
	UTF8String_t	*treProductReference	/* OPTIONAL */;
	struct SGP32_EUICCInfo2__additionalEuiccProfilePackageVersions {
		A_SEQUENCE_OF(VersionType_t) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *additionalEuiccProfilePackageVersions;
	IpaMode_t	*ipaMode	/* OPTIONAL */;
	struct SGP32_EUICCInfo2__rfu2 {
		A_SEQUENCE_OF(SubjectKeyIdentifier_t) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *rfu2;
	OCTET_STRING_t	*rfu3	/* OPTIONAL */;
	VersionType_t	*rfu4	/* OPTIONAL */;
	struct IoTSpecificInfo	*iotSpecificInfo	/* OPTIONAL */;
	/*
	 * This type is extensible,
	 * possible extensions are below.
	 */
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SGP32_EUICCInfo2_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SGP32_EUICCInfo2;
extern asn_SEQUENCE_specifics_t asn_SPC_SGP32_EUICCInfo2_specs_1;
extern asn_TYPE_member_t asn_MBR_SGP32_EUICCInfo2_1[23];

#ifdef __cplusplus
}
#endif

/* Referred external types */
#include "CertificationDataObject.h"
#include "IoTSpecificInfo.h"

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