diff --git a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
index a44bdb1e7b4c080bb4f733647c7817b0f2f09c4f..a2d791ce59475d7ad25650267323e86bb793e628 100644
--- a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
+++ b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
@@ -10,7 +10,7 @@ package tools.descartes.dni.dnimm3ap
 class AdaptationPoints {
 	contains AdaptationRepository repositories
 	contains AdaptationGroups groups
-	refers tools.descartes.dni.dnimm3.NetworkInfrastructure networkInfrastructure
+	refers tools.descartes.dni.dnimm3.NetworkInfrastructure[1] networkInfrastructure
 }
 
 //
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
index df354dc7c606d32de8cd6d3cdc1ad8e5b1175a8f..a1323bbc2ca4d7cb9bc2958ab5e7955886479fc3 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptationPoints.java
@@ -88,7 +88,7 @@ public interface AdaptationPoints extends EObject {
 	 * @return the value of the '<em>Network Infrastructure</em>' reference.
 	 * @see #setNetworkInfrastructure(NetworkInfrastructure)
 	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptationPoints_NetworkInfrastructure()
-	 * @model
+	 * @model required="true"
 	 * @generated
 	 */
 	NetworkInfrastructure getNetworkInfrastructure();
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
index 04c7a8540000893cb8068d94730def66fd7d0f34..f739d8d5b4cba714849e2ab3c92b6723551f7324 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
@@ -1263,7 +1263,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		initEClass(adaptationPointsEClass, AdaptationPoints.class, "AdaptationPoints", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getAdaptationPoints_Repositories(), this.getAdaptationRepository(), null, "repositories", null, 0, 1, AdaptationPoints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptationPoints_Groups(), this.getAdaptationGroups(), null, "groups", null, 0, 1, AdaptationPoints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAdaptationPoints_NetworkInfrastructure(), theDNIPackage.getNetworkInfrastructure(), null, "networkInfrastructure", null, 0, 1, AdaptationPoints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptationPoints_NetworkInfrastructure(), theDNIPackage.getNetworkInfrastructure(), null, "networkInfrastructure", null, 1, 1, AdaptationPoints.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(adaptationRepositoryEClass, AdaptationRepository.class, "AdaptationRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getAdaptationRepository_Nodes(), this.getAdaptableNode(), null, "nodes", null, 0, -1, AdaptationRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);