/**********************************
 * Autogenerated -- do not modify *
 **********************************/

#ifndef TYPES_QTOPCUATESTMODEL_GENERATED_H_
#define TYPES_QTOPCUATESTMODEL_GENERATED_H_

#ifdef UA_ENABLE_AMALGAMATION
#include "open62541.h"
#else
#include <open62541/types.h>
#include <open62541/types_generated.h>

#endif



_UA_BEGIN_DECLS


/**
 * Every type is assigned an index in an array containing the type descriptions.
 * These descriptions are used during type handling (copying, deletion,
 * binary encoding, ...). */
#define UA_TYPES_QTOPCUATESTMODEL_COUNT 7
extern UA_EXPORT const UA_DataType UA_TYPES_QTOPCUATESTMODEL[UA_TYPES_QTOPCUATESTMODEL_COUNT];

/**
 * QtInnerTestStructType
 * ^^^^^^^^^^^^^^^^^^^^^
 */
typedef struct {
    UA_Double doubleSubtypeMember;
} UA_QtInnerTestStructType;

#define UA_TYPES_QTOPCUATESTMODEL_QTINNERTESTSTRUCTTYPE 0

/**
 * QtStructWithOptionalFieldType
 * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 */
typedef struct {
    UA_Double mandatoryMember;
    UA_Double *optionalMember;
} UA_QtStructWithOptionalFieldType;

#define UA_TYPES_QTOPCUATESTMODEL_QTSTRUCTWITHOPTIONALFIELDTYPE 1

/**
 * QtTestStructWithDataValue
 * ^^^^^^^^^^^^^^^^^^^^^^^^^
 */
typedef struct {
    UA_DataValue dataValueMember;
    UA_Variant variantMember;
} UA_QtTestStructWithDataValue;

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTSTRUCTWITHDATAVALUE 2

/**
 * QtTestStructWithDiagnosticInfo
 * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 */
typedef struct {
    UA_DiagnosticInfo diagnosticInfoMember;
    size_t diagnosticInfoArrayMemberSize;
    UA_DiagnosticInfo *diagnosticInfoArrayMember;
} UA_QtTestStructWithDiagnosticInfo;

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTSTRUCTWITHDIAGNOSTICINFO 3

/**
 * QtTestUnionType
 * ^^^^^^^^^^^^^^^
 */
typedef enum {
    UA_QTTESTUNIONTYPESWITCH_NONE = 0,
    UA_QTTESTUNIONTYPESWITCH_MEMBER1 = 1,
    UA_QTTESTUNIONTYPESWITCH_MEMBER2 = 2,
    __UA_QTTESTUNIONTYPESWITCH_FORCE32BIT = 0x7fffffff
} UA_QtTestUnionTypeSwitch;
UA_STATIC_ASSERT(sizeof(UA_QtTestUnionTypeSwitch) == sizeof(UA_Int32), enum_must_be_32bit);

typedef struct {
    UA_QtTestUnionTypeSwitch switchField;
    union {
        UA_Int64 member1;
        UA_QtInnerTestStructType member2;
    } fields;
} UA_QtTestUnionType;

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTUNIONTYPE 4

/**
 * QtTestEnumeration
 * ^^^^^^^^^^^^^^^^^
 */
typedef enum {
    UA_QTTESTENUMERATION_UNKNOWN = 0,
    UA_QTTESTENUMERATION_FIRSTOPTION = 1,
    UA_QTTESTENUMERATION_SECONDOPTION = 2,
    UA_QTTESTENUMERATION_THIRDOPTION = 3,
    __UA_QTTESTENUMERATION_FORCE32BIT = 0x7fffffff
} UA_QtTestEnumeration;
UA_STATIC_ASSERT(sizeof(UA_QtTestEnumeration) == sizeof(UA_Int32), enum_must_be_32bit);

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTENUMERATION 5

/**
 * QtTestStructType
 * ^^^^^^^^^^^^^^^^
 */
typedef struct {
    UA_String stringMember;
    UA_LocalizedText localizedTextMember;
    UA_QualifiedName qualifiedNameMember;
    size_t int64ArrayMemberSize;
    UA_Int64 *int64ArrayMember;
    UA_QtTestEnumeration enumMember;
    UA_QtInnerTestStructType nestedStructMember;
    size_t nestedStructArrayMemberSize;
    UA_QtInnerTestStructType *nestedStructArrayMember;
} UA_QtTestStructType;

#define UA_TYPES_QTOPCUATESTMODEL_QTTESTSTRUCTTYPE 6


_UA_END_DECLS

#endif /* TYPES_QTOPCUATESTMODEL_GENERATED_H_ */
