363class IHasDataSpecification;
 
  365class IAdministrativeInformation;
 
  371class IAssetAdministrationShell;
 
  373class IAssetInformation;
 
  377class ISpecificAssetId;
 
  381class ISubmodelElement;
 
  383class IRelationshipElement;
 
  385class ISubmodelElementList;
 
  387class ISubmodelElementCollection;
 
  393class IMultiLanguageProperty;
 
  397class IReferenceElement;
 
  403class IAnnotatedRelationshipElement;
 
  411class IBasicEventElement;
 
  415class IOperationVariable;
 
  419class IConceptDescription;
 
  425class IAbstractLangString;
 
  427class ILangStringNameType;
 
  429class ILangStringTextType;
 
  433class IDataSpecificationContent;
 
  435class IEmbeddedDataSpecification;
 
  439class IValueReferencePair;
 
  443class ILangStringPreferredNameTypeIec61360;
 
  445class ILangStringShortNameTypeIec61360;
 
  447class ILangStringDefinitionTypeIec61360;
 
  449class IDataSpecificationIec61360;
 
  480  virtual const common::optional<
 
  481    std::shared_ptr<IReference>
 
  484  virtual common::optional<
 
  485    std::shared_ptr<IReference>
 
  490      std::shared_ptr<IReference>
 
  502  virtual const common::optional<
 
  504      std::shared_ptr<IReference>
 
  508  virtual common::optional<
 
  510      std::shared_ptr<IReference>
 
  517        std::shared_ptr<IReference>
 
 
  534  virtual const std::wstring& 
name() 
const = 0;
 
  549  virtual const common::optional<DataTypeDefXsd>& 
value_type() 
const = 0;
 
  554    common::optional<DataTypeDefXsd> 
value 
  562  virtual const common::optional<std::wstring>& 
value() 
const = 0;
 
  567    common::optional<std::wstring> 
value 
  575  virtual const common::optional<
 
  577      std::shared_ptr<IReference>
 
  581  virtual common::optional<
 
  583      std::shared_ptr<IReference>
 
  590        std::shared_ptr<IReference>
 
 
  611  virtual const common::optional<
 
  613      std::shared_ptr<IExtension>
 
  617  virtual common::optional<
 
  619      std::shared_ptr<IExtension>
 
  626        std::shared_ptr<IExtension>
 
 
  658  virtual const common::optional<std::wstring>& 
category() 
const = 0;
 
  663    common::optional<std::wstring> value
 
  677  virtual const common::optional<std::wstring>& 
id_short() 
const = 0;
 
  682    common::optional<std::wstring> value
 
  690  virtual const common::optional<
 
  692      std::shared_ptr<ILangStringNameType>
 
  696  virtual common::optional<
 
  698      std::shared_ptr<ILangStringNameType>
 
  705        std::shared_ptr<ILangStringNameType>
 
  725  virtual const common::optional<
 
  727      std::shared_ptr<ILangStringTextType>
 
  731  virtual common::optional<
 
  733      std::shared_ptr<ILangStringTextType>
 
  740        std::shared_ptr<ILangStringTextType>
 
 
  760  virtual const common::optional<
 
  761    std::shared_ptr<IAdministrativeInformation>
 
  764  virtual common::optional<
 
  765    std::shared_ptr<IAdministrativeInformation>
 
  770      std::shared_ptr<IAdministrativeInformation>
 
  779  virtual const std::wstring& 
id() 
const = 0;
 
 
  804  virtual const common::optional<ModellingKind>& 
kind() 
const = 0;
 
  809    common::optional<ModellingKind> value
 
 
  830  virtual const common::optional<
 
  832      std::shared_ptr<IEmbeddedDataSpecification>
 
  836  virtual common::optional<
 
  838      std::shared_ptr<IEmbeddedDataSpecification>
 
  845        std::shared_ptr<IEmbeddedDataSpecification>
 
 
  868  virtual const common::optional<std::wstring>& 
version() 
const = 0;
 
  873    common::optional<std::wstring> value
 
  881  virtual const common::optional<std::wstring>& 
revision() 
const = 0;
 
  886    common::optional<std::wstring> value
 
  894  virtual const common::optional<
 
  895    std::shared_ptr<IReference>
 
  898  virtual common::optional<
 
  899    std::shared_ptr<IReference>
 
  904      std::shared_ptr<IReference>
 
  922  virtual const common::optional<std::wstring>& 
template_id() 
const = 0;
 
  927    common::optional<std::wstring> value
 
 
  951  virtual const common::optional<
 
  953      std::shared_ptr<IQualifier>
 
  957  virtual common::optional<
 
  959      std::shared_ptr<IQualifier>
 
  966        std::shared_ptr<IQualifier>
 
 
  997  virtual const common::optional<QualifierKind>& 
kind() 
const = 0;
 
 1002    common::optional<QualifierKind> 
value 
 1011  virtual const std::wstring& 
type() 
const = 0;
 
 1037  virtual const common::optional<std::wstring>& 
value() 
const = 0;
 
 1042    common::optional<std::wstring> 
value 
 1052  virtual const common::optional<
 
 1053    std::shared_ptr<IReference>
 
 1056  virtual common::optional<
 
 1057    std::shared_ptr<IReference>
 
 1062      std::shared_ptr<IReference>
 
 
 1081  virtual const common::optional<
 
 1082    std::shared_ptr<IReference>
 
 1085  virtual common::optional<
 
 1086    std::shared_ptr<IReference>
 
 1091      std::shared_ptr<IReference>
 
 1105    std::shared_ptr<IAssetInformation> value
 
 1119  virtual const common::optional<
 
 1121      std::shared_ptr<IReference>
 
 1125  virtual common::optional<
 
 1127      std::shared_ptr<IReference>
 
 1134        std::shared_ptr<IReference>
 
 
 1178    : 
virtual public IClass {
 
 1209    common::optional<std::wstring> value
 
 1218  virtual const common::optional<
 
 1220      std::shared_ptr<ISpecificAssetId>
 
 1224  virtual common::optional<
 
 1226      std::shared_ptr<ISpecificAssetId>
 
 1233        std::shared_ptr<ISpecificAssetId>
 
 1249  virtual const common::optional<std::wstring>& 
asset_type() 
const = 0;
 
 1254    common::optional<std::wstring> value
 
 1264  virtual const common::optional<
 
 1265    std::shared_ptr<IResource>
 
 1268  virtual common::optional<
 
 1269    std::shared_ptr<IResource>
 
 1274      std::shared_ptr<IResource>
 
 
 1286    : 
virtual public IClass {
 
 1293  virtual const std::wstring& 
path() 
const = 0;
 
 1313    common::optional<std::wstring> value
 
 
 1335  virtual const std::wstring& 
name() 
const = 0;
 
 1348  virtual const std::wstring& 
value() 
const = 0;
 
 1363  virtual const common::optional<
 
 1364    std::shared_ptr<IReference>
 
 1367  virtual common::optional<
 
 1368    std::shared_ptr<IReference>
 
 1373      std::shared_ptr<IReference>
 
 
 1398  virtual const common::optional<
 
 1400      std::shared_ptr<ISubmodelElement>
 
 1404  virtual common::optional<
 
 1406      std::shared_ptr<ISubmodelElement>
 
 1413        std::shared_ptr<ISubmodelElement>
 
 
 1451  virtual const std::shared_ptr<IReference>& 
first() 
const = 0;
 
 1456    std::shared_ptr<IReference> value
 
 1464  virtual const std::shared_ptr<IReference>& 
second() 
const = 0;
 
 1469    std::shared_ptr<IReference> value
 
 
 1524    common::optional<bool> 
value 
 1534  virtual const common::optional<
 
 1535    std::shared_ptr<IReference>
 
 1538  virtual common::optional<
 
 1539    std::shared_ptr<IReference>
 
 1544      std::shared_ptr<IReference>
 
 1571    common::optional<DataTypeDefXsd> 
value 
 1581  virtual const common::optional<
 
 1583      std::shared_ptr<ISubmodelElement>
 
 1587  virtual common::optional<
 
 1589      std::shared_ptr<ISubmodelElement>
 
 1596        std::shared_ptr<ISubmodelElement>
 
 
 1616  virtual const common::optional<
 
 1618      std::shared_ptr<ISubmodelElement>
 
 1622  virtual common::optional<
 
 1624      std::shared_ptr<ISubmodelElement>
 
 1631        std::shared_ptr<ISubmodelElement>
 
 
 1685  virtual const common::optional<std::wstring>& 
value() 
const = 0;
 
 1690    common::optional<std::wstring> 
value 
 1700  virtual const common::optional<
 
 1701    std::shared_ptr<IReference>
 
 1704  virtual common::optional<
 
 1705    std::shared_ptr<IReference>
 
 1710      std::shared_ptr<IReference>
 
 
 1731  virtual const common::optional<
 
 1733      std::shared_ptr<ILangStringTextType>
 
 1737  virtual common::optional<
 
 1739      std::shared_ptr<ILangStringTextType>
 
 1746        std::shared_ptr<ILangStringTextType>
 
 1758  virtual const common::optional<
 
 1759    std::shared_ptr<IReference>
 
 1762  virtual common::optional<
 
 1763    std::shared_ptr<IReference>
 
 1768      std::shared_ptr<IReference>
 
 
 1799  virtual const common::optional<std::wstring>& 
min() 
const = 0;
 
 1804    common::optional<std::wstring> value
 
 1814  virtual const common::optional<std::wstring>& 
max() 
const = 0;
 
 1819    common::optional<std::wstring> value
 
 
 1838  virtual const common::optional<
 
 1839    std::shared_ptr<IReference>
 
 1842  virtual common::optional<
 
 1843    std::shared_ptr<IReference>
 
 1848      std::shared_ptr<IReference>
 
 
 1868  virtual const common::optional<
 
 1869    std::vector<std::uint8_t>
 
 1872  virtual common::optional<
 
 1873    std::vector<std::uint8_t>
 
 1878      std::vector<std::uint8_t>
 
 
 1918  virtual const common::optional<std::wstring>& 
value() 
const = 0;
 
 1923    common::optional<std::wstring> 
value 
 
 1955  virtual const common::optional<
 
 1957      std::shared_ptr<IDataElement>
 
 1961  virtual common::optional<
 
 1963      std::shared_ptr<IDataElement>
 
 1970        std::shared_ptr<IDataElement>
 
 
 1993  virtual const common::optional<
 
 1995      std::shared_ptr<ISubmodelElement>
 
 1999  virtual common::optional<
 
 2001      std::shared_ptr<ISubmodelElement>
 
 2008        std::shared_ptr<ISubmodelElement>
 
 2038    common::optional<std::wstring> value
 
 2047  virtual const common::optional<
 
 2049      std::shared_ptr<ISpecificAssetId>
 
 2053  virtual common::optional<
 
 2055      std::shared_ptr<ISpecificAssetId>
 
 2062        std::shared_ptr<ISpecificAssetId>
 
 
 2077    : 
virtual public IClass {
 
 2084  virtual const std::shared_ptr<IReference>& 
source() 
const = 0;
 
 2089    std::shared_ptr<IReference> value
 
 2099  virtual const common::optional<
 
 2100    std::shared_ptr<IReference>
 
 2103  virtual common::optional<
 
 2104    std::shared_ptr<IReference>
 
 2109      std::shared_ptr<IReference>
 
 2126    std::shared_ptr<IReference> value
 
 2137  virtual const common::optional<
 
 2138    std::shared_ptr<IReference>
 
 2141  virtual common::optional<
 
 2142    std::shared_ptr<IReference>
 
 2147      std::shared_ptr<IReference>
 
 2157  virtual const common::optional<std::wstring>& 
topic() 
const = 0;
 
 2162    common::optional<std::wstring> value
 
 2172  virtual const common::optional<
 
 2173    std::shared_ptr<IReference>
 
 2176  virtual common::optional<
 
 2177    std::shared_ptr<IReference>
 
 2182      std::shared_ptr<IReference>
 
 2204  virtual const common::optional<
 
 2205    std::vector<std::uint8_t>
 
 2208  virtual common::optional<
 
 2209    std::vector<std::uint8_t>
 
 2214      std::vector<std::uint8_t>
 
 
 2248  virtual const std::shared_ptr<IReference>& 
observed() 
const = 0;
 
 2253    std::shared_ptr<IReference> value
 
 2297    common::optional<std::wstring> value
 
 2312  virtual const common::optional<
 
 2313    std::shared_ptr<IReference>
 
 2316  virtual common::optional<
 
 2317    std::shared_ptr<IReference>
 
 2322      std::shared_ptr<IReference>
 
 2332  virtual const common::optional<std::wstring>& 
last_update() 
const = 0;
 
 2337    common::optional<std::wstring> value
 
 2356    common::optional<std::wstring> value
 
 2375    common::optional<std::wstring> value
 
 
 2396  virtual const common::optional<
 
 2398      std::shared_ptr<IOperationVariable>
 
 2402  virtual common::optional<
 
 2404      std::shared_ptr<IOperationVariable>
 
 2411        std::shared_ptr<IOperationVariable>
 
 2421  virtual const common::optional<
 
 2423      std::shared_ptr<IOperationVariable>
 
 2427  virtual common::optional<
 
 2429      std::shared_ptr<IOperationVariable>
 
 2436        std::shared_ptr<IOperationVariable>
 
 2446  virtual const common::optional<
 
 2448      std::shared_ptr<IOperationVariable>
 
 2452  virtual common::optional<
 
 2454      std::shared_ptr<IOperationVariable>
 
 2461        std::shared_ptr<IOperationVariable>
 
 
 2474    : 
virtual public IClass {
 
 2479  virtual const std::shared_ptr<ISubmodelElement>& 
value() 
const = 0;
 
 2484    std::shared_ptr<ISubmodelElement> 
value 
 
 2573  virtual const common::optional<
 
 2575      std::shared_ptr<IReference>
 
 2579  virtual common::optional<
 
 2581      std::shared_ptr<IReference>
 
 2588        std::shared_ptr<IReference>
 
 
 2669    : 
virtual public IClass {
 
 2694  virtual const common::optional<
 
 2695    std::shared_ptr<IReference>
 
 2698  virtual common::optional<
 
 2699    std::shared_ptr<IReference>
 
 2704      std::shared_ptr<IReference>
 
 2713  virtual const std::vector<
 
 2714    std::shared_ptr<IKey>
 
 2717  virtual std::vector<
 
 2718    std::shared_ptr<IKey>
 
 2723      std::shared_ptr<IKey>
 
 
 2734    : 
virtual public IClass {
 
 2762  virtual const std::wstring& 
value() 
const = 0;
 
 
 2777    : 
virtual public IClass {
 
 2795  virtual const std::wstring& 
text() 
const = 0;
 
 
 2828    : 
virtual public IClass {
 
 2833  virtual const common::optional<
 
 2835      std::shared_ptr<IAssetAdministrationShell>
 
 2839  virtual common::optional<
 
 2841      std::shared_ptr<IAssetAdministrationShell>
 
 2848        std::shared_ptr<IAssetAdministrationShell>
 
 2858  virtual const common::optional<
 
 2860      std::shared_ptr<ISubmodel>
 
 2864  virtual common::optional<
 
 2866      std::shared_ptr<ISubmodel>
 
 2873        std::shared_ptr<ISubmodel>
 
 2883  virtual const common::optional<
 
 2885      std::shared_ptr<IConceptDescription>
 
 2889  virtual common::optional<
 
 2891      std::shared_ptr<IConceptDescription>
 
 2898        std::shared_ptr<IConceptDescription>
 
 
 2920    : 
virtual public IClass {
 
 
 2927    : 
virtual public IClass {
 
 2937    std::shared_ptr<IReference> value
 
 2950    std::shared_ptr<IDataSpecificationContent> value
 
 
 2990    : 
virtual public IClass {
 
 
 3050    : 
virtual public IClass {
 
 3055  virtual const std::wstring& 
value() 
const = 0;
 
 3070  virtual const std::shared_ptr<IReference>& 
value_id() 
const = 0;
 
 3075    std::shared_ptr<IReference> 
value 
 
 3085    : 
virtual public IClass {
 
 3090  virtual const std::vector<
 
 3091    std::shared_ptr<IValueReferencePair>
 
 3094  virtual std::vector<
 
 3095    std::shared_ptr<IValueReferencePair>
 
 3100      std::shared_ptr<IValueReferencePair>
 
 
 3171class IDataSpecificationIec61360
 
 3179  virtual const std::vector<
 
 3180    std::shared_ptr<ILangStringPreferredNameTypeIec61360>
 
 3181  >& preferred_name() 
const = 0;
 
 3183  virtual std::vector<
 
 3184    std::shared_ptr<ILangStringPreferredNameTypeIec61360>
 
 3185  >& mutable_preferred_name() = 0;
 
 3187  virtual void set_preferred_name(
 
 3189      std::shared_ptr<ILangStringPreferredNameTypeIec61360>
 
 3198  virtual const common::optional<
 
 3200      std::shared_ptr<ILangStringShortNameTypeIec61360>
 
 3202  >& short_name() 
const = 0;
 
 3204  virtual common::optional<
 
 3206      std::shared_ptr<ILangStringShortNameTypeIec61360>
 
 3208  >& mutable_short_name() = 0;
 
 3210  virtual void set_short_name(
 
 3213        std::shared_ptr<ILangStringShortNameTypeIec61360>
 
 3223  virtual const common::optional<std::wstring>& unit() 
const = 0;
 
 3225  virtual common::optional<std::wstring>& mutable_unit() = 0;
 
 3227  virtual void set_unit(
 
 3228    common::optional<std::wstring> value
 
 3241  virtual const common::optional<
 
 3242    std::shared_ptr<IReference>
 
 3243  >& unit_id() 
const = 0;
 
 3245  virtual common::optional<
 
 3246    std::shared_ptr<IReference>
 
 3247  >& mutable_unit_id() = 0;
 
 3249  virtual void set_unit_id(
 
 3251      std::shared_ptr<IReference>
 
 3260  virtual const common::optional<std::wstring>& source_of_definition() 
const = 0;
 
 3262  virtual common::optional<std::wstring>& mutable_source_of_definition() = 0;
 
 3264  virtual void set_source_of_definition(
 
 3265    common::optional<std::wstring> value
 
 3273  virtual const common::optional<std::wstring>& symbol() 
const = 0;
 
 3275  virtual common::optional<std::wstring>& mutable_symbol() = 0;
 
 3277  virtual void set_symbol(
 
 3278    common::optional<std::wstring> value
 
 3286  virtual const common::optional<DataTypeIec61360>& data_type() 
const = 0;
 
 3288  virtual common::optional<DataTypeIec61360>& mutable_data_type() = 0;
 
 3290  virtual void set_data_type(
 
 3291    common::optional<DataTypeIec61360> value
 
 3299  virtual const common::optional<
 
 3301      std::shared_ptr<ILangStringDefinitionTypeIec61360>
 
 3303  >& definition() 
const = 0;
 
 3305  virtual common::optional<
 
 3307      std::shared_ptr<ILangStringDefinitionTypeIec61360>
 
 3309  >& mutable_definition() = 0;
 
 3311  virtual void set_definition(
 
 3314        std::shared_ptr<ILangStringDefinitionTypeIec61360>
 
 3326  virtual const common::optional<std::wstring>& value_format() 
const = 0;
 
 3328  virtual common::optional<std::wstring>& mutable_value_format() = 0;
 
 3330  virtual void set_value_format(
 
 3331    common::optional<std::wstring> value
 
 3339  virtual const common::optional<
 
 3340    std::shared_ptr<IValueList>
 
 3341  >& value_list() 
const = 0;
 
 3343  virtual common::optional<
 
 3344    std::shared_ptr<IValueList>
 
 3345  >& mutable_value_list() = 0;
 
 3347  virtual void set_value_list(
 
 3349      std::shared_ptr<IValueList>
 
 3358  virtual const common::optional<std::wstring>& value() 
const = 0;
 
 3360  virtual common::optional<std::wstring>& mutable_value() = 0;
 
 3362  virtual void set_value(
 
 3363    common::optional<std::wstring> value
 
 3371  virtual const common::optional<
 
 3372    std::shared_ptr<ILevelType>
 
 3373  >& level_type() 
const = 0;
 
 3375  virtual common::optional<
 
 3376    std::shared_ptr<ILevelType>
 
 3377  >& mutable_level_type() = 0;
 
 3379  virtual void set_level_type(
 
 3381      std::shared_ptr<ILevelType>
 
 3387  virtual ~IDataSpecificationIec61360() = 
default;
 
 3395    : 
public IExtension {
 
 3400      std::shared_ptr<IReference>
 
 3401    > semantic_id = common::nullopt,
 
 3404        std::shared_ptr<IReference>
 
 3406    > supplemental_semantic_ids = common::nullopt,
 
 3407    common::optional<DataTypeDefXsd> value_type = common::nullopt,
 
 3408    common::optional<std::wstring> value = common::nullopt,
 
 3411        std::shared_ptr<IReference>
 
 3413    > refers_to = common::nullopt
 
 3416  ModelType model_type() 
const override;
 
 3420  const common::optional<
 
 3421    std::shared_ptr<IReference>
 
 3422  >& semantic_id() 
const override;
 
 3425    std::shared_ptr<IReference>
 
 3426  >& mutable_semantic_id() 
override;
 
 3428  void set_semantic_id(
 
 3430      std::shared_ptr<IReference>
 
 3438  const common::optional<
 
 3440      std::shared_ptr<IReference>
 
 3442  >& supplemental_semantic_ids() 
const override;
 
 3446      std::shared_ptr<IReference>
 
 3448  >& mutable_supplemental_semantic_ids() 
override;
 
 3450  void set_supplemental_semantic_ids(
 
 3453        std::shared_ptr<IReference>
 
 3462  const std::wstring& name() 
const override;
 
 3464  std::wstring& mutable_name() 
override;
 
 3474  const common::optional<DataTypeDefXsd>& value_type() 
const override;
 
 3476  common::optional<DataTypeDefXsd>& mutable_value_type() 
override;
 
 3478  void set_value_type(
 
 3479    common::optional<DataTypeDefXsd> value
 
 3486  const common::optional<std::wstring>& value() 
const override;
 
 3488  common::optional<std::wstring>& mutable_value() 
override;
 
 3491    common::optional<std::wstring> value
 
 3498  const common::optional<
 
 3500      std::shared_ptr<IReference>
 
 3502  >& refers_to() 
const override;
 
 3506      std::shared_ptr<IReference>
 
 3508  >& mutable_refers_to() 
override;
 
 3513        std::shared_ptr<IReference>
 
 3520  DataTypeDefXsd ValueTypeOrDefault() 
const override;
 
 3522  ~Extension() 
override = 
default;
 
 3526    std::shared_ptr<IReference>
 
 3531      std::shared_ptr<IReference>
 
 3533  > supplemental_semantic_ids_;
 
 3537  common::optional<DataTypeDefXsd> value_type_;
 
 3539  common::optional<std::wstring> value_;
 
 3543      std::shared_ptr<IReference>
 
 3548class AdministrativeInformation
 
 3549    : 
public IAdministrativeInformation {
 
 3551  AdministrativeInformation(
 
 3554        std::shared_ptr<IEmbeddedDataSpecification>
 
 3556    > embedded_data_specifications = common::nullopt,
 
 3557    common::optional<std::wstring> version = common::nullopt,
 
 3558    common::optional<std::wstring> revision = common::nullopt,
 
 3560      std::shared_ptr<IReference>
 
 3561    > creator = common::nullopt,
 
 3562    common::optional<std::wstring> template_id = common::nullopt
 
 3565  ModelType model_type() 
const override;
 
 3569  const common::optional<
 
 3571      std::shared_ptr<IEmbeddedDataSpecification>
 
 3573  >& embedded_data_specifications() 
const override;
 
 3577      std::shared_ptr<IEmbeddedDataSpecification>
 
 3579  >& mutable_embedded_data_specifications() 
override;
 
 3581  void set_embedded_data_specifications(
 
 3584        std::shared_ptr<IEmbeddedDataSpecification>
 
 3593  const common::optional<std::wstring>& version() 
const override;
 
 3595  common::optional<std::wstring>& mutable_version() 
override;
 
 3598    common::optional<std::wstring> value
 
 3605  const common::optional<std::wstring>& revision() 
const override;
 
 3607  common::optional<std::wstring>& mutable_revision() 
override;
 
 3610    common::optional<std::wstring> value
 
 3617  const common::optional<
 
 3618    std::shared_ptr<IReference>
 
 3619  >& creator() 
const override;
 
 3622    std::shared_ptr<IReference>
 
 3623  >& mutable_creator() 
override;
 
 3627      std::shared_ptr<IReference>
 
 3635  const common::optional<std::wstring>& template_id() 
const override;
 
 3637  common::optional<std::wstring>& mutable_template_id() 
override;
 
 3639  void set_template_id(
 
 3640    common::optional<std::wstring> value
 
 3645  ~AdministrativeInformation() 
override = 
default;
 
 3650      std::shared_ptr<IEmbeddedDataSpecification>
 
 3652  > embedded_data_specifications_;
 
 3654  common::optional<std::wstring> version_;
 
 3656  common::optional<std::wstring> revision_;
 
 3659    std::shared_ptr<IReference>
 
 3662  common::optional<std::wstring> template_id_;
 
 3666    : 
public IQualifier {
 
 3670    DataTypeDefXsd value_type,
 
 3672      std::shared_ptr<IReference>
 
 3673    > semantic_id = common::nullopt,
 
 3676        std::shared_ptr<IReference>
 
 3678    > supplemental_semantic_ids = common::nullopt,
 
 3679    common::optional<QualifierKind> kind = common::nullopt,
 
 3680    common::optional<std::wstring> value = common::nullopt,
 
 3682      std::shared_ptr<IReference>
 
 3683    > value_id = common::nullopt
 
 3686  ModelType model_type() 
const override;
 
 3690  const common::optional<
 
 3691    std::shared_ptr<IReference>
 
 3692  >& semantic_id() 
const override;
 
 3695    std::shared_ptr<IReference>
 
 3696  >& mutable_semantic_id() 
override;
 
 3698  void set_semantic_id(
 
 3700      std::shared_ptr<IReference>
 
 3708  const common::optional<
 
 3710      std::shared_ptr<IReference>
 
 3712  >& supplemental_semantic_ids() 
const override;
 
 3716      std::shared_ptr<IReference>
 
 3718  >& mutable_supplemental_semantic_ids() 
override;
 
 3720  void set_supplemental_semantic_ids(
 
 3723        std::shared_ptr<IReference>
 
 3732  const common::optional<QualifierKind>& kind() 
const override;
 
 3734  common::optional<QualifierKind>& mutable_kind() 
override;
 
 3737    common::optional<QualifierKind> value
 
 3744  const std::wstring& type() 
const override;
 
 3746  std::wstring& mutable_type() 
override;
 
 3756  DataTypeDefXsd value_type() 
const override;
 
 3758  DataTypeDefXsd& mutable_value_type() 
override;
 
 3760  void set_value_type(
 
 3761    DataTypeDefXsd value
 
 3768  const common::optional<std::wstring>& value() 
const override;
 
 3770  common::optional<std::wstring>& mutable_value() 
override;
 
 3773    common::optional<std::wstring> value
 
 3780  const common::optional<
 
 3781    std::shared_ptr<IReference>
 
 3782  >& value_id() 
const override;
 
 3785    std::shared_ptr<IReference>
 
 3786  >& mutable_value_id() 
override;
 
 3790      std::shared_ptr<IReference>
 
 3796  QualifierKind KindOrDefault() 
const override;
 
 3798  ~Qualifier() 
override = 
default;
 
 3802    std::shared_ptr<IReference>
 
 3807      std::shared_ptr<IReference>
 
 3809  > supplemental_semantic_ids_;
 
 3811  common::optional<QualifierKind> kind_;
 
 3815  DataTypeDefXsd value_type_;
 
 3817  common::optional<std::wstring> value_;
 
 3820    std::shared_ptr<IReference>
 
 3824class AssetAdministrationShell
 
 3827  AssetAdministrationShell(
 
 3829    std::shared_ptr<IAssetInformation> asset_information,
 
 3832        std::shared_ptr<IExtension>
 
 3834    > extensions = common::nullopt,
 
 3835    common::optional<std::wstring> category = common::nullopt,
 
 3836    common::optional<std::wstring> id_short = common::nullopt,
 
 3839        std::shared_ptr<ILangStringNameType>
 
 3841    > display_name = common::nullopt,
 
 3844        std::shared_ptr<ILangStringTextType>
 
 3846    > description = common::nullopt,
 
 3848      std::shared_ptr<IAdministrativeInformation>
 
 3849    > administration = common::nullopt,
 
 3852        std::shared_ptr<IEmbeddedDataSpecification>
 
 3854    > embedded_data_specifications = common::nullopt,
 
 3856      std::shared_ptr<IReference>
 
 3857    > derived_from = common::nullopt,
 
 3860        std::shared_ptr<IReference>
 
 3862    > submodels = common::nullopt
 
 3869  const common::optional<
 
 3871      std::shared_ptr<IExtension>
 
 3873  >& extensions() 
const override;
 
 3877      std::shared_ptr<IExtension>
 
 3879  >& mutable_extensions() 
override;
 
 3881  void set_extensions(
 
 3884        std::shared_ptr<IExtension>
 
 3893  const common::optional<std::wstring>& category() 
const override;
 
 3895  common::optional<std::wstring>& mutable_category() 
override;
 
 3898    common::optional<std::wstring> value
 
 3905  const common::optional<std::wstring>& id_short() 
const override;
 
 3907  common::optional<std::wstring>& mutable_id_short() 
override;
 
 3910    common::optional<std::wstring> value
 
 3917  const common::optional<
 
 3919      std::shared_ptr<ILangStringNameType>
 
 3921  >& display_name() 
const override;
 
 3925      std::shared_ptr<ILangStringNameType>
 
 3927  >& mutable_display_name() 
override;
 
 3929  void set_display_name(
 
 3932        std::shared_ptr<ILangStringNameType>
 
 3941  const common::optional<
 
 3943      std::shared_ptr<ILangStringTextType>
 
 3945  >& description() 
const override;
 
 3949      std::shared_ptr<ILangStringTextType>
 
 3951  >& mutable_description() 
override;
 
 3953  void set_description(
 
 3956        std::shared_ptr<ILangStringTextType>
 
 3965  const common::optional<
 
 3966    std::shared_ptr<IAdministrativeInformation>
 
 3967  >& administration() 
const override;
 
 3970    std::shared_ptr<IAdministrativeInformation>
 
 3971  >& mutable_administration() 
override;
 
 3973  void set_administration(
 
 3975      std::shared_ptr<IAdministrativeInformation>
 
 3983  const std::wstring& id() 
const override;
 
 3985  std::wstring& mutable_id() 
override;
 
 3995  const common::optional<
 
 3997      std::shared_ptr<IEmbeddedDataSpecification>
 
 3999  >& embedded_data_specifications() 
const override;
 
 4003      std::shared_ptr<IEmbeddedDataSpecification>
 
 4005  >& mutable_embedded_data_specifications() 
override;
 
 4007  void set_embedded_data_specifications(
 
 4010        std::shared_ptr<IEmbeddedDataSpecification>
 
 4019  const common::optional<
 
 4020    std::shared_ptr<IReference>
 
 4021  >& derived_from() 
const override;
 
 4024    std::shared_ptr<IReference>
 
 4025  >& mutable_derived_from() 
override;
 
 4027  void set_derived_from(
 
 4029      std::shared_ptr<IReference>
 
 4037  const std::shared_ptr<IAssetInformation>& asset_information() 
const override;
 
 4039  std::shared_ptr<IAssetInformation>& mutable_asset_information() 
override;
 
 4041  void set_asset_information(
 
 4042    std::shared_ptr<IAssetInformation> value
 
 4049  const common::optional<
 
 4051      std::shared_ptr<IReference>
 
 4053  >& submodels() 
const override;
 
 4057      std::shared_ptr<IReference>
 
 4059  >& mutable_submodels() 
override;
 
 4064        std::shared_ptr<IReference>
 
 4071  ~AssetAdministrationShell() 
override = 
default;
 
 4076      std::shared_ptr<IExtension>
 
 4080  common::optional<std::wstring> category_;
 
 4082  common::optional<std::wstring> id_short_;
 
 4086      std::shared_ptr<ILangStringNameType>
 
 4092      std::shared_ptr<ILangStringTextType>
 
 4097    std::shared_ptr<IAdministrativeInformation>
 
 4104      std::shared_ptr<IEmbeddedDataSpecification>
 
 4106  > embedded_data_specifications_;
 
 4109    std::shared_ptr<IReference>
 
 4112  std::shared_ptr<IAssetInformation> asset_information_;
 
 4116      std::shared_ptr<IReference>
 
 4121class AssetInformation
 
 4124  explicit AssetInformation(
 
 4125    AssetKind asset_kind,
 
 4126    common::optional<std::wstring> global_asset_id = common::nullopt,
 
 4129        std::shared_ptr<ISpecificAssetId>
 
 4131    > specific_asset_ids = common::nullopt,
 
 4132    common::optional<std::wstring> asset_type = common::nullopt,
 
 4134      std::shared_ptr<IResource>
 
 4135    > default_thumbnail = common::nullopt
 
 4144  AssetKind& mutable_asset_kind() 
override;
 
 4146  void set_asset_kind(
 
 4154  const common::optional<std::wstring>& global_asset_id() 
const override;
 
 4156  common::optional<std::wstring>& mutable_global_asset_id() 
override;
 
 4158  void set_global_asset_id(
 
 4159    common::optional<std::wstring> value
 
 4166  const common::optional<
 
 4168      std::shared_ptr<ISpecificAssetId>
 
 4170  >& specific_asset_ids() 
const override;
 
 4174      std::shared_ptr<ISpecificAssetId>
 
 4176  >& mutable_specific_asset_ids() 
override;
 
 4178  void set_specific_asset_ids(
 
 4181        std::shared_ptr<ISpecificAssetId>
 
 4190  const common::optional<std::wstring>& asset_type() 
const override;
 
 4192  common::optional<std::wstring>& mutable_asset_type() 
override;
 
 4194  void set_asset_type(
 
 4195    common::optional<std::wstring> value
 
 4202  const common::optional<
 
 4203    std::shared_ptr<IResource>
 
 4204  >& default_thumbnail() 
const override;
 
 4207    std::shared_ptr<IResource>
 
 4208  >& mutable_default_thumbnail() 
override;
 
 4210  void set_default_thumbnail(
 
 4212      std::shared_ptr<IResource>
 
 4218  ~AssetInformation() 
override = 
default;
 
 4223  common::optional<std::wstring> global_asset_id_;
 
 4227      std::shared_ptr<ISpecificAssetId>
 
 4229  > specific_asset_ids_;
 
 4231  common::optional<std::wstring> asset_type_;
 
 4234    std::shared_ptr<IResource>
 
 4235  > default_thumbnail_;
 
 4243    common::optional<std::wstring> content_type = common::nullopt
 
 4250  const std::wstring& path() 
const override;
 
 4252  std::wstring& mutable_path() 
override;
 
 4262  const common::optional<std::wstring>& content_type() 
const override;
 
 4264  common::optional<std::wstring>& mutable_content_type() 
override;
 
 4266  void set_content_type(
 
 4267    common::optional<std::wstring> value
 
 4272  ~Resource() 
override = 
default;
 
 4277  common::optional<std::wstring> content_type_;
 
 4280class SpecificAssetId
 
 4287      std::shared_ptr<IReference>
 
 4288    > semantic_id = common::nullopt,
 
 4291        std::shared_ptr<IReference>
 
 4293    > supplemental_semantic_ids = common::nullopt,
 
 4295      std::shared_ptr<IReference>
 
 4296    > external_subject_id = common::nullopt
 
 4303  const common::optional<
 
 4304    std::shared_ptr<IReference>
 
 4305  >& semantic_id() 
const override;
 
 4308    std::shared_ptr<IReference>
 
 4309  >& mutable_semantic_id() 
override;
 
 4311  void set_semantic_id(
 
 4313      std::shared_ptr<IReference>
 
 4321  const common::optional<
 
 4323      std::shared_ptr<IReference>
 
 4325  >& supplemental_semantic_ids() 
const override;
 
 4329      std::shared_ptr<IReference>
 
 4331  >& mutable_supplemental_semantic_ids() 
override;
 
 4333  void set_supplemental_semantic_ids(
 
 4336        std::shared_ptr<IReference>
 
 4345  const std::wstring& name() 
const override;
 
 4347  std::wstring& mutable_name() 
override;
 
 4357  const std::wstring& value() 
const override;
 
 4359  std::wstring& mutable_value() 
override;
 
 4369  const common::optional<
 
 4370    std::shared_ptr<IReference>
 
 4371  >& external_subject_id() 
const override;
 
 4374    std::shared_ptr<IReference>
 
 4375  >& mutable_external_subject_id() 
override;
 
 4377  void set_external_subject_id(
 
 4379      std::shared_ptr<IReference>
 
 4385  ~SpecificAssetId() 
override = 
default;
 
 4389    std::shared_ptr<IReference>
 
 4394      std::shared_ptr<IReference>
 
 4396  > supplemental_semantic_ids_;
 
 4400  std::wstring value_;
 
 4403    std::shared_ptr<IReference>
 
 4404  > external_subject_id_;
 
 4414        std::shared_ptr<IExtension>
 
 4416    > extensions = common::nullopt,
 
 4417    common::optional<std::wstring> category = common::nullopt,
 
 4418    common::optional<std::wstring> id_short = common::nullopt,
 
 4421        std::shared_ptr<ILangStringNameType>
 
 4423    > display_name = common::nullopt,
 
 4426        std::shared_ptr<ILangStringTextType>
 
 4428    > description = common::nullopt,
 
 4430      std::shared_ptr<IAdministrativeInformation>
 
 4431    > administration = common::nullopt,
 
 4432    common::optional<ModellingKind> kind = common::nullopt,
 
 4434      std::shared_ptr<IReference>
 
 4435    > semantic_id = common::nullopt,
 
 4438        std::shared_ptr<IReference>
 
 4440    > supplemental_semantic_ids = common::nullopt,
 
 4443        std::shared_ptr<IQualifier>
 
 4445    > qualifiers = common::nullopt,
 
 4448        std::shared_ptr<IEmbeddedDataSpecification>
 
 4450    > embedded_data_specifications = common::nullopt,
 
 4453        std::shared_ptr<ISubmodelElement>
 
 4455    > submodel_elements = common::nullopt
 
 4462  const common::optional<
 
 4464      std::shared_ptr<IExtension>
 
 4466  >& extensions() 
const override;
 
 4470      std::shared_ptr<IExtension>
 
 4472  >& mutable_extensions() 
override;
 
 4474  void set_extensions(
 
 4477        std::shared_ptr<IExtension>
 
 4486  const common::optional<std::wstring>& category() 
const override;
 
 4488  common::optional<std::wstring>& mutable_category() 
override;
 
 4491    common::optional<std::wstring> value
 
 4498  const common::optional<std::wstring>& id_short() 
const override;
 
 4500  common::optional<std::wstring>& mutable_id_short() 
override;
 
 4503    common::optional<std::wstring> value
 
 4510  const common::optional<
 
 4512      std::shared_ptr<ILangStringNameType>
 
 4514  >& display_name() 
const override;
 
 4518      std::shared_ptr<ILangStringNameType>
 
 4520  >& mutable_display_name() 
override;
 
 4522  void set_display_name(
 
 4525        std::shared_ptr<ILangStringNameType>
 
 4534  const common::optional<
 
 4536      std::shared_ptr<ILangStringTextType>
 
 4538  >& description() 
const override;
 
 4542      std::shared_ptr<ILangStringTextType>
 
 4544  >& mutable_description() 
override;
 
 4546  void set_description(
 
 4549        std::shared_ptr<ILangStringTextType>
 
 4558  const common::optional<
 
 4559    std::shared_ptr<IAdministrativeInformation>
 
 4560  >& administration() 
const override;
 
 4563    std::shared_ptr<IAdministrativeInformation>
 
 4564  >& mutable_administration() 
override;
 
 4566  void set_administration(
 
 4568      std::shared_ptr<IAdministrativeInformation>
 
 4576  const std::wstring& id() 
const override;
 
 4578  std::wstring& mutable_id() 
override;
 
 4588  const common::optional<ModellingKind>& kind() 
const override;
 
 4590  common::optional<ModellingKind>& mutable_kind() 
override;
 
 4593    common::optional<ModellingKind> value
 
 4600  const common::optional<
 
 4601    std::shared_ptr<IReference>
 
 4602  >& semantic_id() 
const override;
 
 4605    std::shared_ptr<IReference>
 
 4606  >& mutable_semantic_id() 
override;
 
 4608  void set_semantic_id(
 
 4610      std::shared_ptr<IReference>
 
 4618  const common::optional<
 
 4620      std::shared_ptr<IReference>
 
 4622  >& supplemental_semantic_ids() 
const override;
 
 4626      std::shared_ptr<IReference>
 
 4628  >& mutable_supplemental_semantic_ids() 
override;
 
 4630  void set_supplemental_semantic_ids(
 
 4633        std::shared_ptr<IReference>
 
 4642  const common::optional<
 
 4644      std::shared_ptr<IQualifier>
 
 4646  >& qualifiers() 
const override;
 
 4650      std::shared_ptr<IQualifier>
 
 4652  >& mutable_qualifiers() 
override;
 
 4654  void set_qualifiers(
 
 4657        std::shared_ptr<IQualifier>
 
 4666  const common::optional<
 
 4668      std::shared_ptr<IEmbeddedDataSpecification>
 
 4670  >& embedded_data_specifications() 
const override;
 
 4674      std::shared_ptr<IEmbeddedDataSpecification>
 
 4676  >& mutable_embedded_data_specifications() 
override;
 
 4678  void set_embedded_data_specifications(
 
 4681        std::shared_ptr<IEmbeddedDataSpecification>
 
 4690  const common::optional<
 
 4692      std::shared_ptr<ISubmodelElement>
 
 4694  >& submodel_elements() 
const override;
 
 4698      std::shared_ptr<ISubmodelElement>
 
 4700  >& mutable_submodel_elements() 
override;
 
 4702  void set_submodel_elements(
 
 4705        std::shared_ptr<ISubmodelElement>
 
 4714  ~Submodel() 
override = 
default;
 
 4719      std::shared_ptr<IExtension>
 
 4723  common::optional<std::wstring> category_;
 
 4725  common::optional<std::wstring> id_short_;
 
 4729      std::shared_ptr<ILangStringNameType>
 
 4735      std::shared_ptr<ILangStringTextType>
 
 4740    std::shared_ptr<IAdministrativeInformation>
 
 4745  common::optional<ModellingKind> kind_;
 
 4748    std::shared_ptr<IReference>
 
 4753      std::shared_ptr<IReference>
 
 4755  > supplemental_semantic_ids_;
 
 4759      std::shared_ptr<IQualifier>
 
 4765      std::shared_ptr<IEmbeddedDataSpecification>
 
 4767  > embedded_data_specifications_;
 
 4771      std::shared_ptr<ISubmodelElement>
 
 4773  > submodel_elements_;
 
 4776class RelationshipElement
 
 4779  RelationshipElement(
 
 4780    std::shared_ptr<IReference> first,
 
 4781    std::shared_ptr<IReference> second,
 
 4784        std::shared_ptr<IExtension>
 
 4786    > extensions = common::nullopt,
 
 4787    common::optional<std::wstring> category = common::nullopt,
 
 4788    common::optional<std::wstring> id_short = common::nullopt,
 
 4791        std::shared_ptr<ILangStringNameType>
 
 4793    > display_name = common::nullopt,
 
 4796        std::shared_ptr<ILangStringTextType>
 
 4798    > description = common::nullopt,
 
 4800      std::shared_ptr<IReference>
 
 4801    > semantic_id = common::nullopt,
 
 4804        std::shared_ptr<IReference>
 
 4806    > supplemental_semantic_ids = common::nullopt,
 
 4809        std::shared_ptr<IQualifier>
 
 4811    > qualifiers = common::nullopt,
 
 4814        std::shared_ptr<IEmbeddedDataSpecification>
 
 4816    > embedded_data_specifications = common::nullopt
 
 4823  const common::optional<
 
 4825      std::shared_ptr<IExtension>
 
 4827  >& extensions() 
const override;
 
 4831      std::shared_ptr<IExtension>
 
 4833  >& mutable_extensions() 
override;
 
 4835  void set_extensions(
 
 4838        std::shared_ptr<IExtension>
 
 4847  const common::optional<std::wstring>& category() 
const override;
 
 4849  common::optional<std::wstring>& mutable_category() 
override;
 
 4852    common::optional<std::wstring> value
 
 4859  const common::optional<std::wstring>& id_short() 
const override;
 
 4861  common::optional<std::wstring>& mutable_id_short() 
override;
 
 4864    common::optional<std::wstring> value
 
 4871  const common::optional<
 
 4873      std::shared_ptr<ILangStringNameType>
 
 4875  >& display_name() 
const override;
 
 4879      std::shared_ptr<ILangStringNameType>
 
 4881  >& mutable_display_name() 
override;
 
 4883  void set_display_name(
 
 4886        std::shared_ptr<ILangStringNameType>
 
 4895  const common::optional<
 
 4897      std::shared_ptr<ILangStringTextType>
 
 4899  >& description() 
const override;
 
 4903      std::shared_ptr<ILangStringTextType>
 
 4905  >& mutable_description() 
override;
 
 4907  void set_description(
 
 4910        std::shared_ptr<ILangStringTextType>
 
 4919  const common::optional<
 
 4920    std::shared_ptr<IReference>
 
 4921  >& semantic_id() 
const override;
 
 4924    std::shared_ptr<IReference>
 
 4925  >& mutable_semantic_id() 
override;
 
 4927  void set_semantic_id(
 
 4929      std::shared_ptr<IReference>
 
 4937  const common::optional<
 
 4939      std::shared_ptr<IReference>
 
 4941  >& supplemental_semantic_ids() 
const override;
 
 4945      std::shared_ptr<IReference>
 
 4947  >& mutable_supplemental_semantic_ids() 
override;
 
 4949  void set_supplemental_semantic_ids(
 
 4952        std::shared_ptr<IReference>
 
 4961  const common::optional<
 
 4963      std::shared_ptr<IQualifier>
 
 4965  >& qualifiers() 
const override;
 
 4969      std::shared_ptr<IQualifier>
 
 4971  >& mutable_qualifiers() 
override;
 
 4973  void set_qualifiers(
 
 4976        std::shared_ptr<IQualifier>
 
 4985  const common::optional<
 
 4987      std::shared_ptr<IEmbeddedDataSpecification>
 
 4989  >& embedded_data_specifications() 
const override;
 
 4993      std::shared_ptr<IEmbeddedDataSpecification>
 
 4995  >& mutable_embedded_data_specifications() 
override;
 
 4997  void set_embedded_data_specifications(
 
 5000        std::shared_ptr<IEmbeddedDataSpecification>
 
 5009  const std::shared_ptr<IReference>& first() 
const override;
 
 5011  std::shared_ptr<IReference>& mutable_first() 
override;
 
 5014    std::shared_ptr<IReference> value
 
 5021  const std::shared_ptr<IReference>& second() 
const override;
 
 5023  std::shared_ptr<IReference>& mutable_second() 
override;
 
 5026    std::shared_ptr<IReference> value
 
 5031  ~RelationshipElement() 
override = 
default;
 
 5036      std::shared_ptr<IExtension>
 
 5040  common::optional<std::wstring> category_;
 
 5042  common::optional<std::wstring> id_short_;
 
 5046      std::shared_ptr<ILangStringNameType>
 
 5052      std::shared_ptr<ILangStringTextType>
 
 5057    std::shared_ptr<IReference>
 
 5062      std::shared_ptr<IReference>
 
 5064  > supplemental_semantic_ids_;
 
 5068      std::shared_ptr<IQualifier>
 
 5074      std::shared_ptr<IEmbeddedDataSpecification>
 
 5076  > embedded_data_specifications_;
 
 5078  std::shared_ptr<IReference> first_;
 
 5080  std::shared_ptr<IReference> second_;
 
 5083class SubmodelElementList
 
 5086  explicit SubmodelElementList(
 
 5087    AasSubmodelElements type_value_list_element,
 
 5090        std::shared_ptr<IExtension>
 
 5092    > extensions = common::nullopt,
 
 5093    common::optional<std::wstring> category = common::nullopt,
 
 5094    common::optional<std::wstring> id_short = common::nullopt,
 
 5097        std::shared_ptr<ILangStringNameType>
 
 5099    > display_name = common::nullopt,
 
 5102        std::shared_ptr<ILangStringTextType>
 
 5104    > description = common::nullopt,
 
 5106      std::shared_ptr<IReference>
 
 5107    > semantic_id = common::nullopt,
 
 5110        std::shared_ptr<IReference>
 
 5112    > supplemental_semantic_ids = common::nullopt,
 
 5115        std::shared_ptr<IQualifier>
 
 5117    > qualifiers = common::nullopt,
 
 5120        std::shared_ptr<IEmbeddedDataSpecification>
 
 5122    > embedded_data_specifications = common::nullopt,
 
 5123    common::optional<bool> order_relevant = common::nullopt,
 
 5125      std::shared_ptr<IReference>
 
 5126    > semantic_id_list_element = common::nullopt,
 
 5127    common::optional<DataTypeDefXsd> value_type_list_element = common::nullopt,
 
 5130        std::shared_ptr<ISubmodelElement>
 
 5132    > value = common::nullopt
 
 5139  const common::optional<
 
 5141      std::shared_ptr<IExtension>
 
 5143  >& extensions() 
const override;
 
 5147      std::shared_ptr<IExtension>
 
 5149  >& mutable_extensions() 
override;
 
 5151  void set_extensions(
 
 5154        std::shared_ptr<IExtension>
 
 5163  const common::optional<std::wstring>& category() 
const override;
 
 5165  common::optional<std::wstring>& mutable_category() 
override;
 
 5168    common::optional<std::wstring> value
 
 5175  const common::optional<std::wstring>& id_short() 
const override;
 
 5177  common::optional<std::wstring>& mutable_id_short() 
override;
 
 5180    common::optional<std::wstring> value
 
 5187  const common::optional<
 
 5189      std::shared_ptr<ILangStringNameType>
 
 5191  >& display_name() 
const override;
 
 5195      std::shared_ptr<ILangStringNameType>
 
 5197  >& mutable_display_name() 
override;
 
 5199  void set_display_name(
 
 5202        std::shared_ptr<ILangStringNameType>
 
 5211  const common::optional<
 
 5213      std::shared_ptr<ILangStringTextType>
 
 5215  >& description() 
const override;
 
 5219      std::shared_ptr<ILangStringTextType>
 
 5221  >& mutable_description() 
override;
 
 5223  void set_description(
 
 5226        std::shared_ptr<ILangStringTextType>
 
 5235  const common::optional<
 
 5236    std::shared_ptr<IReference>
 
 5237  >& semantic_id() 
const override;
 
 5240    std::shared_ptr<IReference>
 
 5241  >& mutable_semantic_id() 
override;
 
 5243  void set_semantic_id(
 
 5245      std::shared_ptr<IReference>
 
 5253  const common::optional<
 
 5255      std::shared_ptr<IReference>
 
 5257  >& supplemental_semantic_ids() 
const override;
 
 5261      std::shared_ptr<IReference>
 
 5263  >& mutable_supplemental_semantic_ids() 
override;
 
 5265  void set_supplemental_semantic_ids(
 
 5268        std::shared_ptr<IReference>
 
 5277  const common::optional<
 
 5279      std::shared_ptr<IQualifier>
 
 5281  >& qualifiers() 
const override;
 
 5285      std::shared_ptr<IQualifier>
 
 5287  >& mutable_qualifiers() 
override;
 
 5289  void set_qualifiers(
 
 5292        std::shared_ptr<IQualifier>
 
 5301  const common::optional<
 
 5303      std::shared_ptr<IEmbeddedDataSpecification>
 
 5305  >& embedded_data_specifications() 
const override;
 
 5309      std::shared_ptr<IEmbeddedDataSpecification>
 
 5311  >& mutable_embedded_data_specifications() 
override;
 
 5313  void set_embedded_data_specifications(
 
 5316        std::shared_ptr<IEmbeddedDataSpecification>
 
 5325  const common::optional<bool>& order_relevant() 
const override;
 
 5327  common::optional<bool>& mutable_order_relevant() 
override;
 
 5329  void set_order_relevant(
 
 5330    common::optional<bool> value
 
 5337  const common::optional<
 
 5338    std::shared_ptr<IReference>
 
 5339  >& semantic_id_list_element() 
const override;
 
 5342    std::shared_ptr<IReference>
 
 5343  >& mutable_semantic_id_list_element() 
override;
 
 5345  void set_semantic_id_list_element(
 
 5347      std::shared_ptr<IReference>
 
 5359  void set_type_value_list_element(
 
 5360    AasSubmodelElements value
 
 5367  const common::optional<DataTypeDefXsd>& value_type_list_element() 
const override;
 
 5369  common::optional<DataTypeDefXsd>& mutable_value_type_list_element() 
override;
 
 5371  void set_value_type_list_element(
 
 5372    common::optional<DataTypeDefXsd> value
 
 5379  const common::optional<
 
 5381      std::shared_ptr<ISubmodelElement>
 
 5383  >& value() 
const override;
 
 5387      std::shared_ptr<ISubmodelElement>
 
 5389  >& mutable_value() 
override;
 
 5394        std::shared_ptr<ISubmodelElement>
 
 5401  bool OrderRelevantOrDefault() 
const override;
 
 5403  ~SubmodelElementList() 
override = 
default;
 
 5408      std::shared_ptr<IExtension>
 
 5412  common::optional<std::wstring> category_;
 
 5414  common::optional<std::wstring> id_short_;
 
 5418      std::shared_ptr<ILangStringNameType>
 
 5424      std::shared_ptr<ILangStringTextType>
 
 5429    std::shared_ptr<IReference>
 
 5434      std::shared_ptr<IReference>
 
 5436  > supplemental_semantic_ids_;
 
 5440      std::shared_ptr<IQualifier>
 
 5446      std::shared_ptr<IEmbeddedDataSpecification>
 
 5448  > embedded_data_specifications_;
 
 5450  common::optional<bool> order_relevant_;
 
 5453    std::shared_ptr<IReference>
 
 5454  > semantic_id_list_element_;
 
 5458  common::optional<DataTypeDefXsd> value_type_list_element_;
 
 5462      std::shared_ptr<ISubmodelElement>
 
 5467class SubmodelElementCollection
 
 5470  SubmodelElementCollection(
 
 5473        std::shared_ptr<IExtension>
 
 5475    > extensions = common::nullopt,
 
 5476    common::optional<std::wstring> category = common::nullopt,
 
 5477    common::optional<std::wstring> id_short = common::nullopt,
 
 5480        std::shared_ptr<ILangStringNameType>
 
 5482    > display_name = common::nullopt,
 
 5485        std::shared_ptr<ILangStringTextType>
 
 5487    > description = common::nullopt,
 
 5489      std::shared_ptr<IReference>
 
 5490    > semantic_id = common::nullopt,
 
 5493        std::shared_ptr<IReference>
 
 5495    > supplemental_semantic_ids = common::nullopt,
 
 5498        std::shared_ptr<IQualifier>
 
 5500    > qualifiers = common::nullopt,
 
 5503        std::shared_ptr<IEmbeddedDataSpecification>
 
 5505    > embedded_data_specifications = common::nullopt,
 
 5508        std::shared_ptr<ISubmodelElement>
 
 5510    > value = common::nullopt
 
 5517  const common::optional<
 
 5519      std::shared_ptr<IExtension>
 
 5521  >& extensions() 
const override;
 
 5525      std::shared_ptr<IExtension>
 
 5527  >& mutable_extensions() 
override;
 
 5529  void set_extensions(
 
 5532        std::shared_ptr<IExtension>
 
 5541  const common::optional<std::wstring>& category() 
const override;
 
 5543  common::optional<std::wstring>& mutable_category() 
override;
 
 5546    common::optional<std::wstring> value
 
 5553  const common::optional<std::wstring>& id_short() 
const override;
 
 5555  common::optional<std::wstring>& mutable_id_short() 
override;
 
 5558    common::optional<std::wstring> value
 
 5565  const common::optional<
 
 5567      std::shared_ptr<ILangStringNameType>
 
 5569  >& display_name() 
const override;
 
 5573      std::shared_ptr<ILangStringNameType>
 
 5575  >& mutable_display_name() 
override;
 
 5577  void set_display_name(
 
 5580        std::shared_ptr<ILangStringNameType>
 
 5589  const common::optional<
 
 5591      std::shared_ptr<ILangStringTextType>
 
 5593  >& description() 
const override;
 
 5597      std::shared_ptr<ILangStringTextType>
 
 5599  >& mutable_description() 
override;
 
 5601  void set_description(
 
 5604        std::shared_ptr<ILangStringTextType>
 
 5613  const common::optional<
 
 5614    std::shared_ptr<IReference>
 
 5615  >& semantic_id() 
const override;
 
 5618    std::shared_ptr<IReference>
 
 5619  >& mutable_semantic_id() 
override;
 
 5621  void set_semantic_id(
 
 5623      std::shared_ptr<IReference>
 
 5631  const common::optional<
 
 5633      std::shared_ptr<IReference>
 
 5635  >& supplemental_semantic_ids() 
const override;
 
 5639      std::shared_ptr<IReference>
 
 5641  >& mutable_supplemental_semantic_ids() 
override;
 
 5643  void set_supplemental_semantic_ids(
 
 5646        std::shared_ptr<IReference>
 
 5655  const common::optional<
 
 5657      std::shared_ptr<IQualifier>
 
 5659  >& qualifiers() 
const override;
 
 5663      std::shared_ptr<IQualifier>
 
 5665  >& mutable_qualifiers() 
override;
 
 5667  void set_qualifiers(
 
 5670        std::shared_ptr<IQualifier>
 
 5679  const common::optional<
 
 5681      std::shared_ptr<IEmbeddedDataSpecification>
 
 5683  >& embedded_data_specifications() 
const override;
 
 5687      std::shared_ptr<IEmbeddedDataSpecification>
 
 5689  >& mutable_embedded_data_specifications() 
override;
 
 5691  void set_embedded_data_specifications(
 
 5694        std::shared_ptr<IEmbeddedDataSpecification>
 
 5703  const common::optional<
 
 5705      std::shared_ptr<ISubmodelElement>
 
 5707  >& value() 
const override;
 
 5711      std::shared_ptr<ISubmodelElement>
 
 5713  >& mutable_value() 
override;
 
 5718        std::shared_ptr<ISubmodelElement>
 
 5725  ~SubmodelElementCollection() 
override = 
default;
 
 5730      std::shared_ptr<IExtension>
 
 5734  common::optional<std::wstring> category_;
 
 5736  common::optional<std::wstring> id_short_;
 
 5740      std::shared_ptr<ILangStringNameType>
 
 5746      std::shared_ptr<ILangStringTextType>
 
 5751    std::shared_ptr<IReference>
 
 5756      std::shared_ptr<IReference>
 
 5758  > supplemental_semantic_ids_;
 
 5762      std::shared_ptr<IQualifier>
 
 5768      std::shared_ptr<IEmbeddedDataSpecification>
 
 5770  > embedded_data_specifications_;
 
 5774      std::shared_ptr<ISubmodelElement>
 
 5783    DataTypeDefXsd value_type,
 
 5786        std::shared_ptr<IExtension>
 
 5788    > extensions = common::nullopt,
 
 5789    common::optional<std::wstring> category = common::nullopt,
 
 5790    common::optional<std::wstring> id_short = common::nullopt,
 
 5793        std::shared_ptr<ILangStringNameType>
 
 5795    > display_name = common::nullopt,
 
 5798        std::shared_ptr<ILangStringTextType>
 
 5800    > description = common::nullopt,
 
 5802      std::shared_ptr<IReference>
 
 5803    > semantic_id = common::nullopt,
 
 5806        std::shared_ptr<IReference>
 
 5808    > supplemental_semantic_ids = common::nullopt,
 
 5811        std::shared_ptr<IQualifier>
 
 5813    > qualifiers = common::nullopt,
 
 5816        std::shared_ptr<IEmbeddedDataSpecification>
 
 5818    > embedded_data_specifications = common::nullopt,
 
 5819    common::optional<std::wstring> value = common::nullopt,
 
 5821      std::shared_ptr<IReference>
 
 5822    > value_id = common::nullopt
 
 5829  const common::optional<
 
 5831      std::shared_ptr<IExtension>
 
 5833  >& extensions() 
const override;
 
 5837      std::shared_ptr<IExtension>
 
 5839  >& mutable_extensions() 
override;
 
 5841  void set_extensions(
 
 5844        std::shared_ptr<IExtension>
 
 5853  const common::optional<std::wstring>& category() 
const override;
 
 5855  common::optional<std::wstring>& mutable_category() 
override;
 
 5858    common::optional<std::wstring> value
 
 5865  const common::optional<std::wstring>& id_short() 
const override;
 
 5867  common::optional<std::wstring>& mutable_id_short() 
override;
 
 5870    common::optional<std::wstring> value
 
 5877  const common::optional<
 
 5879      std::shared_ptr<ILangStringNameType>
 
 5881  >& display_name() 
const override;
 
 5885      std::shared_ptr<ILangStringNameType>
 
 5887  >& mutable_display_name() 
override;
 
 5889  void set_display_name(
 
 5892        std::shared_ptr<ILangStringNameType>
 
 5901  const common::optional<
 
 5903      std::shared_ptr<ILangStringTextType>
 
 5905  >& description() 
const override;
 
 5909      std::shared_ptr<ILangStringTextType>
 
 5911  >& mutable_description() 
override;
 
 5913  void set_description(
 
 5916        std::shared_ptr<ILangStringTextType>
 
 5925  const common::optional<
 
 5926    std::shared_ptr<IReference>
 
 5927  >& semantic_id() 
const override;
 
 5930    std::shared_ptr<IReference>
 
 5931  >& mutable_semantic_id() 
override;
 
 5933  void set_semantic_id(
 
 5935      std::shared_ptr<IReference>
 
 5943  const common::optional<
 
 5945      std::shared_ptr<IReference>
 
 5947  >& supplemental_semantic_ids() 
const override;
 
 5951      std::shared_ptr<IReference>
 
 5953  >& mutable_supplemental_semantic_ids() 
override;
 
 5955  void set_supplemental_semantic_ids(
 
 5958        std::shared_ptr<IReference>
 
 5967  const common::optional<
 
 5969      std::shared_ptr<IQualifier>
 
 5971  >& qualifiers() 
const override;
 
 5975      std::shared_ptr<IQualifier>
 
 5977  >& mutable_qualifiers() 
override;
 
 5979  void set_qualifiers(
 
 5982        std::shared_ptr<IQualifier>
 
 5991  const common::optional<
 
 5993      std::shared_ptr<IEmbeddedDataSpecification>
 
 5995  >& embedded_data_specifications() 
const override;
 
 5999      std::shared_ptr<IEmbeddedDataSpecification>
 
 6001  >& mutable_embedded_data_specifications() 
override;
 
 6003  void set_embedded_data_specifications(
 
 6006        std::shared_ptr<IEmbeddedDataSpecification>
 
 6019  void set_value_type(
 
 6020    DataTypeDefXsd value
 
 6027  const common::optional<std::wstring>& value() 
const override;
 
 6029  common::optional<std::wstring>& mutable_value() 
override;
 
 6032    common::optional<std::wstring> value
 
 6039  const common::optional<
 
 6040    std::shared_ptr<IReference>
 
 6041  >& value_id() 
const override;
 
 6044    std::shared_ptr<IReference>
 
 6045  >& mutable_value_id() 
override;
 
 6049      std::shared_ptr<IReference>
 
 6055  std::wstring CategoryOrDefault() 
const override;
 
 6057  ~Property() 
override = 
default;
 
 6062      std::shared_ptr<IExtension>
 
 6066  common::optional<std::wstring> category_;
 
 6068  common::optional<std::wstring> id_short_;
 
 6072      std::shared_ptr<ILangStringNameType>
 
 6078      std::shared_ptr<ILangStringTextType>
 
 6083    std::shared_ptr<IReference>
 
 6088      std::shared_ptr<IReference>
 
 6090  > supplemental_semantic_ids_;
 
 6094      std::shared_ptr<IQualifier>
 
 6100      std::shared_ptr<IEmbeddedDataSpecification>
 
 6102  > embedded_data_specifications_;
 
 6106  common::optional<std::wstring> value_;
 
 6109    std::shared_ptr<IReference>
 
 6113class MultiLanguageProperty
 
 6116  MultiLanguageProperty(
 
 6119        std::shared_ptr<IExtension>
 
 6121    > extensions = common::nullopt,
 
 6122    common::optional<std::wstring> category = common::nullopt,
 
 6123    common::optional<std::wstring> id_short = common::nullopt,
 
 6126        std::shared_ptr<ILangStringNameType>
 
 6128    > display_name = common::nullopt,
 
 6131        std::shared_ptr<ILangStringTextType>
 
 6133    > description = common::nullopt,
 
 6135      std::shared_ptr<IReference>
 
 6136    > semantic_id = common::nullopt,
 
 6139        std::shared_ptr<IReference>
 
 6141    > supplemental_semantic_ids = common::nullopt,
 
 6144        std::shared_ptr<IQualifier>
 
 6146    > qualifiers = common::nullopt,
 
 6149        std::shared_ptr<IEmbeddedDataSpecification>
 
 6151    > embedded_data_specifications = common::nullopt,
 
 6154        std::shared_ptr<ILangStringTextType>
 
 6156    > value = common::nullopt,
 
 6158      std::shared_ptr<IReference>
 
 6159    > value_id = common::nullopt
 
 6166  const common::optional<
 
 6168      std::shared_ptr<IExtension>
 
 6170  >& extensions() 
const override;
 
 6174      std::shared_ptr<IExtension>
 
 6176  >& mutable_extensions() 
override;
 
 6178  void set_extensions(
 
 6181        std::shared_ptr<IExtension>
 
 6190  const common::optional<std::wstring>& category() 
const override;
 
 6192  common::optional<std::wstring>& mutable_category() 
override;
 
 6195    common::optional<std::wstring> value
 
 6202  const common::optional<std::wstring>& id_short() 
const override;
 
 6204  common::optional<std::wstring>& mutable_id_short() 
override;
 
 6207    common::optional<std::wstring> value
 
 6214  const common::optional<
 
 6216      std::shared_ptr<ILangStringNameType>
 
 6218  >& display_name() 
const override;
 
 6222      std::shared_ptr<ILangStringNameType>
 
 6224  >& mutable_display_name() 
override;
 
 6226  void set_display_name(
 
 6229        std::shared_ptr<ILangStringNameType>
 
 6238  const common::optional<
 
 6240      std::shared_ptr<ILangStringTextType>
 
 6242  >& description() 
const override;
 
 6246      std::shared_ptr<ILangStringTextType>
 
 6248  >& mutable_description() 
override;
 
 6250  void set_description(
 
 6253        std::shared_ptr<ILangStringTextType>
 
 6262  const common::optional<
 
 6263    std::shared_ptr<IReference>
 
 6264  >& semantic_id() 
const override;
 
 6267    std::shared_ptr<IReference>
 
 6268  >& mutable_semantic_id() 
override;
 
 6270  void set_semantic_id(
 
 6272      std::shared_ptr<IReference>
 
 6280  const common::optional<
 
 6282      std::shared_ptr<IReference>
 
 6284  >& supplemental_semantic_ids() 
const override;
 
 6288      std::shared_ptr<IReference>
 
 6290  >& mutable_supplemental_semantic_ids() 
override;
 
 6292  void set_supplemental_semantic_ids(
 
 6295        std::shared_ptr<IReference>
 
 6304  const common::optional<
 
 6306      std::shared_ptr<IQualifier>
 
 6308  >& qualifiers() 
const override;
 
 6312      std::shared_ptr<IQualifier>
 
 6314  >& mutable_qualifiers() 
override;
 
 6316  void set_qualifiers(
 
 6319        std::shared_ptr<IQualifier>
 
 6328  const common::optional<
 
 6330      std::shared_ptr<IEmbeddedDataSpecification>
 
 6332  >& embedded_data_specifications() 
const override;
 
 6336      std::shared_ptr<IEmbeddedDataSpecification>
 
 6338  >& mutable_embedded_data_specifications() 
override;
 
 6340  void set_embedded_data_specifications(
 
 6343        std::shared_ptr<IEmbeddedDataSpecification>
 
 6352  const common::optional<
 
 6354      std::shared_ptr<ILangStringTextType>
 
 6356  >& value() 
const override;
 
 6360      std::shared_ptr<ILangStringTextType>
 
 6362  >& mutable_value() 
override;
 
 6367        std::shared_ptr<ILangStringTextType>
 
 6376  const common::optional<
 
 6377    std::shared_ptr<IReference>
 
 6378  >& value_id() 
const override;
 
 6381    std::shared_ptr<IReference>
 
 6382  >& mutable_value_id() 
override;
 
 6386      std::shared_ptr<IReference>
 
 6392  std::wstring CategoryOrDefault() 
const override;
 
 6394  ~MultiLanguageProperty() 
override = 
default;
 
 6399      std::shared_ptr<IExtension>
 
 6403  common::optional<std::wstring> category_;
 
 6405  common::optional<std::wstring> id_short_;
 
 6409      std::shared_ptr<ILangStringNameType>
 
 6415      std::shared_ptr<ILangStringTextType>
 
 6420    std::shared_ptr<IReference>
 
 6425      std::shared_ptr<IReference>
 
 6427  > supplemental_semantic_ids_;
 
 6431      std::shared_ptr<IQualifier>
 
 6437      std::shared_ptr<IEmbeddedDataSpecification>
 
 6439  > embedded_data_specifications_;
 
 6443      std::shared_ptr<ILangStringTextType>
 
 6448    std::shared_ptr<IReference>
 
 6456    DataTypeDefXsd value_type,
 
 6459        std::shared_ptr<IExtension>
 
 6461    > extensions = common::nullopt,
 
 6462    common::optional<std::wstring> category = common::nullopt,
 
 6463    common::optional<std::wstring> id_short = common::nullopt,
 
 6466        std::shared_ptr<ILangStringNameType>
 
 6468    > display_name = common::nullopt,
 
 6471        std::shared_ptr<ILangStringTextType>
 
 6473    > description = common::nullopt,
 
 6475      std::shared_ptr<IReference>
 
 6476    > semantic_id = common::nullopt,
 
 6479        std::shared_ptr<IReference>
 
 6481    > supplemental_semantic_ids = common::nullopt,
 
 6484        std::shared_ptr<IQualifier>
 
 6486    > qualifiers = common::nullopt,
 
 6489        std::shared_ptr<IEmbeddedDataSpecification>
 
 6491    > embedded_data_specifications = common::nullopt,
 
 6492    common::optional<std::wstring> min = common::nullopt,
 
 6493    common::optional<std::wstring> max = common::nullopt
 
 6500  const common::optional<
 
 6502      std::shared_ptr<IExtension>
 
 6504  >& extensions() 
const override;
 
 6508      std::shared_ptr<IExtension>
 
 6510  >& mutable_extensions() 
override;
 
 6512  void set_extensions(
 
 6515        std::shared_ptr<IExtension>
 
 6524  const common::optional<std::wstring>& category() 
const override;
 
 6526  common::optional<std::wstring>& mutable_category() 
override;
 
 6529    common::optional<std::wstring> value
 
 6536  const common::optional<std::wstring>& id_short() 
const override;
 
 6538  common::optional<std::wstring>& mutable_id_short() 
override;
 
 6541    common::optional<std::wstring> value
 
 6548  const common::optional<
 
 6550      std::shared_ptr<ILangStringNameType>
 
 6552  >& display_name() 
const override;
 
 6556      std::shared_ptr<ILangStringNameType>
 
 6558  >& mutable_display_name() 
override;
 
 6560  void set_display_name(
 
 6563        std::shared_ptr<ILangStringNameType>
 
 6572  const common::optional<
 
 6574      std::shared_ptr<ILangStringTextType>
 
 6576  >& description() 
const override;
 
 6580      std::shared_ptr<ILangStringTextType>
 
 6582  >& mutable_description() 
override;
 
 6584  void set_description(
 
 6587        std::shared_ptr<ILangStringTextType>
 
 6596  const common::optional<
 
 6597    std::shared_ptr<IReference>
 
 6598  >& semantic_id() 
const override;
 
 6601    std::shared_ptr<IReference>
 
 6602  >& mutable_semantic_id() 
override;
 
 6604  void set_semantic_id(
 
 6606      std::shared_ptr<IReference>
 
 6614  const common::optional<
 
 6616      std::shared_ptr<IReference>
 
 6618  >& supplemental_semantic_ids() 
const override;
 
 6622      std::shared_ptr<IReference>
 
 6624  >& mutable_supplemental_semantic_ids() 
override;
 
 6626  void set_supplemental_semantic_ids(
 
 6629        std::shared_ptr<IReference>
 
 6638  const common::optional<
 
 6640      std::shared_ptr<IQualifier>
 
 6642  >& qualifiers() 
const override;
 
 6646      std::shared_ptr<IQualifier>
 
 6648  >& mutable_qualifiers() 
override;
 
 6650  void set_qualifiers(
 
 6653        std::shared_ptr<IQualifier>
 
 6662  const common::optional<
 
 6664      std::shared_ptr<IEmbeddedDataSpecification>
 
 6666  >& embedded_data_specifications() 
const override;
 
 6670      std::shared_ptr<IEmbeddedDataSpecification>
 
 6672  >& mutable_embedded_data_specifications() 
override;
 
 6674  void set_embedded_data_specifications(
 
 6677        std::shared_ptr<IEmbeddedDataSpecification>
 
 6690  void set_value_type(
 
 6691    DataTypeDefXsd value
 
 6698  const common::optional<std::wstring>& min() 
const override;
 
 6700  common::optional<std::wstring>& mutable_min() 
override;
 
 6703    common::optional<std::wstring> value
 
 6710  const common::optional<std::wstring>& max() 
const override;
 
 6712  common::optional<std::wstring>& mutable_max() 
override;
 
 6715    common::optional<std::wstring> value
 
 6720  std::wstring CategoryOrDefault() 
const override;
 
 6722  ~Range() 
override = 
default;
 
 6727      std::shared_ptr<IExtension>
 
 6731  common::optional<std::wstring> category_;
 
 6733  common::optional<std::wstring> id_short_;
 
 6737      std::shared_ptr<ILangStringNameType>
 
 6743      std::shared_ptr<ILangStringTextType>
 
 6748    std::shared_ptr<IReference>
 
 6753      std::shared_ptr<IReference>
 
 6755  > supplemental_semantic_ids_;
 
 6759      std::shared_ptr<IQualifier>
 
 6765      std::shared_ptr<IEmbeddedDataSpecification>
 
 6767  > embedded_data_specifications_;
 
 6771  common::optional<std::wstring> min_;
 
 6773  common::optional<std::wstring> max_;
 
 6776class ReferenceElement
 
 6782        std::shared_ptr<IExtension>
 
 6784    > extensions = common::nullopt,
 
 6785    common::optional<std::wstring> category = common::nullopt,
 
 6786    common::optional<std::wstring> id_short = common::nullopt,
 
 6789        std::shared_ptr<ILangStringNameType>
 
 6791    > display_name = common::nullopt,
 
 6794        std::shared_ptr<ILangStringTextType>
 
 6796    > description = common::nullopt,
 
 6798      std::shared_ptr<IReference>
 
 6799    > semantic_id = common::nullopt,
 
 6802        std::shared_ptr<IReference>
 
 6804    > supplemental_semantic_ids = common::nullopt,
 
 6807        std::shared_ptr<IQualifier>
 
 6809    > qualifiers = common::nullopt,
 
 6812        std::shared_ptr<IEmbeddedDataSpecification>
 
 6814    > embedded_data_specifications = common::nullopt,
 
 6816      std::shared_ptr<IReference>
 
 6817    > value = common::nullopt
 
 6824  const common::optional<
 
 6826      std::shared_ptr<IExtension>
 
 6828  >& extensions() 
const override;
 
 6832      std::shared_ptr<IExtension>
 
 6834  >& mutable_extensions() 
override;
 
 6836  void set_extensions(
 
 6839        std::shared_ptr<IExtension>
 
 6848  const common::optional<std::wstring>& category() 
const override;
 
 6850  common::optional<std::wstring>& mutable_category() 
override;
 
 6853    common::optional<std::wstring> value
 
 6860  const common::optional<std::wstring>& id_short() 
const override;
 
 6862  common::optional<std::wstring>& mutable_id_short() 
override;
 
 6865    common::optional<std::wstring> value
 
 6872  const common::optional<
 
 6874      std::shared_ptr<ILangStringNameType>
 
 6876  >& display_name() 
const override;
 
 6880      std::shared_ptr<ILangStringNameType>
 
 6882  >& mutable_display_name() 
override;
 
 6884  void set_display_name(
 
 6887        std::shared_ptr<ILangStringNameType>
 
 6896  const common::optional<
 
 6898      std::shared_ptr<ILangStringTextType>
 
 6900  >& description() 
const override;
 
 6904      std::shared_ptr<ILangStringTextType>
 
 6906  >& mutable_description() 
override;
 
 6908  void set_description(
 
 6911        std::shared_ptr<ILangStringTextType>
 
 6920  const common::optional<
 
 6921    std::shared_ptr<IReference>
 
 6922  >& semantic_id() 
const override;
 
 6925    std::shared_ptr<IReference>
 
 6926  >& mutable_semantic_id() 
override;
 
 6928  void set_semantic_id(
 
 6930      std::shared_ptr<IReference>
 
 6938  const common::optional<
 
 6940      std::shared_ptr<IReference>
 
 6942  >& supplemental_semantic_ids() 
const override;
 
 6946      std::shared_ptr<IReference>
 
 6948  >& mutable_supplemental_semantic_ids() 
override;
 
 6950  void set_supplemental_semantic_ids(
 
 6953        std::shared_ptr<IReference>
 
 6962  const common::optional<
 
 6964      std::shared_ptr<IQualifier>
 
 6966  >& qualifiers() 
const override;
 
 6970      std::shared_ptr<IQualifier>
 
 6972  >& mutable_qualifiers() 
override;
 
 6974  void set_qualifiers(
 
 6977        std::shared_ptr<IQualifier>
 
 6986  const common::optional<
 
 6988      std::shared_ptr<IEmbeddedDataSpecification>
 
 6990  >& embedded_data_specifications() 
const override;
 
 6994      std::shared_ptr<IEmbeddedDataSpecification>
 
 6996  >& mutable_embedded_data_specifications() 
override;
 
 6998  void set_embedded_data_specifications(
 
 7001        std::shared_ptr<IEmbeddedDataSpecification>
 
 7010  const common::optional<
 
 7011    std::shared_ptr<IReference>
 
 7012  >& value() 
const override;
 
 7015    std::shared_ptr<IReference>
 
 7016  >& mutable_value() 
override;
 
 7020      std::shared_ptr<IReference>
 
 7026  std::wstring CategoryOrDefault() 
const override;
 
 7028  ~ReferenceElement() 
override = 
default;
 
 7033      std::shared_ptr<IExtension>
 
 7037  common::optional<std::wstring> category_;
 
 7039  common::optional<std::wstring> id_short_;
 
 7043      std::shared_ptr<ILangStringNameType>
 
 7049      std::shared_ptr<ILangStringTextType>
 
 7054    std::shared_ptr<IReference>
 
 7059      std::shared_ptr<IReference>
 
 7061  > supplemental_semantic_ids_;
 
 7065      std::shared_ptr<IQualifier>
 
 7071      std::shared_ptr<IEmbeddedDataSpecification>
 
 7073  > embedded_data_specifications_;
 
 7076    std::shared_ptr<IReference>
 
 7084    std::wstring content_type,
 
 7087        std::shared_ptr<IExtension>
 
 7089    > extensions = common::nullopt,
 
 7090    common::optional<std::wstring> category = common::nullopt,
 
 7091    common::optional<std::wstring> id_short = common::nullopt,
 
 7094        std::shared_ptr<ILangStringNameType>
 
 7096    > display_name = common::nullopt,
 
 7099        std::shared_ptr<ILangStringTextType>
 
 7101    > description = common::nullopt,
 
 7103      std::shared_ptr<IReference>
 
 7104    > semantic_id = common::nullopt,
 
 7107        std::shared_ptr<IReference>
 
 7109    > supplemental_semantic_ids = common::nullopt,
 
 7112        std::shared_ptr<IQualifier>
 
 7114    > qualifiers = common::nullopt,
 
 7117        std::shared_ptr<IEmbeddedDataSpecification>
 
 7119    > embedded_data_specifications = common::nullopt,
 
 7121      std::vector<std::uint8_t>
 
 7122    > value = common::nullopt
 
 7129  const common::optional<
 
 7131      std::shared_ptr<IExtension>
 
 7133  >& extensions() 
const override;
 
 7137      std::shared_ptr<IExtension>
 
 7139  >& mutable_extensions() 
override;
 
 7141  void set_extensions(
 
 7144        std::shared_ptr<IExtension>
 
 7153  const common::optional<std::wstring>& category() 
const override;
 
 7155  common::optional<std::wstring>& mutable_category() 
override;
 
 7158    common::optional<std::wstring> value
 
 7165  const common::optional<std::wstring>& id_short() 
const override;
 
 7167  common::optional<std::wstring>& mutable_id_short() 
override;
 
 7170    common::optional<std::wstring> value
 
 7177  const common::optional<
 
 7179      std::shared_ptr<ILangStringNameType>
 
 7181  >& display_name() 
const override;
 
 7185      std::shared_ptr<ILangStringNameType>
 
 7187  >& mutable_display_name() 
override;
 
 7189  void set_display_name(
 
 7192        std::shared_ptr<ILangStringNameType>
 
 7201  const common::optional<
 
 7203      std::shared_ptr<ILangStringTextType>
 
 7205  >& description() 
const override;
 
 7209      std::shared_ptr<ILangStringTextType>
 
 7211  >& mutable_description() 
override;
 
 7213  void set_description(
 
 7216        std::shared_ptr<ILangStringTextType>
 
 7225  const common::optional<
 
 7226    std::shared_ptr<IReference>
 
 7227  >& semantic_id() 
const override;
 
 7230    std::shared_ptr<IReference>
 
 7231  >& mutable_semantic_id() 
override;
 
 7233  void set_semantic_id(
 
 7235      std::shared_ptr<IReference>
 
 7243  const common::optional<
 
 7245      std::shared_ptr<IReference>
 
 7247  >& supplemental_semantic_ids() 
const override;
 
 7251      std::shared_ptr<IReference>
 
 7253  >& mutable_supplemental_semantic_ids() 
override;
 
 7255  void set_supplemental_semantic_ids(
 
 7258        std::shared_ptr<IReference>
 
 7267  const common::optional<
 
 7269      std::shared_ptr<IQualifier>
 
 7271  >& qualifiers() 
const override;
 
 7275      std::shared_ptr<IQualifier>
 
 7277  >& mutable_qualifiers() 
override;
 
 7279  void set_qualifiers(
 
 7282        std::shared_ptr<IQualifier>
 
 7291  const common::optional<
 
 7293      std::shared_ptr<IEmbeddedDataSpecification>
 
 7295  >& embedded_data_specifications() 
const override;
 
 7299      std::shared_ptr<IEmbeddedDataSpecification>
 
 7301  >& mutable_embedded_data_specifications() 
override;
 
 7303  void set_embedded_data_specifications(
 
 7306        std::shared_ptr<IEmbeddedDataSpecification>
 
 7315  const common::optional<
 
 7316    std::vector<std::uint8_t>
 
 7317  >& value() 
const override;
 
 7320    std::vector<std::uint8_t>
 
 7321  >& mutable_value() 
override;
 
 7325      std::vector<std::uint8_t>
 
 7333  const std::wstring& content_type() 
const override;
 
 7335  std::wstring& mutable_content_type() 
override;
 
 7337  void set_content_type(
 
 7343  std::wstring CategoryOrDefault() 
const override;
 
 7345  ~Blob() 
override = 
default;
 
 7350      std::shared_ptr<IExtension>
 
 7354  common::optional<std::wstring> category_;
 
 7356  common::optional<std::wstring> id_short_;
 
 7360      std::shared_ptr<ILangStringNameType>
 
 7366      std::shared_ptr<ILangStringTextType>
 
 7371    std::shared_ptr<IReference>
 
 7376      std::shared_ptr<IReference>
 
 7378  > supplemental_semantic_ids_;
 
 7382      std::shared_ptr<IQualifier>
 
 7388      std::shared_ptr<IEmbeddedDataSpecification>
 
 7390  > embedded_data_specifications_;
 
 7393    std::vector<std::uint8_t>
 
 7396  std::wstring content_type_;
 
 7403    std::wstring content_type,
 
 7406        std::shared_ptr<IExtension>
 
 7408    > extensions = common::nullopt,
 
 7409    common::optional<std::wstring> category = common::nullopt,
 
 7410    common::optional<std::wstring> id_short = common::nullopt,
 
 7413        std::shared_ptr<ILangStringNameType>
 
 7415    > display_name = common::nullopt,
 
 7418        std::shared_ptr<ILangStringTextType>
 
 7420    > description = common::nullopt,
 
 7422      std::shared_ptr<IReference>
 
 7423    > semantic_id = common::nullopt,
 
 7426        std::shared_ptr<IReference>
 
 7428    > supplemental_semantic_ids = common::nullopt,
 
 7431        std::shared_ptr<IQualifier>
 
 7433    > qualifiers = common::nullopt,
 
 7436        std::shared_ptr<IEmbeddedDataSpecification>
 
 7438    > embedded_data_specifications = common::nullopt,
 
 7439    common::optional<std::wstring> value = common::nullopt
 
 7446  const common::optional<
 
 7448      std::shared_ptr<IExtension>
 
 7450  >& extensions() 
const override;
 
 7454      std::shared_ptr<IExtension>
 
 7456  >& mutable_extensions() 
override;
 
 7458  void set_extensions(
 
 7461        std::shared_ptr<IExtension>
 
 7470  const common::optional<std::wstring>& category() 
const override;
 
 7472  common::optional<std::wstring>& mutable_category() 
override;
 
 7475    common::optional<std::wstring> value
 
 7482  const common::optional<std::wstring>& id_short() 
const override;
 
 7484  common::optional<std::wstring>& mutable_id_short() 
override;
 
 7487    common::optional<std::wstring> value
 
 7494  const common::optional<
 
 7496      std::shared_ptr<ILangStringNameType>
 
 7498  >& display_name() 
const override;
 
 7502      std::shared_ptr<ILangStringNameType>
 
 7504  >& mutable_display_name() 
override;
 
 7506  void set_display_name(
 
 7509        std::shared_ptr<ILangStringNameType>
 
 7518  const common::optional<
 
 7520      std::shared_ptr<ILangStringTextType>
 
 7522  >& description() 
const override;
 
 7526      std::shared_ptr<ILangStringTextType>
 
 7528  >& mutable_description() 
override;
 
 7530  void set_description(
 
 7533        std::shared_ptr<ILangStringTextType>
 
 7542  const common::optional<
 
 7543    std::shared_ptr<IReference>
 
 7544  >& semantic_id() 
const override;
 
 7547    std::shared_ptr<IReference>
 
 7548  >& mutable_semantic_id() 
override;
 
 7550  void set_semantic_id(
 
 7552      std::shared_ptr<IReference>
 
 7560  const common::optional<
 
 7562      std::shared_ptr<IReference>
 
 7564  >& supplemental_semantic_ids() 
const override;
 
 7568      std::shared_ptr<IReference>
 
 7570  >& mutable_supplemental_semantic_ids() 
override;
 
 7572  void set_supplemental_semantic_ids(
 
 7575        std::shared_ptr<IReference>
 
 7584  const common::optional<
 
 7586      std::shared_ptr<IQualifier>
 
 7588  >& qualifiers() 
const override;
 
 7592      std::shared_ptr<IQualifier>
 
 7594  >& mutable_qualifiers() 
override;
 
 7596  void set_qualifiers(
 
 7599        std::shared_ptr<IQualifier>
 
 7608  const common::optional<
 
 7610      std::shared_ptr<IEmbeddedDataSpecification>
 
 7612  >& embedded_data_specifications() 
const override;
 
 7616      std::shared_ptr<IEmbeddedDataSpecification>
 
 7618  >& mutable_embedded_data_specifications() 
override;
 
 7620  void set_embedded_data_specifications(
 
 7623        std::shared_ptr<IEmbeddedDataSpecification>
 
 7632  const common::optional<std::wstring>& value() 
const override;
 
 7634  common::optional<std::wstring>& mutable_value() 
override;
 
 7637    common::optional<std::wstring> value
 
 7644  const std::wstring& content_type() 
const override;
 
 7646  std::wstring& mutable_content_type() 
override;
 
 7648  void set_content_type(
 
 7654  std::wstring CategoryOrDefault() 
const override;
 
 7656  ~File() 
override = 
default;
 
 7661      std::shared_ptr<IExtension>
 
 7665  common::optional<std::wstring> category_;
 
 7667  common::optional<std::wstring> id_short_;
 
 7671      std::shared_ptr<ILangStringNameType>
 
 7677      std::shared_ptr<ILangStringTextType>
 
 7682    std::shared_ptr<IReference>
 
 7687      std::shared_ptr<IReference>
 
 7689  > supplemental_semantic_ids_;
 
 7693      std::shared_ptr<IQualifier>
 
 7699      std::shared_ptr<IEmbeddedDataSpecification>
 
 7701  > embedded_data_specifications_;
 
 7703  common::optional<std::wstring> value_;
 
 7705  std::wstring content_type_;
 
 7708class AnnotatedRelationshipElement
 
 7711  AnnotatedRelationshipElement(
 
 7712    std::shared_ptr<IReference> first,
 
 7713    std::shared_ptr<IReference> second,
 
 7716        std::shared_ptr<IExtension>
 
 7718    > extensions = common::nullopt,
 
 7719    common::optional<std::wstring> category = common::nullopt,
 
 7720    common::optional<std::wstring> id_short = common::nullopt,
 
 7723        std::shared_ptr<ILangStringNameType>
 
 7725    > display_name = common::nullopt,
 
 7728        std::shared_ptr<ILangStringTextType>
 
 7730    > description = common::nullopt,
 
 7732      std::shared_ptr<IReference>
 
 7733    > semantic_id = common::nullopt,
 
 7736        std::shared_ptr<IReference>
 
 7738    > supplemental_semantic_ids = common::nullopt,
 
 7741        std::shared_ptr<IQualifier>
 
 7743    > qualifiers = common::nullopt,
 
 7746        std::shared_ptr<IEmbeddedDataSpecification>
 
 7748    > embedded_data_specifications = common::nullopt,
 
 7751        std::shared_ptr<IDataElement>
 
 7753    > annotations = common::nullopt
 
 7760  const common::optional<
 
 7762      std::shared_ptr<IExtension>
 
 7764  >& extensions() 
const override;
 
 7768      std::shared_ptr<IExtension>
 
 7770  >& mutable_extensions() 
override;
 
 7772  void set_extensions(
 
 7775        std::shared_ptr<IExtension>
 
 7784  const common::optional<std::wstring>& category() 
const override;
 
 7786  common::optional<std::wstring>& mutable_category() 
override;
 
 7789    common::optional<std::wstring> value
 
 7796  const common::optional<std::wstring>& id_short() 
const override;
 
 7798  common::optional<std::wstring>& mutable_id_short() 
override;
 
 7801    common::optional<std::wstring> value
 
 7808  const common::optional<
 
 7810      std::shared_ptr<ILangStringNameType>
 
 7812  >& display_name() 
const override;
 
 7816      std::shared_ptr<ILangStringNameType>
 
 7818  >& mutable_display_name() 
override;
 
 7820  void set_display_name(
 
 7823        std::shared_ptr<ILangStringNameType>
 
 7832  const common::optional<
 
 7834      std::shared_ptr<ILangStringTextType>
 
 7836  >& description() 
const override;
 
 7840      std::shared_ptr<ILangStringTextType>
 
 7842  >& mutable_description() 
override;
 
 7844  void set_description(
 
 7847        std::shared_ptr<ILangStringTextType>
 
 7856  const common::optional<
 
 7857    std::shared_ptr<IReference>
 
 7858  >& semantic_id() 
const override;
 
 7861    std::shared_ptr<IReference>
 
 7862  >& mutable_semantic_id() 
override;
 
 7864  void set_semantic_id(
 
 7866      std::shared_ptr<IReference>
 
 7874  const common::optional<
 
 7876      std::shared_ptr<IReference>
 
 7878  >& supplemental_semantic_ids() 
const override;
 
 7882      std::shared_ptr<IReference>
 
 7884  >& mutable_supplemental_semantic_ids() 
override;
 
 7886  void set_supplemental_semantic_ids(
 
 7889        std::shared_ptr<IReference>
 
 7898  const common::optional<
 
 7900      std::shared_ptr<IQualifier>
 
 7902  >& qualifiers() 
const override;
 
 7906      std::shared_ptr<IQualifier>
 
 7908  >& mutable_qualifiers() 
override;
 
 7910  void set_qualifiers(
 
 7913        std::shared_ptr<IQualifier>
 
 7922  const common::optional<
 
 7924      std::shared_ptr<IEmbeddedDataSpecification>
 
 7926  >& embedded_data_specifications() 
const override;
 
 7930      std::shared_ptr<IEmbeddedDataSpecification>
 
 7932  >& mutable_embedded_data_specifications() 
override;
 
 7934  void set_embedded_data_specifications(
 
 7937        std::shared_ptr<IEmbeddedDataSpecification>
 
 7946  const std::shared_ptr<IReference>& first() 
const override;
 
 7948  std::shared_ptr<IReference>& mutable_first() 
override;
 
 7951    std::shared_ptr<IReference> value
 
 7958  const std::shared_ptr<IReference>& second() 
const override;
 
 7960  std::shared_ptr<IReference>& mutable_second() 
override;
 
 7963    std::shared_ptr<IReference> value
 
 7970  const common::optional<
 
 7972      std::shared_ptr<IDataElement>
 
 7974  >& annotations() 
const override;
 
 7978      std::shared_ptr<IDataElement>
 
 7980  >& mutable_annotations() 
override;
 
 7982  void set_annotations(
 
 7985        std::shared_ptr<IDataElement>
 
 7992  ~AnnotatedRelationshipElement() 
override = 
default;
 
 7997      std::shared_ptr<IExtension>
 
 8001  common::optional<std::wstring> category_;
 
 8003  common::optional<std::wstring> id_short_;
 
 8007      std::shared_ptr<ILangStringNameType>
 
 8013      std::shared_ptr<ILangStringTextType>
 
 8018    std::shared_ptr<IReference>
 
 8023      std::shared_ptr<IReference>
 
 8025  > supplemental_semantic_ids_;
 
 8029      std::shared_ptr<IQualifier>
 
 8035      std::shared_ptr<IEmbeddedDataSpecification>
 
 8037  > embedded_data_specifications_;
 
 8039  std::shared_ptr<IReference> first_;
 
 8041  std::shared_ptr<IReference> second_;
 
 8045      std::shared_ptr<IDataElement>
 
 8054    EntityType entity_type,
 
 8057        std::shared_ptr<IExtension>
 
 8059    > extensions = common::nullopt,
 
 8060    common::optional<std::wstring> category = common::nullopt,
 
 8061    common::optional<std::wstring> id_short = common::nullopt,
 
 8064        std::shared_ptr<ILangStringNameType>
 
 8066    > display_name = common::nullopt,
 
 8069        std::shared_ptr<ILangStringTextType>
 
 8071    > description = common::nullopt,
 
 8073      std::shared_ptr<IReference>
 
 8074    > semantic_id = common::nullopt,
 
 8077        std::shared_ptr<IReference>
 
 8079    > supplemental_semantic_ids = common::nullopt,
 
 8082        std::shared_ptr<IQualifier>
 
 8084    > qualifiers = common::nullopt,
 
 8087        std::shared_ptr<IEmbeddedDataSpecification>
 
 8089    > embedded_data_specifications = common::nullopt,
 
 8092        std::shared_ptr<ISubmodelElement>
 
 8094    > statements = common::nullopt,
 
 8095    common::optional<std::wstring> global_asset_id = common::nullopt,
 
 8098        std::shared_ptr<ISpecificAssetId>
 
 8100    > specific_asset_ids = common::nullopt
 
 8107  const common::optional<
 
 8109      std::shared_ptr<IExtension>
 
 8111  >& extensions() 
const override;
 
 8115      std::shared_ptr<IExtension>
 
 8117  >& mutable_extensions() 
override;
 
 8119  void set_extensions(
 
 8122        std::shared_ptr<IExtension>
 
 8131  const common::optional<std::wstring>& category() 
const override;
 
 8133  common::optional<std::wstring>& mutable_category() 
override;
 
 8136    common::optional<std::wstring> value
 
 8143  const common::optional<std::wstring>& id_short() 
const override;
 
 8145  common::optional<std::wstring>& mutable_id_short() 
override;
 
 8148    common::optional<std::wstring> value
 
 8155  const common::optional<
 
 8157      std::shared_ptr<ILangStringNameType>
 
 8159  >& display_name() 
const override;
 
 8163      std::shared_ptr<ILangStringNameType>
 
 8165  >& mutable_display_name() 
override;
 
 8167  void set_display_name(
 
 8170        std::shared_ptr<ILangStringNameType>
 
 8179  const common::optional<
 
 8181      std::shared_ptr<ILangStringTextType>
 
 8183  >& description() 
const override;
 
 8187      std::shared_ptr<ILangStringTextType>
 
 8189  >& mutable_description() 
override;
 
 8191  void set_description(
 
 8194        std::shared_ptr<ILangStringTextType>
 
 8203  const common::optional<
 
 8204    std::shared_ptr<IReference>
 
 8205  >& semantic_id() 
const override;
 
 8208    std::shared_ptr<IReference>
 
 8209  >& mutable_semantic_id() 
override;
 
 8211  void set_semantic_id(
 
 8213      std::shared_ptr<IReference>
 
 8221  const common::optional<
 
 8223      std::shared_ptr<IReference>
 
 8225  >& supplemental_semantic_ids() 
const override;
 
 8229      std::shared_ptr<IReference>
 
 8231  >& mutable_supplemental_semantic_ids() 
override;
 
 8233  void set_supplemental_semantic_ids(
 
 8236        std::shared_ptr<IReference>
 
 8245  const common::optional<
 
 8247      std::shared_ptr<IQualifier>
 
 8249  >& qualifiers() 
const override;
 
 8253      std::shared_ptr<IQualifier>
 
 8255  >& mutable_qualifiers() 
override;
 
 8257  void set_qualifiers(
 
 8260        std::shared_ptr<IQualifier>
 
 8269  const common::optional<
 
 8271      std::shared_ptr<IEmbeddedDataSpecification>
 
 8273  >& embedded_data_specifications() 
const override;
 
 8277      std::shared_ptr<IEmbeddedDataSpecification>
 
 8279  >& mutable_embedded_data_specifications() 
override;
 
 8281  void set_embedded_data_specifications(
 
 8284        std::shared_ptr<IEmbeddedDataSpecification>
 
 8293  const common::optional<
 
 8295      std::shared_ptr<ISubmodelElement>
 
 8297  >& statements() 
const override;
 
 8301      std::shared_ptr<ISubmodelElement>
 
 8303  >& mutable_statements() 
override;
 
 8305  void set_statements(
 
 8308        std::shared_ptr<ISubmodelElement>
 
 8321  void set_entity_type(
 
 8329  const common::optional<std::wstring>& global_asset_id() 
const override;
 
 8331  common::optional<std::wstring>& mutable_global_asset_id() 
override;
 
 8333  void set_global_asset_id(
 
 8334    common::optional<std::wstring> value
 
 8341  const common::optional<
 
 8343      std::shared_ptr<ISpecificAssetId>
 
 8345  >& specific_asset_ids() 
const override;
 
 8349      std::shared_ptr<ISpecificAssetId>
 
 8351  >& mutable_specific_asset_ids() 
override;
 
 8353  void set_specific_asset_ids(
 
 8356        std::shared_ptr<ISpecificAssetId>
 
 8363  ~Entity() 
override = 
default;
 
 8368      std::shared_ptr<IExtension>
 
 8372  common::optional<std::wstring> category_;
 
 8374  common::optional<std::wstring> id_short_;
 
 8378      std::shared_ptr<ILangStringNameType>
 
 8384      std::shared_ptr<ILangStringTextType>
 
 8389    std::shared_ptr<IReference>
 
 8394      std::shared_ptr<IReference>
 
 8396  > supplemental_semantic_ids_;
 
 8400      std::shared_ptr<IQualifier>
 
 8406      std::shared_ptr<IEmbeddedDataSpecification>
 
 8408  > embedded_data_specifications_;
 
 8412      std::shared_ptr<ISubmodelElement>
 
 8418  common::optional<std::wstring> global_asset_id_;
 
 8422      std::shared_ptr<ISpecificAssetId>
 
 8424  > specific_asset_ids_;
 
 8431    std::shared_ptr<IReference> source,
 
 8432    std::shared_ptr<IReference> observable_reference,
 
 8433    std::wstring time_stamp,
 
 8435      std::shared_ptr<IReference>
 
 8436    > source_semantic_id = common::nullopt,
 
 8438      std::shared_ptr<IReference>
 
 8439    > observable_semantic_id = common::nullopt,
 
 8440    common::optional<std::wstring> topic = common::nullopt,
 
 8442      std::shared_ptr<IReference>
 
 8443    > subject_id = common::nullopt,
 
 8445      std::vector<std::uint8_t>
 
 8446    > payload = common::nullopt
 
 8453  const std::shared_ptr<IReference>& source() 
const override;
 
 8455  std::shared_ptr<IReference>& mutable_source() 
override;
 
 8458    std::shared_ptr<IReference> value
 
 8465  const common::optional<
 
 8466    std::shared_ptr<IReference>
 
 8467  >& source_semantic_id() 
const override;
 
 8470    std::shared_ptr<IReference>
 
 8471  >& mutable_source_semantic_id() 
override;
 
 8473  void set_source_semantic_id(
 
 8475      std::shared_ptr<IReference>
 
 8483  const std::shared_ptr<IReference>& observable_reference() 
const override;
 
 8485  std::shared_ptr<IReference>& mutable_observable_reference() 
override;
 
 8487  void set_observable_reference(
 
 8488    std::shared_ptr<IReference> value
 
 8495  const common::optional<
 
 8496    std::shared_ptr<IReference>
 
 8497  >& observable_semantic_id() 
const override;
 
 8500    std::shared_ptr<IReference>
 
 8501  >& mutable_observable_semantic_id() 
override;
 
 8503  void set_observable_semantic_id(
 
 8505      std::shared_ptr<IReference>
 
 8513  const common::optional<std::wstring>& topic() 
const override;
 
 8515  common::optional<std::wstring>& mutable_topic() 
override;
 
 8518    common::optional<std::wstring> value
 
 8525  const common::optional<
 
 8526    std::shared_ptr<IReference>
 
 8527  >& subject_id() 
const override;
 
 8530    std::shared_ptr<IReference>
 
 8531  >& mutable_subject_id() 
override;
 
 8533  void set_subject_id(
 
 8535      std::shared_ptr<IReference>
 
 8543  const std::wstring& time_stamp() 
const override;
 
 8545  std::wstring& mutable_time_stamp() 
override;
 
 8547  void set_time_stamp(
 
 8555  const common::optional<
 
 8556    std::vector<std::uint8_t>
 
 8557  >& payload() 
const override;
 
 8560    std::vector<std::uint8_t>
 
 8561  >& mutable_payload() 
override;
 
 8565      std::vector<std::uint8_t>
 
 8571  ~EventPayload() 
override = 
default;
 
 8574  std::shared_ptr<IReference> source_;
 
 8577    std::shared_ptr<IReference>
 
 8578  > source_semantic_id_;
 
 8580  std::shared_ptr<IReference> observable_reference_;
 
 8583    std::shared_ptr<IReference>
 
 8584  > observable_semantic_id_;
 
 8586  common::optional<std::wstring> topic_;
 
 8589    std::shared_ptr<IReference>
 
 8592  std::wstring time_stamp_;
 
 8595    std::vector<std::uint8_t>
 
 8599class BasicEventElement
 
 8603    std::shared_ptr<IReference> observed,
 
 8604    Direction direction,
 
 8608        std::shared_ptr<IExtension>
 
 8610    > extensions = common::nullopt,
 
 8611    common::optional<std::wstring> category = common::nullopt,
 
 8612    common::optional<std::wstring> id_short = common::nullopt,
 
 8615        std::shared_ptr<ILangStringNameType>
 
 8617    > display_name = common::nullopt,
 
 8620        std::shared_ptr<ILangStringTextType>
 
 8622    > description = common::nullopt,
 
 8624      std::shared_ptr<IReference>
 
 8625    > semantic_id = common::nullopt,
 
 8628        std::shared_ptr<IReference>
 
 8630    > supplemental_semantic_ids = common::nullopt,
 
 8633        std::shared_ptr<IQualifier>
 
 8635    > qualifiers = common::nullopt,
 
 8638        std::shared_ptr<IEmbeddedDataSpecification>
 
 8640    > embedded_data_specifications = common::nullopt,
 
 8641    common::optional<std::wstring> message_topic = common::nullopt,
 
 8643      std::shared_ptr<IReference>
 
 8644    > message_broker = common::nullopt,
 
 8645    common::optional<std::wstring> last_update = common::nullopt,
 
 8646    common::optional<std::wstring> min_interval = common::nullopt,
 
 8647    common::optional<std::wstring> max_interval = common::nullopt
 
 8654  const common::optional<
 
 8656      std::shared_ptr<IExtension>
 
 8658  >& extensions() 
const override;
 
 8662      std::shared_ptr<IExtension>
 
 8664  >& mutable_extensions() 
override;
 
 8666  void set_extensions(
 
 8669        std::shared_ptr<IExtension>
 
 8678  const common::optional<std::wstring>& category() 
const override;
 
 8680  common::optional<std::wstring>& mutable_category() 
override;
 
 8683    common::optional<std::wstring> value
 
 8690  const common::optional<std::wstring>& id_short() 
const override;
 
 8692  common::optional<std::wstring>& mutable_id_short() 
override;
 
 8695    common::optional<std::wstring> value
 
 8702  const common::optional<
 
 8704      std::shared_ptr<ILangStringNameType>
 
 8706  >& display_name() 
const override;
 
 8710      std::shared_ptr<ILangStringNameType>
 
 8712  >& mutable_display_name() 
override;
 
 8714  void set_display_name(
 
 8717        std::shared_ptr<ILangStringNameType>
 
 8726  const common::optional<
 
 8728      std::shared_ptr<ILangStringTextType>
 
 8730  >& description() 
const override;
 
 8734      std::shared_ptr<ILangStringTextType>
 
 8736  >& mutable_description() 
override;
 
 8738  void set_description(
 
 8741        std::shared_ptr<ILangStringTextType>
 
 8750  const common::optional<
 
 8751    std::shared_ptr<IReference>
 
 8752  >& semantic_id() 
const override;
 
 8755    std::shared_ptr<IReference>
 
 8756  >& mutable_semantic_id() 
override;
 
 8758  void set_semantic_id(
 
 8760      std::shared_ptr<IReference>
 
 8768  const common::optional<
 
 8770      std::shared_ptr<IReference>
 
 8772  >& supplemental_semantic_ids() 
const override;
 
 8776      std::shared_ptr<IReference>
 
 8778  >& mutable_supplemental_semantic_ids() 
override;
 
 8780  void set_supplemental_semantic_ids(
 
 8783        std::shared_ptr<IReference>
 
 8792  const common::optional<
 
 8794      std::shared_ptr<IQualifier>
 
 8796  >& qualifiers() 
const override;
 
 8800      std::shared_ptr<IQualifier>
 
 8802  >& mutable_qualifiers() 
override;
 
 8804  void set_qualifiers(
 
 8807        std::shared_ptr<IQualifier>
 
 8816  const common::optional<
 
 8818      std::shared_ptr<IEmbeddedDataSpecification>
 
 8820  >& embedded_data_specifications() 
const override;
 
 8824      std::shared_ptr<IEmbeddedDataSpecification>
 
 8826  >& mutable_embedded_data_specifications() 
override;
 
 8828  void set_embedded_data_specifications(
 
 8831        std::shared_ptr<IEmbeddedDataSpecification>
 
 8840  const std::shared_ptr<IReference>& observed() 
const override;
 
 8842  std::shared_ptr<IReference>& mutable_observed() 
override;
 
 8845    std::shared_ptr<IReference> value
 
 8854  Direction& mutable_direction() 
override;
 
 8876  const common::optional<std::wstring>& message_topic() 
const override;
 
 8878  common::optional<std::wstring>& mutable_message_topic() 
override;
 
 8880  void set_message_topic(
 
 8881    common::optional<std::wstring> value
 
 8888  const common::optional<
 
 8889    std::shared_ptr<IReference>
 
 8890  >& message_broker() 
const override;
 
 8893    std::shared_ptr<IReference>
 
 8894  >& mutable_message_broker() 
override;
 
 8896  void set_message_broker(
 
 8898      std::shared_ptr<IReference>
 
 8906  const common::optional<std::wstring>& last_update() 
const override;
 
 8908  common::optional<std::wstring>& mutable_last_update() 
override;
 
 8910  void set_last_update(
 
 8911    common::optional<std::wstring> value
 
 8918  const common::optional<std::wstring>& min_interval() 
const override;
 
 8920  common::optional<std::wstring>& mutable_min_interval() 
override;
 
 8922  void set_min_interval(
 
 8923    common::optional<std::wstring> value
 
 8930  const common::optional<std::wstring>& max_interval() 
const override;
 
 8932  common::optional<std::wstring>& mutable_max_interval() 
override;
 
 8934  void set_max_interval(
 
 8935    common::optional<std::wstring> value
 
 8940  ~BasicEventElement() 
override = 
default;
 
 8945      std::shared_ptr<IExtension>
 
 8949  common::optional<std::wstring> category_;
 
 8951  common::optional<std::wstring> id_short_;
 
 8955      std::shared_ptr<ILangStringNameType>
 
 8961      std::shared_ptr<ILangStringTextType>
 
 8966    std::shared_ptr<IReference>
 
 8971      std::shared_ptr<IReference>
 
 8973  > supplemental_semantic_ids_;
 
 8977      std::shared_ptr<IQualifier>
 
 8983      std::shared_ptr<IEmbeddedDataSpecification>
 
 8985  > embedded_data_specifications_;
 
 8987  std::shared_ptr<IReference> observed_;
 
 8993  common::optional<std::wstring> message_topic_;
 
 8996    std::shared_ptr<IReference>
 
 8999  common::optional<std::wstring> last_update_;
 
 9001  common::optional<std::wstring> min_interval_;
 
 9003  common::optional<std::wstring> max_interval_;
 
 9012        std::shared_ptr<IExtension>
 
 9014    > extensions = common::nullopt,
 
 9015    common::optional<std::wstring> category = common::nullopt,
 
 9016    common::optional<std::wstring> id_short = common::nullopt,
 
 9019        std::shared_ptr<ILangStringNameType>
 
 9021    > display_name = common::nullopt,
 
 9024        std::shared_ptr<ILangStringTextType>
 
 9026    > description = common::nullopt,
 
 9028      std::shared_ptr<IReference>
 
 9029    > semantic_id = common::nullopt,
 
 9032        std::shared_ptr<IReference>
 
 9034    > supplemental_semantic_ids = common::nullopt,
 
 9037        std::shared_ptr<IQualifier>
 
 9039    > qualifiers = common::nullopt,
 
 9042        std::shared_ptr<IEmbeddedDataSpecification>
 
 9044    > embedded_data_specifications = common::nullopt,
 
 9047        std::shared_ptr<IOperationVariable>
 
 9049    > input_variables = common::nullopt,
 
 9052        std::shared_ptr<IOperationVariable>
 
 9054    > output_variables = common::nullopt,
 
 9057        std::shared_ptr<IOperationVariable>
 
 9059    > inoutput_variables = common::nullopt
 
 9066  const common::optional<
 
 9068      std::shared_ptr<IExtension>
 
 9070  >& extensions() 
const override;
 
 9074      std::shared_ptr<IExtension>
 
 9076  >& mutable_extensions() 
override;
 
 9078  void set_extensions(
 
 9081        std::shared_ptr<IExtension>
 
 9090  const common::optional<std::wstring>& category() 
const override;
 
 9092  common::optional<std::wstring>& mutable_category() 
override;
 
 9095    common::optional<std::wstring> value
 
 9102  const common::optional<std::wstring>& id_short() 
const override;
 
 9104  common::optional<std::wstring>& mutable_id_short() 
override;
 
 9107    common::optional<std::wstring> value
 
 9114  const common::optional<
 
 9116      std::shared_ptr<ILangStringNameType>
 
 9118  >& display_name() 
const override;
 
 9122      std::shared_ptr<ILangStringNameType>
 
 9124  >& mutable_display_name() 
override;
 
 9126  void set_display_name(
 
 9129        std::shared_ptr<ILangStringNameType>
 
 9138  const common::optional<
 
 9140      std::shared_ptr<ILangStringTextType>
 
 9142  >& description() 
const override;
 
 9146      std::shared_ptr<ILangStringTextType>
 
 9148  >& mutable_description() 
override;
 
 9150  void set_description(
 
 9153        std::shared_ptr<ILangStringTextType>
 
 9162  const common::optional<
 
 9163    std::shared_ptr<IReference>
 
 9164  >& semantic_id() 
const override;
 
 9167    std::shared_ptr<IReference>
 
 9168  >& mutable_semantic_id() 
override;
 
 9170  void set_semantic_id(
 
 9172      std::shared_ptr<IReference>
 
 9180  const common::optional<
 
 9182      std::shared_ptr<IReference>
 
 9184  >& supplemental_semantic_ids() 
const override;
 
 9188      std::shared_ptr<IReference>
 
 9190  >& mutable_supplemental_semantic_ids() 
override;
 
 9192  void set_supplemental_semantic_ids(
 
 9195        std::shared_ptr<IReference>
 
 9204  const common::optional<
 
 9206      std::shared_ptr<IQualifier>
 
 9208  >& qualifiers() 
const override;
 
 9212      std::shared_ptr<IQualifier>
 
 9214  >& mutable_qualifiers() 
override;
 
 9216  void set_qualifiers(
 
 9219        std::shared_ptr<IQualifier>
 
 9228  const common::optional<
 
 9230      std::shared_ptr<IEmbeddedDataSpecification>
 
 9232  >& embedded_data_specifications() 
const override;
 
 9236      std::shared_ptr<IEmbeddedDataSpecification>
 
 9238  >& mutable_embedded_data_specifications() 
override;
 
 9240  void set_embedded_data_specifications(
 
 9243        std::shared_ptr<IEmbeddedDataSpecification>
 
 9252  const common::optional<
 
 9254      std::shared_ptr<IOperationVariable>
 
 9256  >& input_variables() 
const override;
 
 9260      std::shared_ptr<IOperationVariable>
 
 9262  >& mutable_input_variables() 
override;
 
 9264  void set_input_variables(
 
 9267        std::shared_ptr<IOperationVariable>
 
 9276  const common::optional<
 
 9278      std::shared_ptr<IOperationVariable>
 
 9280  >& output_variables() 
const override;
 
 9284      std::shared_ptr<IOperationVariable>
 
 9286  >& mutable_output_variables() 
override;
 
 9288  void set_output_variables(
 
 9291        std::shared_ptr<IOperationVariable>
 
 9300  const common::optional<
 
 9302      std::shared_ptr<IOperationVariable>
 
 9304  >& inoutput_variables() 
const override;
 
 9308      std::shared_ptr<IOperationVariable>
 
 9310  >& mutable_inoutput_variables() 
override;
 
 9312  void set_inoutput_variables(
 
 9315        std::shared_ptr<IOperationVariable>
 
 9322  ~Operation() 
override = 
default;
 
 9327      std::shared_ptr<IExtension>
 
 9331  common::optional<std::wstring> category_;
 
 9333  common::optional<std::wstring> id_short_;
 
 9337      std::shared_ptr<ILangStringNameType>
 
 9343      std::shared_ptr<ILangStringTextType>
 
 9348    std::shared_ptr<IReference>
 
 9353      std::shared_ptr<IReference>
 
 9355  > supplemental_semantic_ids_;
 
 9359      std::shared_ptr<IQualifier>
 
 9365      std::shared_ptr<IEmbeddedDataSpecification>
 
 9367  > embedded_data_specifications_;
 
 9371      std::shared_ptr<IOperationVariable>
 
 9377      std::shared_ptr<IOperationVariable>
 
 9379  > output_variables_;
 
 9383      std::shared_ptr<IOperationVariable>
 
 9385  > inoutput_variables_;
 
 9388class OperationVariable
 
 9391  explicit OperationVariable(
 
 9392    std::shared_ptr<ISubmodelElement> value
 
 9399  const std::shared_ptr<ISubmodelElement>& value() 
const override;
 
 9401  std::shared_ptr<ISubmodelElement>& mutable_value() 
override;
 
 9404    std::shared_ptr<ISubmodelElement> value
 
 9409  ~OperationVariable() 
override = 
default;
 
 9412  std::shared_ptr<ISubmodelElement> value_;
 
 9421        std::shared_ptr<IExtension>
 
 9423    > extensions = common::nullopt,
 
 9424    common::optional<std::wstring> category = common::nullopt,
 
 9425    common::optional<std::wstring> id_short = common::nullopt,
 
 9428        std::shared_ptr<ILangStringNameType>
 
 9430    > display_name = common::nullopt,
 
 9433        std::shared_ptr<ILangStringTextType>
 
 9435    > description = common::nullopt,
 
 9437      std::shared_ptr<IReference>
 
 9438    > semantic_id = common::nullopt,
 
 9441        std::shared_ptr<IReference>
 
 9443    > supplemental_semantic_ids = common::nullopt,
 
 9446        std::shared_ptr<IQualifier>
 
 9448    > qualifiers = common::nullopt,
 
 9451        std::shared_ptr<IEmbeddedDataSpecification>
 
 9453    > embedded_data_specifications = common::nullopt
 
 9460  const common::optional<
 
 9462      std::shared_ptr<IExtension>
 
 9464  >& extensions() 
const override;
 
 9468      std::shared_ptr<IExtension>
 
 9470  >& mutable_extensions() 
override;
 
 9472  void set_extensions(
 
 9475        std::shared_ptr<IExtension>
 
 9484  const common::optional<std::wstring>& category() 
const override;
 
 9486  common::optional<std::wstring>& mutable_category() 
override;
 
 9489    common::optional<std::wstring> value
 
 9496  const common::optional<std::wstring>& id_short() 
const override;
 
 9498  common::optional<std::wstring>& mutable_id_short() 
override;
 
 9501    common::optional<std::wstring> value
 
 9508  const common::optional<
 
 9510      std::shared_ptr<ILangStringNameType>
 
 9512  >& display_name() 
const override;
 
 9516      std::shared_ptr<ILangStringNameType>
 
 9518  >& mutable_display_name() 
override;
 
 9520  void set_display_name(
 
 9523        std::shared_ptr<ILangStringNameType>
 
 9532  const common::optional<
 
 9534      std::shared_ptr<ILangStringTextType>
 
 9536  >& description() 
const override;
 
 9540      std::shared_ptr<ILangStringTextType>
 
 9542  >& mutable_description() 
override;
 
 9544  void set_description(
 
 9547        std::shared_ptr<ILangStringTextType>
 
 9556  const common::optional<
 
 9557    std::shared_ptr<IReference>
 
 9558  >& semantic_id() 
const override;
 
 9561    std::shared_ptr<IReference>
 
 9562  >& mutable_semantic_id() 
override;
 
 9564  void set_semantic_id(
 
 9566      std::shared_ptr<IReference>
 
 9574  const common::optional<
 
 9576      std::shared_ptr<IReference>
 
 9578  >& supplemental_semantic_ids() 
const override;
 
 9582      std::shared_ptr<IReference>
 
 9584  >& mutable_supplemental_semantic_ids() 
override;
 
 9586  void set_supplemental_semantic_ids(
 
 9589        std::shared_ptr<IReference>
 
 9598  const common::optional<
 
 9600      std::shared_ptr<IQualifier>
 
 9602  >& qualifiers() 
const override;
 
 9606      std::shared_ptr<IQualifier>
 
 9608  >& mutable_qualifiers() 
override;
 
 9610  void set_qualifiers(
 
 9613        std::shared_ptr<IQualifier>
 
 9622  const common::optional<
 
 9624      std::shared_ptr<IEmbeddedDataSpecification>
 
 9626  >& embedded_data_specifications() 
const override;
 
 9630      std::shared_ptr<IEmbeddedDataSpecification>
 
 9632  >& mutable_embedded_data_specifications() 
override;
 
 9634  void set_embedded_data_specifications(
 
 9637        std::shared_ptr<IEmbeddedDataSpecification>
 
 9644  ~Capability() 
override = 
default;
 
 9649      std::shared_ptr<IExtension>
 
 9653  common::optional<std::wstring> category_;
 
 9655  common::optional<std::wstring> id_short_;
 
 9659      std::shared_ptr<ILangStringNameType>
 
 9665      std::shared_ptr<ILangStringTextType>
 
 9670    std::shared_ptr<IReference>
 
 9675      std::shared_ptr<IReference>
 
 9677  > supplemental_semantic_ids_;
 
 9681      std::shared_ptr<IQualifier>
 
 9687      std::shared_ptr<IEmbeddedDataSpecification>
 
 9689  > embedded_data_specifications_;
 
 9692class ConceptDescription
 
 9695  explicit ConceptDescription(
 
 9699        std::shared_ptr<IExtension>
 
 9701    > extensions = common::nullopt,
 
 9702    common::optional<std::wstring> category = common::nullopt,
 
 9703    common::optional<std::wstring> id_short = common::nullopt,
 
 9706        std::shared_ptr<ILangStringNameType>
 
 9708    > display_name = common::nullopt,
 
 9711        std::shared_ptr<ILangStringTextType>
 
 9713    > description = common::nullopt,
 
 9715      std::shared_ptr<IAdministrativeInformation>
 
 9716    > administration = common::nullopt,
 
 9719        std::shared_ptr<IEmbeddedDataSpecification>
 
 9721    > embedded_data_specifications = common::nullopt,
 
 9724        std::shared_ptr<IReference>
 
 9726    > is_case_of = common::nullopt
 
 9733  const common::optional<
 
 9735      std::shared_ptr<IExtension>
 
 9737  >& extensions() 
const override;
 
 9741      std::shared_ptr<IExtension>
 
 9743  >& mutable_extensions() 
override;
 
 9745  void set_extensions(
 
 9748        std::shared_ptr<IExtension>
 
 9757  const common::optional<std::wstring>& category() 
const override;
 
 9759  common::optional<std::wstring>& mutable_category() 
override;
 
 9762    common::optional<std::wstring> value
 
 9769  const common::optional<std::wstring>& id_short() 
const override;
 
 9771  common::optional<std::wstring>& mutable_id_short() 
override;
 
 9774    common::optional<std::wstring> value
 
 9781  const common::optional<
 
 9783      std::shared_ptr<ILangStringNameType>
 
 9785  >& display_name() 
const override;
 
 9789      std::shared_ptr<ILangStringNameType>
 
 9791  >& mutable_display_name() 
override;
 
 9793  void set_display_name(
 
 9796        std::shared_ptr<ILangStringNameType>
 
 9805  const common::optional<
 
 9807      std::shared_ptr<ILangStringTextType>
 
 9809  >& description() 
const override;
 
 9813      std::shared_ptr<ILangStringTextType>
 
 9815  >& mutable_description() 
override;
 
 9817  void set_description(
 
 9820        std::shared_ptr<ILangStringTextType>
 
 9829  const common::optional<
 
 9830    std::shared_ptr<IAdministrativeInformation>
 
 9831  >& administration() 
const override;
 
 9834    std::shared_ptr<IAdministrativeInformation>
 
 9835  >& mutable_administration() 
override;
 
 9837  void set_administration(
 
 9839      std::shared_ptr<IAdministrativeInformation>
 
 9847  const std::wstring& id() 
const override;
 
 9849  std::wstring& mutable_id() 
override;
 
 9859  const common::optional<
 
 9861      std::shared_ptr<IEmbeddedDataSpecification>
 
 9863  >& embedded_data_specifications() 
const override;
 
 9867      std::shared_ptr<IEmbeddedDataSpecification>
 
 9869  >& mutable_embedded_data_specifications() 
override;
 
 9871  void set_embedded_data_specifications(
 
 9874        std::shared_ptr<IEmbeddedDataSpecification>
 
 9883  const common::optional<
 
 9885      std::shared_ptr<IReference>
 
 9887  >& is_case_of() 
const override;
 
 9891      std::shared_ptr<IReference>
 
 9893  >& mutable_is_case_of() 
override;
 
 9895  void set_is_case_of(
 
 9898        std::shared_ptr<IReference>
 
 9905  ~ConceptDescription() 
override = 
default;
 
 9910      std::shared_ptr<IExtension>
 
 9914  common::optional<std::wstring> category_;
 
 9916  common::optional<std::wstring> id_short_;
 
 9920      std::shared_ptr<ILangStringNameType>
 
 9926      std::shared_ptr<ILangStringTextType>
 
 9931    std::shared_ptr<IAdministrativeInformation>
 
 9938      std::shared_ptr<IEmbeddedDataSpecification>
 
 9940  > embedded_data_specifications_;
 
 9944      std::shared_ptr<IReference>
 
 9953    ReferenceTypes type,
 
 9955      std::shared_ptr<IKey>
 
 9958      std::shared_ptr<IReference>
 
 9959    > referred_semantic_id = common::nullopt
 
 9971    ReferenceTypes value
 
 9978  const common::optional<
 
 9979    std::shared_ptr<IReference>
 
 9980  >& referred_semantic_id() 
const override;
 
 9983    std::shared_ptr<IReference>
 
 9984  >& mutable_referred_semantic_id() 
override;
 
 9986  void set_referred_semantic_id(
 
 9988      std::shared_ptr<IReference>
 
 9997    std::shared_ptr<IKey>
 
 9998  >& keys() 
const override;
 
10001    std::shared_ptr<IKey>
 
10002  >& mutable_keys() 
override;
 
10006      std::shared_ptr<IKey>
 
10012  ~Reference() 
override = 
default;
 
10018    std::shared_ptr<IReference>
 
10019  > referred_semantic_id_;
 
10022    std::shared_ptr<IKey>
 
10040  KeyTypes& mutable_type() 
override;
 
10050  const std::wstring& value() 
const override;
 
10052  std::wstring& mutable_value() 
override;
 
10060  ~Key() 
override = 
default;
 
10065  std::wstring value_;
 
10068class LangStringNameType
 
10071  LangStringNameType(
 
10072    std::wstring language,
 
10080  const std::wstring& language() 
const override;
 
10082  std::wstring& mutable_language() 
override;
 
10092  const std::wstring& text() 
const override;
 
10094  std::wstring& mutable_text() 
override;
 
10102  ~LangStringNameType() 
override = 
default;
 
10105  std::wstring language_;
 
10107  std::wstring text_;
 
10110class LangStringTextType
 
10113  LangStringTextType(
 
10114    std::wstring language,
 
10122  const std::wstring& language() 
const override;
 
10124  std::wstring& mutable_language() 
override;
 
10134  const std::wstring& text() 
const override;
 
10136  std::wstring& mutable_text() 
override;
 
10144  ~LangStringTextType() 
override = 
default;
 
10147  std::wstring language_;
 
10149  std::wstring text_;
 
10158        std::shared_ptr<IAssetAdministrationShell>
 
10160    > asset_administration_shells = common::nullopt,
 
10163        std::shared_ptr<ISubmodel>
 
10165    > submodels = common::nullopt,
 
10168        std::shared_ptr<IConceptDescription>
 
10170    > concept_descriptions = common::nullopt
 
10177  const common::optional<
 
10179      std::shared_ptr<IAssetAdministrationShell>
 
10181  >& asset_administration_shells() 
const override;
 
10185      std::shared_ptr<IAssetAdministrationShell>
 
10187  >& mutable_asset_administration_shells() 
override;
 
10189  void set_asset_administration_shells(
 
10192        std::shared_ptr<IAssetAdministrationShell>
 
10201  const common::optional<
 
10203      std::shared_ptr<ISubmodel>
 
10205  >& submodels() 
const override;
 
10209      std::shared_ptr<ISubmodel>
 
10211  >& mutable_submodels() 
override;
 
10213  void set_submodels(
 
10216        std::shared_ptr<ISubmodel>
 
10225  const common::optional<
 
10227      std::shared_ptr<IConceptDescription>
 
10229  >& concept_descriptions() 
const override;
 
10233      std::shared_ptr<IConceptDescription>
 
10235  >& mutable_concept_descriptions() 
override;
 
10237  void set_concept_descriptions(
 
10240        std::shared_ptr<IConceptDescription>
 
10247  ~Environment() 
override = 
default;
 
10252      std::shared_ptr<IAssetAdministrationShell>
 
10254  > asset_administration_shells_;
 
10258      std::shared_ptr<ISubmodel>
 
10264      std::shared_ptr<IConceptDescription>
 
10266  > concept_descriptions_;
 
10269class EmbeddedDataSpecification
 
10272  EmbeddedDataSpecification(
 
10273    std::shared_ptr<IReference> data_specification,
 
10274    std::shared_ptr<IDataSpecificationContent> data_specification_content
 
10281  const std::shared_ptr<IReference>& data_specification() 
const override;
 
10283  std::shared_ptr<IReference>& mutable_data_specification() 
override;
 
10285  void set_data_specification(
 
10286    std::shared_ptr<IReference> value
 
10293  const std::shared_ptr<IDataSpecificationContent>& data_specification_content() 
const override;
 
10295  std::shared_ptr<IDataSpecificationContent>& mutable_data_specification_content() 
override;
 
10297  void set_data_specification_content(
 
10298    std::shared_ptr<IDataSpecificationContent> value
 
10303  ~EmbeddedDataSpecification() 
override = 
default;
 
10306  std::shared_ptr<IReference> data_specification_;
 
10308  std::shared_ptr<IDataSpecificationContent> data_specification_content_;
 
10325  bool min() 
const override;
 
10327  bool& mutable_min() 
override;
 
10337  bool nom() 
const override;
 
10339  bool& mutable_nom() 
override;
 
10349  bool typ() 
const override;
 
10351  bool& mutable_typ() 
override;
 
10361  bool max() 
const override;
 
10363  bool& mutable_max() 
override;
 
10371  ~LevelType() 
override = 
default;
 
10383class ValueReferencePair
 
10386  ValueReferencePair(
 
10387    std::wstring value,
 
10388    std::shared_ptr<IReference> value_id
 
10395  const std::wstring& value() 
const override;
 
10397  std::wstring& mutable_value() 
override;
 
10407  const std::shared_ptr<IReference>& value_id() 
const override;
 
10409  std::shared_ptr<IReference>& mutable_value_id() 
override;
 
10412    std::shared_ptr<IReference> value
 
10417  ~ValueReferencePair() 
override = 
default;
 
10420  std::wstring value_;
 
10422  std::shared_ptr<IReference> value_id_;
 
10428  explicit ValueList(
 
10430      std::shared_ptr<IValueReferencePair>
 
10431    > value_reference_pairs
 
10439    std::shared_ptr<IValueReferencePair>
 
10440  >& value_reference_pairs() 
const override;
 
10443    std::shared_ptr<IValueReferencePair>
 
10444  >& mutable_value_reference_pairs() 
override;
 
10446  void set_value_reference_pairs(
 
10448      std::shared_ptr<IValueReferencePair>
 
10454  ~ValueList() 
override = 
default;
 
10458    std::shared_ptr<IValueReferencePair>
 
10459  > value_reference_pairs_;
 
10462class LangStringPreferredNameTypeIec61360
 
10465  LangStringPreferredNameTypeIec61360(
 
10466    std::wstring language,
 
10474  const std::wstring& language() 
const override;
 
10476  std::wstring& mutable_language() 
override;
 
10486  const std::wstring& text() 
const override;
 
10488  std::wstring& mutable_text() 
override;
 
10496  ~LangStringPreferredNameTypeIec61360() 
override = 
default;
 
10499  std::wstring language_;
 
10501  std::wstring text_;
 
10504class LangStringShortNameTypeIec61360
 
10507  LangStringShortNameTypeIec61360(
 
10508    std::wstring language,
 
10516  const std::wstring& language() 
const override;
 
10518  std::wstring& mutable_language() 
override;
 
10528  const std::wstring& text() 
const override;
 
10530  std::wstring& mutable_text() 
override;
 
10538  ~LangStringShortNameTypeIec61360() 
override = 
default;
 
10541  std::wstring language_;
 
10543  std::wstring text_;
 
10546class LangStringDefinitionTypeIec61360
 
10549  LangStringDefinitionTypeIec61360(
 
10550    std::wstring language,
 
10558  const std::wstring& language() 
const override;
 
10560  std::wstring& mutable_language() 
override;
 
10570  const std::wstring& text() 
const override;
 
10572  std::wstring& mutable_text() 
override;
 
10580  ~LangStringDefinitionTypeIec61360() 
override = 
default;
 
10583  std::wstring language_;
 
10585  std::wstring text_;
 
10588class DataSpecificationIec61360
 
10589    : 
public IDataSpecificationIec61360 {
 
10591  explicit DataSpecificationIec61360(
 
10593      std::shared_ptr<ILangStringPreferredNameTypeIec61360>
 
10597        std::shared_ptr<ILangStringShortNameTypeIec61360>
 
10599    > short_name = common::nullopt,
 
10600    common::optional<std::wstring> unit = common::nullopt,
 
10602      std::shared_ptr<IReference>
 
10603    > unit_id = common::nullopt,
 
10604    common::optional<std::wstring> source_of_definition = common::nullopt,
 
10605    common::optional<std::wstring> symbol = common::nullopt,
 
10606    common::optional<DataTypeIec61360> data_type = common::nullopt,
 
10609        std::shared_ptr<ILangStringDefinitionTypeIec61360>
 
10611    > definition = common::nullopt,
 
10612    common::optional<std::wstring> value_format = common::nullopt,
 
10614      std::shared_ptr<IValueList>
 
10615    > value_list = common::nullopt,
 
10616    common::optional<std::wstring> value = common::nullopt,
 
10618      std::shared_ptr<ILevelType>
 
10619    > level_type = common::nullopt
 
10627    std::shared_ptr<ILangStringPreferredNameTypeIec61360>
 
10628  >& preferred_name() 
const override;
 
10631    std::shared_ptr<ILangStringPreferredNameTypeIec61360>
 
10632  >& mutable_preferred_name() 
override;
 
10634  void set_preferred_name(
 
10636      std::shared_ptr<ILangStringPreferredNameTypeIec61360>
 
10644  const common::optional<
 
10646      std::shared_ptr<ILangStringShortNameTypeIec61360>
 
10648  >& short_name() 
const override;
 
10652      std::shared_ptr<ILangStringShortNameTypeIec61360>
 
10654  >& mutable_short_name() 
override;
 
10656  void set_short_name(
 
10659        std::shared_ptr<ILangStringShortNameTypeIec61360>
 
10668  const common::optional<std::wstring>& unit() 
const override;
 
10670  common::optional<std::wstring>& mutable_unit() 
override;
 
10673    common::optional<std::wstring> value
 
10680  const common::optional<
 
10681    std::shared_ptr<IReference>
 
10682  >& unit_id() 
const override;
 
10685    std::shared_ptr<IReference>
 
10686  >& mutable_unit_id() 
override;
 
10690      std::shared_ptr<IReference>
 
10698  const common::optional<std::wstring>& source_of_definition() 
const override;
 
10700  common::optional<std::wstring>& mutable_source_of_definition() 
override;
 
10702  void set_source_of_definition(
 
10703    common::optional<std::wstring> value
 
10710  const common::optional<std::wstring>& symbol() 
const override;
 
10712  common::optional<std::wstring>& mutable_symbol() 
override;
 
10715    common::optional<std::wstring> value
 
10722  const common::optional<DataTypeIec61360>& data_type() 
const override;
 
10724  common::optional<DataTypeIec61360>& mutable_data_type() 
override;
 
10726  void set_data_type(
 
10727    common::optional<DataTypeIec61360> value
 
10734  const common::optional<
 
10736      std::shared_ptr<ILangStringDefinitionTypeIec61360>
 
10738  >& definition() 
const override;
 
10742      std::shared_ptr<ILangStringDefinitionTypeIec61360>
 
10744  >& mutable_definition() 
override;
 
10746  void set_definition(
 
10749        std::shared_ptr<ILangStringDefinitionTypeIec61360>
 
10758  const common::optional<std::wstring>& value_format() 
const override;
 
10760  common::optional<std::wstring>& mutable_value_format() 
override;
 
10762  void set_value_format(
 
10763    common::optional<std::wstring> value
 
10770  const common::optional<
 
10771    std::shared_ptr<IValueList>
 
10772  >& value_list() 
const override;
 
10775    std::shared_ptr<IValueList>
 
10776  >& mutable_value_list() 
override;
 
10778  void set_value_list(
 
10780      std::shared_ptr<IValueList>
 
10788  const common::optional<std::wstring>& value() 
const override;
 
10790  common::optional<std::wstring>& mutable_value() 
override;
 
10793    common::optional<std::wstring> value
 
10800  const common::optional<
 
10801    std::shared_ptr<ILevelType>
 
10802  >& level_type() 
const override;
 
10805    std::shared_ptr<ILevelType>
 
10806  >& mutable_level_type() 
override;
 
10808  void set_level_type(
 
10810      std::shared_ptr<ILevelType>
 
10816  ~DataSpecificationIec61360() 
override = 
default;
 
10820    std::shared_ptr<ILangStringPreferredNameTypeIec61360>
 
10825      std::shared_ptr<ILangStringShortNameTypeIec61360>
 
10829  common::optional<std::wstring> unit_;
 
10832    std::shared_ptr<IReference>
 
10835  common::optional<std::wstring> source_of_definition_;
 
10837  common::optional<std::wstring> symbol_;
 
10839  common::optional<DataTypeIec61360> data_type_;
 
10843      std::shared_ptr<ILangStringDefinitionTypeIec61360>
 
10847  common::optional<std::wstring> value_format_;
 
10850    std::shared_ptr<IValueList>
 
10853  common::optional<std::wstring> value_;
 
10856    std::shared_ptr<ILevelType>