From dc5a70463c375de1389e8c20cae93a7167a63d07 Mon Sep 17 00:00:00 2001
From: GOURDIN Christophe <christophe.gourdin@inria.fr>
Date: Thu, 7 Jun 2018 11:56:31 +0200
Subject: [PATCH] [Feat]Add on global regions extension availabilityzone as a
 resource not a mixin.

---
 .../connector/AvailabilityzoneConnector.java  |   2 +-
 .../AvailabilityzonelinkConnector.java        |  36 ++
 .../regions/connector/ConnectorFactory.java   |   7 +-
 .../icons/full/obj16/Availabilityzonelink.gif | Bin 0 -> 129 bytes
 .../plugin.properties                         |   1 +
 .../AvailabilityzoneItemProvider.java         |  47 ++-
 .../AvailabilityzonelinkItemProvider.java     | 157 +++++++++
 .../regions/provider/RegionItemProvider.java  |  10 +-
 .../provider/RegionlinkItemProvider.java      |   5 -
 .../RegionsItemProviderAdapterFactory.java    |  24 ++
 .../model/regions.ecore                       |  20 +-
 .../model/regions.genmodel                    |   3 +
 .../model/regions.occie                       |  10 +-
 .../representations.aird                      | 247 +++++++++-----
 .../multicloud/regions/Availabilityzone.java  |  15 +-
 .../regions/Availabilityzonelink.java         |  33 ++
 .../multicloud/regions/RegionsFactory.java    |   9 +
 .../multicloud/regions/RegionsPackage.java    | 314 +++++++++++++++++-
 .../regions/impl/AvailabilityzoneImpl.java    |   3 +-
 .../impl/AvailabilityzonelinkImpl.java        |  49 +++
 .../regions/impl/RegionsFactoryImpl.java      |  11 +
 .../regions/impl/RegionsPackageImpl.java      |  32 +-
 .../regions/util/RegionsAdapterFactory.java   |  18 +
 .../regions/util/RegionsSwitch.java           |  26 +-
 .../regions/util/RegionsValidator.java        |  50 ++-
 25 files changed, 978 insertions(+), 151 deletions(-)
 create mode 100644 plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/AvailabilityzonelinkConnector.java
 create mode 100644 plugins/org.eclipse.cmf.occi.multicloud.regions.edit/icons/full/obj16/Availabilityzonelink.gif
 create mode 100644 plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/AvailabilityzonelinkItemProvider.java
 create mode 100644 plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/Availabilityzonelink.java
 create mode 100644 plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/AvailabilityzonelinkImpl.java

diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/AvailabilityzoneConnector.java b/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/AvailabilityzoneConnector.java
index 00d3b3b..3d46993 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/AvailabilityzoneConnector.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/AvailabilityzoneConnector.java
@@ -23,7 +23,7 @@
  * Connector implementation for the OCCI kind:
  * - scheme: http://occiware.org/occi/infrastructure/locations#
  * - term: availabilityzone
- * - title: This mixin is used to locate a resource or link in a datacenter part
+ * - title: This resource is used to locate a resource or link in a datacenter part
  */
 public class AvailabilityzoneConnector extends org.eclipse.cmf.occi.multicloud.regions.impl.AvailabilityzoneImpl
 {
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/AvailabilityzonelinkConnector.java b/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/AvailabilityzonelinkConnector.java
new file mode 100644
index 0000000..0f1b722
--- /dev/null
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/AvailabilityzonelinkConnector.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2016-2017 Inria
+ *  
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * - Philippe Merle <philippe.merle@inria.fr>
+ * - Faiez Zalila <faiez.zalila@inria.fr>
+ *
+ * Generated at Thu May 03 15:45:31 CEST 2018 from platform:/resource/org.eclipse.cmf.occi.multicloud.regions/model/regions.occie by org.eclipse.cmf.occi.core.gen.connector
+ */
+package org.eclipse.cmf.occi.multicloud.regions.connector;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class AvailabilityzonelinkConnector extends org.eclipse.cmf.occi.multicloud.regions.impl.AvailabilityzonelinkImpl  {
+	/**
+	 * Initialize the logger.
+	 */
+	private static Logger LOGGER = LoggerFactory.getLogger(AvailabilityzoneConnector.class);
+
+	// Start of user code Availabilityzoneconnector_constructor
+	/**
+	 * Constructs a availabilityzone connector.
+	 */
+	AvailabilityzonelinkConnector()
+	{
+		LOGGER.debug("Constructor called on " + this);
+		// TODO: Implement this constructor.
+	}
+	// End of user code
+}
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/ConnectorFactory.java b/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/ConnectorFactory.java
index 2d963b5..44084c6 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/ConnectorFactory.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.connector/src-gen/org/eclipse/cmf/occi/multicloud/regions/connector/ConnectorFactory.java
@@ -47,12 +47,17 @@ public org.eclipse.cmf.occi.multicloud.regions.Regionlink createRegionlink() {
 	 * EFactory method for OCCI kind:
 	 * - scheme: http://occiware.org/occi/infrastructure/locations#
 	 * - term: availabilityzone
-	 * - title: This mixin is used to locate a resource or link in a datacenter part
+	 * - title: This resource is used to locate a resource or link in a datacenter part
 	 */
 	@Override
 	public org.eclipse.cmf.occi.multicloud.regions.Availabilityzone createAvailabilityzone() {
 		return new AvailabilityzoneConnector();
 	}
+	
+	@Override
+	public org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink createAvailabilityzonelink() {
+		return new AvailabilityzonelinkConnector();
+	}
 
 	/**
 	 * EFactory method for OCCI kind:
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/icons/full/obj16/Availabilityzonelink.gif b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/icons/full/obj16/Availabilityzonelink.gif
new file mode 100644
index 0000000000000000000000000000000000000000..739ebbfa6ac7b44cc1632663c006f47e20f05127
GIT binary patch
literal 129
zcmZ?wbhEHb6krfw*vtS14M4Jip`qcxfddT<4GjN*-2XuK|Nmgt|Nk%cytvtO^Gw>A
z0}clif3h$#FmN*HfOLY)U|`WRIO(~1uf^*x-&FV?7P@XXWxbV>;I&}kR~x;L)6}k-
WmG`XF<kwx!*y(m;qL45ngEas<U@?*a

literal 0
HcmV?d00001

diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/plugin.properties b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/plugin.properties
index 939e2fb..f00144b 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/plugin.properties
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/plugin.properties
@@ -43,3 +43,4 @@ _UI_Region_regionDescription_feature = Region Description
 _UI_China_type = China
 _UI_Region_endpoint_feature = Endpoint
 _UI_Region_regionName_feature = Region Name
+_UI_Availabilityzonelink_type = Availabilityzonelink
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/AvailabilityzoneItemProvider.java b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/AvailabilityzoneItemProvider.java
index cc8dc9e..d1491ea 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/AvailabilityzoneItemProvider.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/AvailabilityzoneItemProvider.java
@@ -16,9 +16,12 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.eclipse.cmf.occi.core.OCCIPackage;
 import org.eclipse.cmf.occi.core.provider.MixinBaseItemProvider;
 
+import org.eclipse.cmf.occi.core.provider.ResourceItemProvider;
 import org.eclipse.cmf.occi.multicloud.regions.Availabilityzone;
+import org.eclipse.cmf.occi.multicloud.regions.RegionsFactory;
 import org.eclipse.cmf.occi.multicloud.regions.RegionsPackage;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
@@ -37,7 +40,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class AvailabilityzoneItemProvider extends MixinBaseItemProvider {
+public class AvailabilityzoneItemProvider extends ResourceItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
@@ -151,7 +154,7 @@ public Object getImage(Object object) {
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((Availabilityzone)object).getZoneName();
+		String label = ((Availabilityzone)object).getId();
 		return label == null || label.length() == 0 ?
 			getString("_UI_Availabilityzone_type") :
 			getString("_UI_Availabilityzone_type") + " " + label;
@@ -189,6 +192,46 @@ public void notifyChanged(Notification notification) {
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createEurope()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createNorthamerica()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createSouthamerica()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createAsiapacific()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createAfrica()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createChina()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.RESOURCE__LINKS,
+				 RegionsFactory.eINSTANCE.createRegionlink()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.RESOURCE__LINKS,
+				 RegionsFactory.eINSTANCE.createAvailabilityzonelink()));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/AvailabilityzonelinkItemProvider.java b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/AvailabilityzonelinkItemProvider.java
new file mode 100644
index 0000000..e66fbda
--- /dev/null
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/AvailabilityzonelinkItemProvider.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2015-2017 Obeo, Inria
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 	
+ * Contributors:
+ * - William Piers <william.piers@obeo.fr>
+ * - Philippe Merle <philippe.merle@inria.fr>
+ * - Faiez Zalila <faiez.zalila@inria.fr>
+ */
+package org.eclipse.cmf.occi.multicloud.regions.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.cmf.occi.core.OCCIPackage;
+
+import org.eclipse.cmf.occi.core.provider.LinkItemProvider;
+
+import org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink;
+import org.eclipse.cmf.occi.multicloud.regions.RegionsFactory;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AvailabilityzonelinkItemProvider extends LinkItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AvailabilityzonelinkItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns Availabilityzonelink.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Availabilityzonelink"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((Availabilityzonelink)object).getId();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Availabilityzonelink_type") :
+			getString("_UI_Availabilityzonelink_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createEurope()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createNorthamerica()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createSouthamerica()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createAsiapacific()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createAfrica()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.ENTITY__PARTS,
+				 RegionsFactory.eINSTANCE.createChina()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return RegionsEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionItemProvider.java b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionItemProvider.java
index b2d8b0c..26d826d 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionItemProvider.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionItemProvider.java
@@ -216,11 +216,6 @@ public void notifyChanged(Notification notification) {
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
-		newChildDescriptors.add
-			(createChildParameter
-				(OCCIPackage.Literals.ENTITY__PARTS,
-				 RegionsFactory.eINSTANCE.createAvailabilityzone()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(OCCIPackage.Literals.ENTITY__PARTS,
@@ -255,6 +250,11 @@ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors
 			(createChildParameter
 				(OCCIPackage.Literals.RESOURCE__LINKS,
 				 RegionsFactory.eINSTANCE.createRegionlink()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(OCCIPackage.Literals.RESOURCE__LINKS,
+				 RegionsFactory.eINSTANCE.createAvailabilityzonelink()));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionlinkItemProvider.java b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionlinkItemProvider.java
index e3b1aa3..411a232 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionlinkItemProvider.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionlinkItemProvider.java
@@ -112,11 +112,6 @@ public void notifyChanged(Notification notification) {
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
-		newChildDescriptors.add
-			(createChildParameter
-				(OCCIPackage.Literals.ENTITY__PARTS,
-				 RegionsFactory.eINSTANCE.createAvailabilityzone()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(OCCIPackage.Literals.ENTITY__PARTS,
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionsItemProviderAdapterFactory.java b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionsItemProviderAdapterFactory.java
index bddc4c2..47055bc 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionsItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions.edit/src-gen/org/eclipse/cmf/occi/multicloud/regions/provider/RegionsItemProviderAdapterFactory.java
@@ -150,6 +150,29 @@ public Adapter createAvailabilityzoneAdapter() {
 		return availabilityzoneItemProvider;
 	}
 
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AvailabilityzonelinkItemProvider availabilityzonelinkItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createAvailabilityzonelinkAdapter() {
+		if (availabilityzonelinkItemProvider == null) {
+			availabilityzonelinkItemProvider = new AvailabilityzonelinkItemProvider(this);
+		}
+
+		return availabilityzonelinkItemProvider;
+	}
+
 	/**
 	 * This keeps track of the one adapter used for all {@link org.eclipse.cmf.occi.multicloud.regions.Europe} instances.
 	 * <!-- begin-user-doc -->
@@ -390,6 +413,7 @@ public void dispose() {
 		if (regionItemProvider != null) regionItemProvider.dispose();
 		if (regionlinkItemProvider != null) regionlinkItemProvider.dispose();
 		if (availabilityzoneItemProvider != null) availabilityzoneItemProvider.dispose();
+		if (availabilityzonelinkItemProvider != null) availabilityzonelinkItemProvider.dispose();
 		if (europeItemProvider != null) europeItemProvider.dispose();
 		if (northamericaItemProvider != null) northamericaItemProvider.dispose();
 		if (southamericaItemProvider != null) southamericaItemProvider.dispose();
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.ecore b/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.ecore
index 2440cc3..9d6411c 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.ecore
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.ecore
@@ -47,12 +47,9 @@
       <details key="sourceConstraint" value="self.source.oclIsKindOf(regions::Region)"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Availabilityzone" eSuperTypes="platform:/plugin/org.eclipse.cmf.occi.core/model/OCCI.ecore#//MixinBase">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
-      <details key="constraints" value="appliesConstraint"/>
-    </eAnnotations>
-    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
-      <details key="appliesConstraint" value="self.entity.oclIsKindOf(regions::Region)"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Availabilityzone" eSuperTypes="platform:/plugin/org.eclipse.cmf.occi.core/model/OCCI.ecore#//Resource">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value=""/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="zoneName" lowerBound="1"
         eType="ecore:EDataType platform:/plugin/org.eclipse.cmf.occi.core/model/OCCI.ecore#//String">
@@ -72,6 +69,17 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Availabilityzonelink" eSuperTypes="platform:/plugin/org.eclipse.cmf.occi.core/model/OCCI.ecore#//Link">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value=""/>
+    </eAnnotations>
+    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+      <details key="constraints" value="sourceConstraint"/>
+    </eAnnotations>
+    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+      <details key="sourceConstraint" value="self.source.oclIsKindOf(regions::Availabilityzone)"/>
+    </eAnnotations>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Europe" eSuperTypes="platform:/plugin/org.eclipse.cmf.occi.core/model/OCCI.ecore#//MixinBase">
     <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
       <details key="constraints" value="appliesConstraint"/>
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.genmodel b/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.genmodel
index 4ea7c2f..4f972de 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.genmodel
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.genmodel
@@ -33,6 +33,9 @@
         <ecoreFeature xsi:type="ecore:EAttribute" href="regions.ecore#//Availabilityzone/available"/>
       </genFeatures>
     </genClasses>
+    <genClasses>
+      <ecoreClass href="regions.ecore#//Availabilityzonelink"/>
+    </genClasses>
     <genClasses>
       <ecoreClass href="regions.ecore#//Europe"/>
     </genClasses>
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.occie b/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.occie
index 12c42bd..debfca2 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.occie
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/model/regions.occie
@@ -19,7 +19,7 @@
   <kinds name="Regionlink" scheme="http://occiware.org/occi/infrastructure/locations#" source="//@kinds[term='region']">
     <parent href="http://schemas.ogf.org/occi/core#//@kinds[term='link']"/>
   </kinds>
-  <mixins name="AvailabilityZone" scheme="http://occiware.org/occi/infrastructure/locations#" title="This mixin is used to locate a resource or link in a datacenter part" applies="//@kinds[term='region']">
+  <kinds name="AvailabilityZone" scheme="http://occiware.org/occi/infrastructure/locations#">
     <attributes name="zoneName" mutable="true" required="true">
       <type xsi:type="occi:StringType" href="http://schemas.ogf.org/occi/core#//@types.0"/>
     </attributes>
@@ -29,11 +29,15 @@
     <attributes name="available" mutable="true" default="true">
       <type xsi:type="occi:BooleanType" href="http://schemas.ogf.org/occi/core#//@types.1"/>
     </attributes>
-  </mixins>
+    <parent href="http://schemas.ogf.org/occi/core#//@kinds[term='resource']"/>
+  </kinds>
+  <kinds name="AvailabilityZoneLink" scheme="http://occiware.org/occi/infrastructure/locations#" source="//@kinds[term='availabilityzone']">
+    <parent href="http://schemas.ogf.org/occi/core#//@kinds[term='link']"/>
+  </kinds>
   <mixins name="Europe" scheme="http://occiware.org/occi/infrastructure/locations#" applies="//@kinds[term='region']"/>
   <mixins name="NorthAmerica" scheme="http://occiware.org/occi/infrastructure/locations#" applies="//@kinds[term='region']"/>
   <mixins name="SouthAmerica" scheme="http://occiware.org/occi/infrastructure/locations#" applies="//@kinds[term='region']"/>
   <mixins name="AsiaPacific" scheme="http://occiware.org/occi/infrastructure/locations#" applies="//@kinds[term='region']"/>
   <mixins name="Africa" scheme="http://occiware.org/occi/infrastructure/locations#" applies="//@kinds[term='region']"/>
   <mixins name="China" scheme="http://occiware.org/occi/infrastructure/locations#" applies="//@kinds[term='region']"/>
-</occi:Extension>
\ No newline at end of file
+</occi:Extension>
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/representations.aird b/plugins/org.eclipse.cmf.occi.multicloud.regions/representations.aird
index 94e848d..5ef535a 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/representations.aird
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/representations.aird
@@ -109,27 +109,6 @@
           <styles xmi:type="notation:ShapeStyle" xmi:id="_mk9soevUEee8hp_7KJuBdw" fontName=".AppleSystemUIFont" fontHeight="12" bold="true"/>
           <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mk9souvUEee8hp_7KJuBdw"/>
         </children>
-        <children xmi:type="notation:Node" xmi:id="_tIN-QOvUEee8hp_7KJuBdw" type="2003" element="_tIJs0OvUEee8hp_7KJuBdw">
-          <children xmi:type="notation:Node" xmi:id="_tIN-Q-vUEee8hp_7KJuBdw" type="5007"/>
-          <children xmi:type="notation:Node" xmi:id="_tIN-ROvUEee8hp_7KJuBdw" type="7004">
-            <children xmi:type="notation:Node" xmi:id="_2rqDYOvUEee8hp_7KJuBdw" type="3010" element="_2rUsMOvUEee8hp_7KJuBdw">
-              <styles xmi:type="notation:FontStyle" xmi:id="_2rqDYevUEee8hp_7KJuBdw" fontName=".AppleSystemUIFont" fontHeight="10"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_2rqDYuvUEee8hp_7KJuBdw"/>
-            </children>
-            <children xmi:type="notation:Node" xmi:id="_7II48OvYEee8hp_7KJuBdw" type="3010" element="_7IBkMOvYEee8hp_7KJuBdw">
-              <styles xmi:type="notation:FontStyle" xmi:id="_7II48evYEee8hp_7KJuBdw" fontName=".AppleSystemUIFont" fontHeight="10"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_7II48uvYEee8hp_7KJuBdw"/>
-            </children>
-            <children xmi:type="notation:Node" xmi:id="_Os4q8OvZEee8hp_7KJuBdw" type="3010" element="_OsykUOvZEee8hp_7KJuBdw">
-              <styles xmi:type="notation:FontStyle" xmi:id="_Os4q8evZEee8hp_7KJuBdw" fontName=".AppleSystemUIFont" fontHeight="10"/>
-              <layoutConstraint xmi:type="notation:Location" xmi:id="_Os4q8uvZEee8hp_7KJuBdw"/>
-            </children>
-            <styles xmi:type="notation:SortingStyle" xmi:id="_tIN-RevUEee8hp_7KJuBdw"/>
-            <styles xmi:type="notation:FilteringStyle" xmi:id="_tIN-RuvUEee8hp_7KJuBdw"/>
-          </children>
-          <styles xmi:type="notation:ShapeStyle" xmi:id="_tIN-QevUEee8hp_7KJuBdw" fontName=".AppleSystemUIFont" fontHeight="12" bold="true"/>
-          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tIN-QuvUEee8hp_7KJuBdw" x="924" y="384" width="171" height="83"/>
-        </children>
         <children xmi:type="notation:Node" xmi:id="_vz8HIOykEeeHeIBag6JF7A" type="2003" element="_vzeNEOykEeeHeIBag6JF7A">
           <children xmi:type="notation:Node" xmi:id="_vz8HI-ykEeeHeIBag6JF7A" type="5007"/>
           <children xmi:type="notation:Node" xmi:id="_vz8HJOykEeeHeIBag6JF7A" type="7004">
@@ -218,6 +197,36 @@
           <styles xmi:type="notation:ShapeStyle" xmi:id="_cuU4AU7XEeiksNN5CrZzWw" fontName=".AppleSystemUIFont" fontHeight="12" bold="true"/>
           <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cuU4Ak7XEeiksNN5CrZzWw" x="990" y="300"/>
         </children>
+        <children xmi:type="notation:Node" xmi:id="_VgLKoGozEeiOqb64RDpd4Q" type="2003" element="_VfnxAGozEeiOqb64RDpd4Q">
+          <children xmi:type="notation:Node" xmi:id="_VgMYwGozEeiOqb64RDpd4Q" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_VgMYwWozEeiOqb64RDpd4Q" type="7004">
+            <children xmi:type="notation:Node" xmi:id="_YxzTcGozEeiOqb64RDpd4Q" type="3010" element="_Yxo7YGozEeiOqb64RDpd4Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_YxzTcWozEeiOqb64RDpd4Q" fontName=".AppleSystemUIFont" fontHeight="10" bold="true"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_YxzTcmozEeiOqb64RDpd4Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Yxz6gGozEeiOqb64RDpd4Q" type="3010" element="_YxpicWozEeiOqb64RDpd4Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Yxz6gWozEeiOqb64RDpd4Q" fontName=".AppleSystemUIFont" fontHeight="10"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Yxz6gmozEeiOqb64RDpd4Q"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_Yxz6g2ozEeiOqb64RDpd4Q" type="3010" element="_YxqJgWozEeiOqb64RDpd4Q">
+              <styles xmi:type="notation:FontStyle" xmi:id="_Yxz6hGozEeiOqb64RDpd4Q" fontName=".AppleSystemUIFont" fontHeight="10"/>
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Yxz6hWozEeiOqb64RDpd4Q"/>
+            </children>
+            <styles xmi:type="notation:SortingStyle" xmi:id="_VgMYwmozEeiOqb64RDpd4Q"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_VgMYw2ozEeiOqb64RDpd4Q"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_VgLKoWozEeiOqb64RDpd4Q" fontName=".AppleSystemUIFont" fontHeight="12" bold="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VgLKomozEeiOqb64RDpd4Q" x="1112" y="244" width="135" height="115"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_a9Uv0GozEeiOqb64RDpd4Q" type="2003" element="_a9KXwGozEeiOqb64RDpd4Q">
+          <children xmi:type="notation:Node" xmi:id="_a9VW4GozEeiOqb64RDpd4Q" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_a9VW4WozEeiOqb64RDpd4Q" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_a9VW4mozEeiOqb64RDpd4Q"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_a9VW42ozEeiOqb64RDpd4Q"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_a9Uv0WozEeiOqb64RDpd4Q" fontName=".AppleSystemUIFont" fontHeight="12" bold="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a9Uv0mozEeiOqb64RDpd4Q" x="1292" y="260" width="139" height="59"/>
+        </children>
         <styles xmi:type="notation:DiagramStyle" xmi:id="_mk9FkuvUEee8hp_7KJuBdw"/>
         <edges xmi:type="notation:Edge" xmi:id="_mlAI4OvUEee8hp_7KJuBdw" type="4001" element="_mk6CXuvUEee8hp_7KJuBdw" source="_mk-TuuvUEee8hp_7KJuBdw" target="_mk-Ts-vUEee8hp_7KJuBdw">
           <children xmi:type="notation:Node" xmi:id="_mlAI5OvUEee8hp_7KJuBdw" type="6001">
@@ -315,22 +324,6 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAFJJgHvEeiIwrKVUjbFZA" id="(0.0,0.5056179775280899)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAFJJwHvEeiIwrKVUjbFZA" id="(1.0,0.42105263157894735)"/>
         </edges>
-        <edges xmi:type="notation:Edge" xmi:id="_aB4uIAHvEeiIwrKVUjbFZA" type="4001" element="_aBV7kAHvEeiIwrKVUjbFZA" source="_tIN-QOvUEee8hp_7KJuBdw" target="_0vhD0AHuEeiIwrKVUjbFZA">
-          <children xmi:type="notation:Node" xmi:id="_aB4uJAHvEeiIwrKVUjbFZA" type="6001">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aB4uJQHvEeiIwrKVUjbFZA" y="-10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_aB4uJgHvEeiIwrKVUjbFZA" type="6002">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aB4uJwHvEeiIwrKVUjbFZA" y="10"/>
-          </children>
-          <children xmi:type="notation:Node" xmi:id="_aB4uKAHvEeiIwrKVUjbFZA" type="6003">
-            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aB4uKQHvEeiIwrKVUjbFZA" y="10"/>
-          </children>
-          <styles xmi:type="notation:ConnectorStyle" xmi:id="_aB4uIQHvEeiIwrKVUjbFZA"/>
-          <styles xmi:type="notation:FontStyle" xmi:id="_aB4uIgHvEeiIwrKVUjbFZA" fontName=".AppleSystemUIFont" fontHeight="8"/>
-          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aB4uIwHvEeiIwrKVUjbFZA" points="[0, 0, 35, 28]$[-35, -28, 0, 0]"/>
-          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aB4uKgHvEeiIwrKVUjbFZA" id="(0.0,0.14814814814814814)"/>
-          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aB4uKwHvEeiIwrKVUjbFZA" id="(1.0,0.7640449438202247)"/>
-        </edges>
         <edges xmi:type="notation:Edge" xmi:id="_bJJRIAHvEeiIwrKVUjbFZA" type="4001" element="_bI-5EAHvEeiIwrKVUjbFZA" source="_4_uhQOykEeeHeIBag6JF7A" target="_0vhD0AHuEeiIwrKVUjbFZA">
           <children xmi:type="notation:Node" xmi:id="_bJJRJAHvEeiIwrKVUjbFZA" type="6001">
             <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bJJRJQHvEeiIwrKVUjbFZA" y="-10"/>
@@ -443,6 +436,54 @@
           <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cupBEE7XEeiksNN5CrZzWw" id="(0.5263157894736842,0.0)"/>
           <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cupoIE7XEeiksNN5CrZzWw" id="(0.5028248587570622,1.0)"/>
         </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_Z8YQMGozEeiOqb64RDpd4Q" type="4001" element="_Z73S0GozEeiOqb64RDpd4Q" source="_VgLKoGozEeiOqb64RDpd4Q" target="_mk-TuuvUEee8hp_7KJuBdw">
+          <children xmi:type="notation:Node" xmi:id="_Z8Y3QGozEeiOqb64RDpd4Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z8Y3QWozEeiOqb64RDpd4Q" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Z8Y3QmozEeiOqb64RDpd4Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z8Y3Q2ozEeiOqb64RDpd4Q" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Z8Y3RGozEeiOqb64RDpd4Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z8Y3RWozEeiOqb64RDpd4Q" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_Z8YQMWozEeiOqb64RDpd4Q"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_Z8YQMmozEeiOqb64RDpd4Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z8YQM2ozEeiOqb64RDpd4Q" points="[0, 0, 660, 100]$[-660, -100, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z8Y3RmozEeiOqb64RDpd4Q" id="(0.5714285714285714,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z8Y3R2ozEeiOqb64RDpd4Q" id="(1.0,0.36363636363636365)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_hMBGsGozEeiOqb64RDpd4Q" type="4001" element="_hL3VsGozEeiOqb64RDpd4Q" source="_a9Uv0GozEeiOqb64RDpd4Q" target="_mk-6xOvUEee8hp_7KJuBdw">
+          <children xmi:type="notation:Node" xmi:id="_hMBGtGozEeiOqb64RDpd4Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hMBGtWozEeiOqb64RDpd4Q" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_hMBGtmozEeiOqb64RDpd4Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hMBGt2ozEeiOqb64RDpd4Q" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_hMBGuGozEeiOqb64RDpd4Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hMBGuWozEeiOqb64RDpd4Q" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_hMBGsWozEeiOqb64RDpd4Q"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_hMBGsmozEeiOqb64RDpd4Q" fontName=".AppleSystemUIFont" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hMBGs2ozEeiOqb64RDpd4Q" points="[0, 0, 764, 26]$[-764, -26, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hMBtwGozEeiOqb64RDpd4Q" id="(0.0,0.2982456140350877)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hMBtwWozEeiOqb64RDpd4Q" id="(1.0,0.5)"/>
+        </edges>
+        <edges xmi:type="notation:Edge" xmi:id="_iTK8AGozEeiOqb64RDpd4Q" type="4001" element="_iTCZIGozEeiOqb64RDpd4Q" source="_a9Uv0GozEeiOqb64RDpd4Q" target="_VgLKoGozEeiOqb64RDpd4Q">
+          <children xmi:type="notation:Node" xmi:id="_iTLjEGozEeiOqb64RDpd4Q" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iTLjEWozEeiOqb64RDpd4Q" y="-10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_iTLjEmozEeiOqb64RDpd4Q" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iTLjE2ozEeiOqb64RDpd4Q" y="10"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_iTLjFGozEeiOqb64RDpd4Q" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iTLjFWozEeiOqb64RDpd4Q" y="10"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_iTK8AWozEeiOqb64RDpd4Q"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_iTK8AmozEeiOqb64RDpd4Q" fontName=".AppleSystemUIFont" fontHeight="10" bold="true"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iTK8A2ozEeiOqb64RDpd4Q" points="[0, 0, 47, 0]$[-47, 0, 0, 0]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iTLjFmozEeiOqb64RDpd4Q" id="(0.0,0.3508771929824561)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iTLjF2ozEeiOqb64RDpd4Q" id="(1.0,0.3185840707964602)"/>
+        </edges>
       </data>
     </ownedAnnotationEntries>
     <ownedDiagramElements xmi:type="diagram:DNodeContainer" xmi:id="_mk6CROvUEee8hp_7KJuBdw" name="core">
@@ -480,7 +521,7 @@
           <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@subNodeMappings[name='KindAttribute']"/>
         </ownedElements>
       </ownedDiagramElements>
-      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_mk6CTOvUEee8hp_7KJuBdw" name="Resource" outgoingEdges="_mk6CXuvUEee8hp_7KJuBdw" incomingEdges="_mk6CZOvUEee8hp_7KJuBdw _mk6CZ-vUEee8hp_7KJuBdw _7E-xEAHuEeiIwrKVUjbFZA">
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_mk6CTOvUEee8hp_7KJuBdw" name="Resource" outgoingEdges="_mk6CXuvUEee8hp_7KJuBdw" incomingEdges="_mk6CZOvUEee8hp_7KJuBdw _mk6CZ-vUEee8hp_7KJuBdw _7E-xEAHuEeiIwrKVUjbFZA _Z73S0GozEeiOqb64RDpd4Q">
         <target xmi:type="occi:Kind" href="http://schemas.ogf.org/occi/core#//@kinds[term='resource']"/>
         <semanticElements xmi:type="occi:Kind" href="http://schemas.ogf.org/occi/core#//@kinds[term='resource']"/>
         <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_mk6CTevUEee8hp_7KJuBdw" labelSize="12" showIcon="false" borderSize="1" borderSizeComputationExpression="1" borderColor="0,47,0" backgroundStyle="GradientTopToBottom" backgroundColor="187,242,196" foregroundColor="255,255,255">
@@ -497,7 +538,7 @@
           <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@subNodeMappings[name='KindAttribute']"/>
         </ownedElements>
       </ownedDiagramElements>
-      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_mk6CUOvUEee8hp_7KJuBdw" name="Link" outgoingEdges="_mk6CYevUEee8hp_7KJuBdw _mk6CZOvUEee8hp_7KJuBdw _mk6CZ-vUEee8hp_7KJuBdw" incomingEdges="_N_7_MAHvEeiIwrKVUjbFZA">
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_mk6CUOvUEee8hp_7KJuBdw" name="Link" outgoingEdges="_mk6CYevUEee8hp_7KJuBdw _mk6CZOvUEee8hp_7KJuBdw _mk6CZ-vUEee8hp_7KJuBdw" incomingEdges="_N_7_MAHvEeiIwrKVUjbFZA _hL3VsGozEeiOqb64RDpd4Q">
         <target xmi:type="occi:Kind" href="http://schemas.ogf.org/occi/core#//@kinds[term='link']"/>
         <semanticElements xmi:type="occi:Kind" href="http://schemas.ogf.org/occi/core#//@kinds[term='link']"/>
         <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_mk6CUevUEee8hp_7KJuBdw" labelSize="12" showIcon="false" borderSize="1" borderSizeComputationExpression="1" borderColor="0,47,0" backgroundStyle="GradientTopToBottom" backgroundColor="187,242,196" foregroundColor="255,255,255">
@@ -514,7 +555,7 @@
           <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='BooleanTypeContainer']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='BooleanTypeContainer']"/>
-        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_mk6CVOvUEee8hp_7KJuBdw" name="boolean" tooltipText="org.eclipse.cmf.occi.core.impl.BooleanTypeImpl@33184fbc (name: Boolean, documentation: Data type for booleans)">
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_mk6CVOvUEee8hp_7KJuBdw" name="boolean" tooltipText="org.eclipse.cmf.occi.core.impl.BooleanTypeImpl@701d94bd (name: Boolean, documentation: Data type for booleans)">
           <target xmi:type="occi:BooleanType" href="http://schemas.ogf.org/occi/core#//@types.1"/>
           <semanticElements xmi:type="occi:BooleanType" href="http://schemas.ogf.org/occi/core#//@types.1"/>
           <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_mk6CVevUEee8hp_7KJuBdw" labelSize="10" showIcon="false">
@@ -532,7 +573,7 @@
           <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='StringTypeContainer']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='StringTypeContainer']"/>
-        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_mk6CWOvUEee8hp_7KJuBdw" name="java.lang.String" tooltipText="org.eclipse.cmf.occi.core.impl.StringTypeImpl@77521c25 (name: String, documentation: Data type for strings) (pattern: null, length: &lt;unset>, minLength: &lt;unset>, maxLength: &lt;unset>)">
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_mk6CWOvUEee8hp_7KJuBdw" name="java.lang.String" tooltipText="org.eclipse.cmf.occi.core.impl.StringTypeImpl@4d5f9449 (name: String, documentation: Data type for strings) (pattern: null, length: &lt;unset>, minLength: &lt;unset>, maxLength: &lt;unset>)">
           <target xmi:type="occi:StringType" href="http://schemas.ogf.org/occi/core#//@types.0"/>
           <semanticElements xmi:type="occi:StringType" href="http://schemas.ogf.org/occi/core#//@types.0"/>
           <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_mk6CWevUEee8hp_7KJuBdw" labelSize="10" showIcon="false">
@@ -550,7 +591,7 @@
           <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='NumericTypeContainer']/@style"/>
         </ownedStyle>
         <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='NumericTypeContainer']"/>
-        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_mk6CXOvUEee8hp_7KJuBdw" name="Integer" tooltipText="org.eclipse.cmf.occi.core.impl.NumericTypeImpl@2850640d (name: Integer, documentation: Data type for integers) (type: Integer, totalDigits: &lt;unset>, minExclusive: &lt;unset>, maxExclusive: &lt;unset>, minInclusive: &lt;unset>, maxInclusive: &lt;unset>)">
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_mk6CXOvUEee8hp_7KJuBdw" name="Integer" tooltipText="org.eclipse.cmf.occi.core.impl.NumericTypeImpl@405931b9 (name: Integer, documentation: Data type for integers) (type: Integer, totalDigits: &lt;unset>, minExclusive: &lt;unset>, maxExclusive: &lt;unset>, minInclusive: &lt;unset>, maxInclusive: &lt;unset>)">
           <target xmi:type="occi:NumericType" href="http://schemas.ogf.org/occi/core#//@types.2"/>
           <semanticElements xmi:type="occi:NumericType" href="http://schemas.ogf.org/occi/core#//@types.2"/>
           <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_mk6CXevUEee8hp_7KJuBdw" labelSize="10" showIcon="false">
@@ -597,43 +638,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='TargetEdge']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_tIJs0OvUEee8hp_7KJuBdw" name="AvailabilityZone" outgoingEdges="_aBV7kAHvEeiIwrKVUjbFZA">
-      <target xmi:type="occi:Mixin" href="model/regions.occie#//@mixins[term='availabilityzone']"/>
-      <semanticElements xmi:type="occi:Mixin" href="model/regions.occie#//@mixins[term='availabilityzone']"/>
-      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
-      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
-      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
-      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_tIKT4OvUEee8hp_7KJuBdw" labelSize="12" showIcon="false" borderSize="1" borderSizeComputationExpression="1" borderColor="0,37,74" backgroundStyle="GradientTopToBottom" backgroundColor="187,221,255" foregroundColor="255,255,255">
-        <labelFormat>bold</labelFormat>
-        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']/@style"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']"/>
-      <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_2rUsMOvUEee8hp_7KJuBdw" name="zoneName: String">
-        <target xmi:type="occi:Attribute" href="model/regions.occie#//@mixins[term='availabilityzone']/@attributes.0"/>
-        <semanticElements xmi:type="occi:Attribute" href="model/regions.occie#//@mixins[term='availabilityzone']/@attributes.0"/>
-        <ownedStyle xmi:type="diagram:Square" xmi:id="_5KbL4OvUEee8hp_7KJuBdw" labelSize="10" labelAlignment="LEFT" labelPosition="node">
-          <labelFormat>bold</labelFormat>
-          <description xmi:type="style:SquareDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']/@subNodeMappings[name='MixinAttribute']/@conditionnalStyles.3/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']/@subNodeMappings[name='MixinAttribute']"/>
-      </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_7IBkMOvYEee8hp_7KJuBdw" name="zoneMessage: String">
-        <target xmi:type="occi:Attribute" href="model/regions.occie#//@mixins[term='availabilityzone']/@attributes.1"/>
-        <semanticElements xmi:type="occi:Attribute" href="model/regions.occie#//@mixins[term='availabilityzone']/@attributes.1"/>
-        <ownedStyle xmi:type="diagram:Square" xmi:id="_7ICLQOvYEee8hp_7KJuBdw" labelSize="10" labelAlignment="LEFT" labelPosition="node">
-          <description xmi:type="style:SquareDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']/@subNodeMappings[name='MixinAttribute']/@conditionnalStyles.2/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']/@subNodeMappings[name='MixinAttribute']"/>
-      </ownedElements>
-      <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_OsykUOvZEee8hp_7KJuBdw" name="available: Boolean=true">
-        <target xmi:type="occi:Attribute" href="model/regions.occie#//@mixins[term='availabilityzone']/@attributes.2"/>
-        <semanticElements xmi:type="occi:Attribute" href="model/regions.occie#//@mixins[term='availabilityzone']/@attributes.2"/>
-        <ownedStyle xmi:type="diagram:Square" xmi:id="_OszLYOvZEee8hp_7KJuBdw" labelSize="10" labelAlignment="LEFT" labelPosition="node">
-          <description xmi:type="style:SquareDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']/@subNodeMappings[name='MixinAttribute']/@conditionnalStyles.2/@style"/>
-        </ownedStyle>
-        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']/@subNodeMappings[name='MixinAttribute']"/>
-      </ownedElements>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_vzeNEOykEeeHeIBag6JF7A" name="Europe" outgoingEdges="_c3lv8AHvEeiIwrKVUjbFZA">
       <target xmi:type="occi:Mixin" href="model/regions.occie#//@mixins[term='europe']"/>
       <semanticElements xmi:type="occi:Mixin" href="model/regions.occie#//@mixins[term='europe']"/>
@@ -694,7 +698,7 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='MixinContainer']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_0vAGcAHuEeiIwrKVUjbFZA" name="Region" outgoingEdges="_7E-xEAHuEeiIwrKVUjbFZA" incomingEdges="_aBV7kAHvEeiIwrKVUjbFZA _bI-5EAHvEeiIwrKVUjbFZA _bt6LEAHvEeiIwrKVUjbFZA _cOyDgAHvEeiIwrKVUjbFZA _c3lv8AHvEeiIwrKVUjbFZA _db1FcAHvEeiIwrKVUjbFZA _dzwAwAHwEeiIwrKVUjbFZA _cuCkIE7XEeiksNN5CrZzWw">
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_0vAGcAHuEeiIwrKVUjbFZA" name="Region" outgoingEdges="_7E-xEAHuEeiIwrKVUjbFZA" incomingEdges="_bI-5EAHvEeiIwrKVUjbFZA _bt6LEAHvEeiIwrKVUjbFZA _cOyDgAHvEeiIwrKVUjbFZA _c3lv8AHvEeiIwrKVUjbFZA _db1FcAHvEeiIwrKVUjbFZA _dzwAwAHwEeiIwrKVUjbFZA _cuCkIE7XEeiksNN5CrZzWw">
       <target xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='region']"/>
       <semanticElements xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='region']"/>
       <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -767,14 +771,6 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='ParentEdge']"/>
     </ownedDiagramElements>
-    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_aBV7kAHvEeiIwrKVUjbFZA" sourceNode="_tIJs0OvUEee8hp_7KJuBdw" targetNode="_0vAGcAHuEeiIwrKVUjbFZA">
-      <target xmi:type="occi:Mixin" href="model/regions.occie#//@mixins[term='availabilityzone']"/>
-      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_aBWioAHvEeiIwrKVUjbFZA" lineStyle="dash" size="2">
-        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='AppliesEdge']/@style"/>
-        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_aBWioQHvEeiIwrKVUjbFZA"/>
-      </ownedStyle>
-      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='AppliesEdge']"/>
-    </ownedDiagramElements>
     <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_bI-5EAHvEeiIwrKVUjbFZA" sourceNode="_4_a_QOykEeeHeIBag6JF7A" targetNode="_0vAGcAHuEeiIwrKVUjbFZA">
       <target xmi:type="occi:Mixin" href="model/regions.occie#//@mixins[term='asiapacific']"/>
       <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_bI_gIAHvEeiIwrKVUjbFZA" lineStyle="dash" size="2">
@@ -845,6 +841,81 @@
       </ownedStyle>
       <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='AppliesEdge']"/>
     </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_VfnxAGozEeiOqb64RDpd4Q" name="AvailabilityZone" outgoingEdges="_Z73S0GozEeiOqb64RDpd4Q" incomingEdges="_iTCZIGozEeiOqb64RDpd4Q">
+      <target xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='availabilityzone']"/>
+      <semanticElements xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='availabilityzone']"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_VfoYEGozEeiOqb64RDpd4Q" labelSize="12" showIcon="false" borderSize="1" borderSizeComputationExpression="1" borderColor="0,47,0" backgroundStyle="GradientTopToBottom" backgroundColor="187,242,196" foregroundColor="255,255,255">
+        <labelFormat>bold</labelFormat>
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']"/>
+      <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_Yxo7YGozEeiOqb64RDpd4Q" name="zoneName: String">
+        <target xmi:type="occi:Attribute" href="model/regions.occie#//@kinds[term='availabilityzone']/@attributes.0"/>
+        <semanticElements xmi:type="occi:Attribute" href="model/regions.occie#//@kinds[term='availabilityzone']/@attributes.0"/>
+        <ownedStyle xmi:type="diagram:Square" xmi:id="_YxpicGozEeiOqb64RDpd4Q" labelSize="10" labelAlignment="LEFT" labelPosition="node">
+          <labelFormat>bold</labelFormat>
+          <description xmi:type="style:SquareDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@subNodeMappings[name='KindAttribute']/@conditionnalStyles.3/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@subNodeMappings[name='KindAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_YxpicWozEeiOqb64RDpd4Q" name="zoneMessage: String">
+        <target xmi:type="occi:Attribute" href="model/regions.occie#//@kinds[term='availabilityzone']/@attributes.1"/>
+        <semanticElements xmi:type="occi:Attribute" href="model/regions.occie#//@kinds[term='availabilityzone']/@attributes.1"/>
+        <ownedStyle xmi:type="diagram:Square" xmi:id="_YxqJgGozEeiOqb64RDpd4Q" labelSize="10" labelAlignment="LEFT" labelPosition="node">
+          <description xmi:type="style:SquareDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@subNodeMappings[name='KindAttribute']/@conditionnalStyles.2/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@subNodeMappings[name='KindAttribute']"/>
+      </ownedElements>
+      <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_YxqJgWozEeiOqb64RDpd4Q" name="available: Boolean=true">
+        <target xmi:type="occi:Attribute" href="model/regions.occie#//@kinds[term='availabilityzone']/@attributes.2"/>
+        <semanticElements xmi:type="occi:Attribute" href="model/regions.occie#//@kinds[term='availabilityzone']/@attributes.2"/>
+        <ownedStyle xmi:type="diagram:Square" xmi:id="_YxqwkGozEeiOqb64RDpd4Q" labelSize="10" labelAlignment="LEFT" labelPosition="node">
+          <description xmi:type="style:SquareDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@subNodeMappings[name='KindAttribute']/@conditionnalStyles.2/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@subNodeMappings[name='KindAttribute']"/>
+      </ownedElements>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_Z73S0GozEeiOqb64RDpd4Q" sourceNode="_VfnxAGozEeiOqb64RDpd4Q" targetNode="_mk6CTOvUEee8hp_7KJuBdw">
+      <target xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='availabilityzone']"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_Z73S0WozEeiOqb64RDpd4Q" targetArrow="InputClosedArrow" size="2">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='ParentEdge']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_Z73S0mozEeiOqb64RDpd4Q"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='ParentEdge']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_a9KXwGozEeiOqb64RDpd4Q" name="AvailabilityZoneLink" outgoingEdges="_hL3VsGozEeiOqb64RDpd4Q _iTCZIGozEeiOqb64RDpd4Q">
+      <target xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='availabilityzonelink']"/>
+      <semanticElements xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='availabilityzonelink']"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_a9K-0GozEeiOqb64RDpd4Q" labelSize="12" showIcon="false" borderSize="1" borderSizeComputationExpression="1" borderColor="0,47,0" backgroundStyle="GradientTopToBottom" backgroundColor="187,242,196" foregroundColor="255,255,255">
+        <labelFormat>bold</labelFormat>
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@containerMappings[name='KindContainer']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_hL3VsGozEeiOqb64RDpd4Q" sourceNode="_a9KXwGozEeiOqb64RDpd4Q" targetNode="_mk6CUOvUEee8hp_7KJuBdw">
+      <target xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='availabilityzonelink']"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_hL3VsWozEeiOqb64RDpd4Q" targetArrow="InputClosedArrow" size="2">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='ParentEdge']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_hL3VsmozEeiOqb64RDpd4Q"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='ParentEdge']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_iTCZIGozEeiOqb64RDpd4Q" name="source" sourceNode="_a9KXwGozEeiOqb64RDpd4Q" targetNode="_VfnxAGozEeiOqb64RDpd4Q">
+      <target xmi:type="occi:Kind" href="model/regions.occie#//@kinds[term='availabilityzonelink']"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_iTCZIWozEeiOqb64RDpd4Q" size="2" strokeColor="0,0,0">
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='SourceEdge']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_iTCZImozEeiOqb64RDpd4Q" labelSize="10" showIcon="false">
+          <labelFormat>bold</labelFormat>
+        </centerLabelStyle>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer/@edgeMappings[name='SourceEdge']"/>
+    </ownedDiagramElements>
     <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']"/>
     <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_mk6CauvUEee8hp_7KJuBdw"/>
     <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.cmf.occi.core.design/description/OCCIware.odesign#//@ownedViewpoints[name='OCCI%20Extension']/@ownedRepresentations[name='Extension%20diagram']/@defaultLayer"/>
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/Availabilityzone.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/Availabilityzone.java
index 758a4ef..99cd427 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/Availabilityzone.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/Availabilityzone.java
@@ -12,17 +12,17 @@
  */
 package org.eclipse.cmf.occi.multicloud.regions;
 
-import java.util.Map;
-
-import org.eclipse.cmf.occi.core.MixinBase;
-
-import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.cmf.occi.core.Resource;
 
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Availabilityzone</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <!-- begin-model-doc -->
+ * 
+ * <!-- end-model-doc -->
+ *
  * <p>
  * The following features are supported:
  * </p>
@@ -33,11 +33,10 @@
  * </ul>
  *
  * @see org.eclipse.cmf.occi.multicloud.regions.RegionsPackage#getAvailabilityzone()
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='appliesConstraint'"
- *        annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot appliesConstraint='self.entity.oclIsKindOf(regions::Region)'"
+ * @model
  * @generated
  */
-public interface Availabilityzone extends MixinBase {
+public interface Availabilityzone extends Resource {
 	/**
 	 * Returns the value of the '<em><b>Zone Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/Availabilityzonelink.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/Availabilityzonelink.java
new file mode 100644
index 0000000..f60dc04
--- /dev/null
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/Availabilityzonelink.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2015-2017 Obeo, Inria
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 	
+ * Contributors:
+ * - William Piers <william.piers@obeo.fr>
+ * - Philippe Merle <philippe.merle@inria.fr>
+ * - Faiez Zalila <faiez.zalila@inria.fr>
+ */
+package org.eclipse.cmf.occi.multicloud.regions;
+
+import org.eclipse.cmf.occi.core.Link;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Availabilityzonelink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * 
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.cmf.occi.multicloud.regions.RegionsPackage#getAvailabilityzonelink()
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='sourceConstraint'"
+ *        annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot sourceConstraint='self.source.oclIsKindOf(regions::Availabilityzone)'"
+ * @generated
+ */
+public interface Availabilityzonelink extends Link {
+} // Availabilityzonelink
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/RegionsFactory.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/RegionsFactory.java
index 8cf2ce0..09aae2e 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/RegionsFactory.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/RegionsFactory.java
@@ -58,6 +58,15 @@ public interface RegionsFactory extends EFactory {
 	 */
 	Availabilityzone createAvailabilityzone();
 
+	/**
+	 * Returns a new object of class '<em>Availabilityzonelink</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Availabilityzonelink</em>'.
+	 * @generated
+	 */
+	Availabilityzonelink createAvailabilityzonelink();
+
 	/**
 	 * Returns a new object of class '<em>Europe</em>'.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/RegionsPackage.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/RegionsPackage.java
index 34f1723..8c40bd4 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/RegionsPackage.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/RegionsPackage.java
@@ -434,22 +434,40 @@ public interface RegionsPackage extends EPackage {
 	int AVAILABILITYZONE = 2;
 
 	/**
-	 * The feature id for the '<em><b>Mixin</b></em>' reference.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int AVAILABILITYZONE__MIXIN = OCCIPackage.MIXIN_BASE__MIXIN;
+	int AVAILABILITYZONE__ID = OCCIPackage.RESOURCE__ID;
 
 	/**
-	 * The feature id for the '<em><b>Entity</b></em>' container reference.
+	 * The feature id for the '<em><b>Title</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE__TITLE = OCCIPackage.RESOURCE__TITLE;
+
+	/**
+	 * The feature id for the '<em><b>Kind</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int AVAILABILITYZONE__ENTITY = OCCIPackage.MIXIN_BASE__ENTITY;
+	int AVAILABILITYZONE__KIND = OCCIPackage.RESOURCE__KIND;
+
+	/**
+	 * The feature id for the '<em><b>Location</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE__LOCATION = OCCIPackage.RESOURCE__LOCATION;
 
 	/**
 	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
@@ -458,7 +476,52 @@ public interface RegionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int AVAILABILITYZONE__ATTRIBUTES = OCCIPackage.MIXIN_BASE__ATTRIBUTES;
+	int AVAILABILITYZONE__ATTRIBUTES = OCCIPackage.RESOURCE__ATTRIBUTES;
+
+	/**
+	 * The feature id for the '<em><b>Mixins</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE__MIXINS = OCCIPackage.RESOURCE__MIXINS;
+
+	/**
+	 * The feature id for the '<em><b>Parts</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE__PARTS = OCCIPackage.RESOURCE__PARTS;
+
+	/**
+	 * The feature id for the '<em><b>Summary</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE__SUMMARY = OCCIPackage.RESOURCE__SUMMARY;
+
+	/**
+	 * The feature id for the '<em><b>Links</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE__LINKS = OCCIPackage.RESOURCE__LINKS;
+
+	/**
+	 * The feature id for the '<em><b>Rlinks</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE__RLINKS = OCCIPackage.RESOURCE__RLINKS;
 
 	/**
 	 * The feature id for the '<em><b>Zone Name</b></em>' attribute.
@@ -467,7 +530,7 @@ public interface RegionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int AVAILABILITYZONE__ZONE_NAME = OCCIPackage.MIXIN_BASE_FEATURE_COUNT + 0;
+	int AVAILABILITYZONE__ZONE_NAME = OCCIPackage.RESOURCE_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Zone Message</b></em>' attribute.
@@ -476,7 +539,7 @@ public interface RegionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int AVAILABILITYZONE__ZONE_MESSAGE = OCCIPackage.MIXIN_BASE_FEATURE_COUNT + 1;
+	int AVAILABILITYZONE__ZONE_MESSAGE = OCCIPackage.RESOURCE_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Available</b></em>' attribute.
@@ -485,7 +548,7 @@ public interface RegionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int AVAILABILITYZONE__AVAILABLE = OCCIPackage.MIXIN_BASE_FEATURE_COUNT + 2;
+	int AVAILABILITYZONE__AVAILABLE = OCCIPackage.RESOURCE_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Availabilityzone</em>' class.
@@ -494,7 +557,43 @@ public interface RegionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int AVAILABILITYZONE_FEATURE_COUNT = OCCIPackage.MIXIN_BASE_FEATURE_COUNT + 3;
+	int AVAILABILITYZONE_FEATURE_COUNT = OCCIPackage.RESOURCE_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Occi Create</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE___OCCI_CREATE = OCCIPackage.RESOURCE___OCCI_CREATE;
+
+	/**
+	 * The operation id for the '<em>Occi Retrieve</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE___OCCI_RETRIEVE = OCCIPackage.RESOURCE___OCCI_RETRIEVE;
+
+	/**
+	 * The operation id for the '<em>Occi Update</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE___OCCI_UPDATE = OCCIPackage.RESOURCE___OCCI_UPDATE;
+
+	/**
+	 * The operation id for the '<em>Occi Delete</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONE___OCCI_DELETE = OCCIPackage.RESOURCE___OCCI_DELETE;
 
 	/**
 	 * The number of operations of the '<em>Availabilityzone</em>' class.
@@ -503,8 +602,171 @@ public interface RegionsPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int AVAILABILITYZONE_OPERATION_COUNT = OCCIPackage.MIXIN_BASE_OPERATION_COUNT + 0;
+	int AVAILABILITYZONE_OPERATION_COUNT = OCCIPackage.RESOURCE_OPERATION_COUNT + 0;
+
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.cmf.occi.multicloud.regions.impl.AvailabilityzonelinkImpl <em>Availabilityzonelink</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.cmf.occi.multicloud.regions.impl.AvailabilityzonelinkImpl
+	 * @see org.eclipse.cmf.occi.multicloud.regions.impl.RegionsPackageImpl#getAvailabilityzonelink()
+	 * @generated
+	 */
+	int AVAILABILITYZONELINK = 3;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__ID = OCCIPackage.LINK__ID;
+
+	/**
+	 * The feature id for the '<em><b>Title</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__TITLE = OCCIPackage.LINK__TITLE;
+
+	/**
+	 * The feature id for the '<em><b>Kind</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__KIND = OCCIPackage.LINK__KIND;
+
+	/**
+	 * The feature id for the '<em><b>Location</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__LOCATION = OCCIPackage.LINK__LOCATION;
+
+	/**
+	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__ATTRIBUTES = OCCIPackage.LINK__ATTRIBUTES;
+
+	/**
+	 * The feature id for the '<em><b>Mixins</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__MIXINS = OCCIPackage.LINK__MIXINS;
+
+	/**
+	 * The feature id for the '<em><b>Parts</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__PARTS = OCCIPackage.LINK__PARTS;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__SOURCE = OCCIPackage.LINK__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Target</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK__TARGET = OCCIPackage.LINK__TARGET;
+
+	/**
+	 * The number of structural features of the '<em>Availabilityzonelink</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK_FEATURE_COUNT = OCCIPackage.LINK_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Occi Create</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK___OCCI_CREATE = OCCIPackage.LINK___OCCI_CREATE;
 
+	/**
+	 * The operation id for the '<em>Occi Retrieve</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK___OCCI_RETRIEVE = OCCIPackage.LINK___OCCI_RETRIEVE;
+
+	/**
+	 * The operation id for the '<em>Occi Update</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK___OCCI_UPDATE = OCCIPackage.LINK___OCCI_UPDATE;
+
+	/**
+	 * The operation id for the '<em>Occi Delete</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK___OCCI_DELETE = OCCIPackage.LINK___OCCI_DELETE;
+
+	/**
+	 * The operation id for the '<em>Link Target Invariant</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK___LINK_TARGET_INVARIANT__KIND_KIND = OCCIPackage.LINK___LINK_TARGET_INVARIANT__KIND_KIND;
+
+	/**
+	 * The operation id for the '<em>Link Source Invariant</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK___LINK_SOURCE_INVARIANT__KIND_KIND = OCCIPackage.LINK___LINK_SOURCE_INVARIANT__KIND_KIND;
+
+	/**
+	 * The number of operations of the '<em>Availabilityzonelink</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AVAILABILITYZONELINK_OPERATION_COUNT = OCCIPackage.LINK_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.cmf.occi.multicloud.regions.impl.EuropeImpl <em>Europe</em>}' class.
@@ -514,7 +776,7 @@ public interface RegionsPackage extends EPackage {
 	 * @see org.eclipse.cmf.occi.multicloud.regions.impl.RegionsPackageImpl#getEurope()
 	 * @generated
 	 */
-	int EUROPE = 3;
+	int EUROPE = 4;
 
 	/**
 	 * The feature id for the '<em><b>Mixin</b></em>' reference.
@@ -569,7 +831,7 @@ public interface RegionsPackage extends EPackage {
 	 * @see org.eclipse.cmf.occi.multicloud.regions.impl.RegionsPackageImpl#getNorthamerica()
 	 * @generated
 	 */
-	int NORTHAMERICA = 4;
+	int NORTHAMERICA = 5;
 
 	/**
 	 * The feature id for the '<em><b>Mixin</b></em>' reference.
@@ -624,7 +886,7 @@ public interface RegionsPackage extends EPackage {
 	 * @see org.eclipse.cmf.occi.multicloud.regions.impl.RegionsPackageImpl#getSouthamerica()
 	 * @generated
 	 */
-	int SOUTHAMERICA = 5;
+	int SOUTHAMERICA = 6;
 
 	/**
 	 * The feature id for the '<em><b>Mixin</b></em>' reference.
@@ -679,7 +941,7 @@ public interface RegionsPackage extends EPackage {
 	 * @see org.eclipse.cmf.occi.multicloud.regions.impl.RegionsPackageImpl#getAsiapacific()
 	 * @generated
 	 */
-	int ASIAPACIFIC = 6;
+	int ASIAPACIFIC = 7;
 
 	/**
 	 * The feature id for the '<em><b>Mixin</b></em>' reference.
@@ -734,7 +996,7 @@ public interface RegionsPackage extends EPackage {
 	 * @see org.eclipse.cmf.occi.multicloud.regions.impl.RegionsPackageImpl#getAfrica()
 	 * @generated
 	 */
-	int AFRICA = 7;
+	int AFRICA = 8;
 
 	/**
 	 * The feature id for the '<em><b>Mixin</b></em>' reference.
@@ -790,7 +1052,7 @@ public interface RegionsPackage extends EPackage {
 	 * @see org.eclipse.cmf.occi.multicloud.regions.impl.RegionsPackageImpl#getChina()
 	 * @generated
 	 */
-	int CHINA = 8;
+	int CHINA = 9;
 
 	/**
 	 * The feature id for the '<em><b>Mixin</b></em>' reference.
@@ -945,6 +1207,16 @@ public interface RegionsPackage extends EPackage {
 	 */
 	EAttribute getAvailabilityzone_Available();
 
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink <em>Availabilityzonelink</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Availabilityzonelink</em>'.
+	 * @see org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink
+	 * @generated
+	 */
+	EClass getAvailabilityzonelink();
+
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.cmf.occi.multicloud.regions.Europe <em>Europe</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1114,6 +1386,16 @@ interface Literals {
 		 */
 		EAttribute AVAILABILITYZONE__AVAILABLE = eINSTANCE.getAvailabilityzone_Available();
 
+		/**
+		 * The meta object literal for the '{@link org.eclipse.cmf.occi.multicloud.regions.impl.AvailabilityzonelinkImpl <em>Availabilityzonelink</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.cmf.occi.multicloud.regions.impl.AvailabilityzonelinkImpl
+		 * @see org.eclipse.cmf.occi.multicloud.regions.impl.RegionsPackageImpl#getAvailabilityzonelink()
+		 * @generated
+		 */
+		EClass AVAILABILITYZONELINK = eINSTANCE.getAvailabilityzonelink();
+
 		/**
 		 * The meta object literal for the '{@link org.eclipse.cmf.occi.multicloud.regions.impl.EuropeImpl <em>Europe</em>}' class.
 		 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/AvailabilityzoneImpl.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/AvailabilityzoneImpl.java
index 3e9bf5e..dd501b4 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/AvailabilityzoneImpl.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/AvailabilityzoneImpl.java
@@ -20,6 +20,7 @@
 
 import org.eclipse.cmf.occi.core.impl.MixinBaseImpl;
 
+import org.eclipse.cmf.occi.core.impl.ResourceImpl;
 import org.eclipse.cmf.occi.multicloud.regions.Availabilityzone;
 import org.eclipse.cmf.occi.multicloud.regions.RegionsPackage;
 import org.eclipse.cmf.occi.multicloud.regions.RegionsTables;
@@ -65,7 +66,7 @@
  *
  * @generated
  */
-public class AvailabilityzoneImpl extends MixinBaseImpl implements Availabilityzone {
+public class AvailabilityzoneImpl extends ResourceImpl implements Availabilityzone {
 	/**
 	 * The default value of the '{@link #getZoneName() <em>Zone Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/AvailabilityzonelinkImpl.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/AvailabilityzonelinkImpl.java
new file mode 100644
index 0000000..a56c2e4
--- /dev/null
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/AvailabilityzonelinkImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2015-2017 Obeo, Inria
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 	
+ * Contributors:
+ * - William Piers <william.piers@obeo.fr>
+ * - Philippe Merle <philippe.merle@inria.fr>
+ * - Faiez Zalila <faiez.zalila@inria.fr>
+ */
+package org.eclipse.cmf.occi.multicloud.regions.impl;
+
+import org.eclipse.cmf.occi.core.impl.LinkImpl;
+
+import org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink;
+import org.eclipse.cmf.occi.multicloud.regions.RegionsPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Availabilityzonelink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AvailabilityzonelinkImpl extends LinkImpl implements Availabilityzonelink {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AvailabilityzonelinkImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return RegionsPackage.Literals.AVAILABILITYZONELINK;
+	}
+
+} //AvailabilityzonelinkImpl
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/RegionsFactoryImpl.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/RegionsFactoryImpl.java
index 94c2739..a282e3e 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/RegionsFactoryImpl.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/RegionsFactoryImpl.java
@@ -69,6 +69,7 @@ public EObject create(EClass eClass) {
 			case RegionsPackage.REGION: return createRegion();
 			case RegionsPackage.REGIONLINK: return createRegionlink();
 			case RegionsPackage.AVAILABILITYZONE: return createAvailabilityzone();
+			case RegionsPackage.AVAILABILITYZONELINK: return createAvailabilityzonelink();
 			case RegionsPackage.EUROPE: return createEurope();
 			case RegionsPackage.NORTHAMERICA: return createNorthamerica();
 			case RegionsPackage.SOUTHAMERICA: return createSouthamerica();
@@ -110,6 +111,16 @@ public Availabilityzone createAvailabilityzone() {
 		return availabilityzone;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Availabilityzonelink createAvailabilityzonelink() {
+		AvailabilityzonelinkImpl availabilityzonelink = new AvailabilityzonelinkImpl();
+		return availabilityzonelink;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/RegionsPackageImpl.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/RegionsPackageImpl.java
index 216e897..edb484d 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/RegionsPackageImpl.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/impl/RegionsPackageImpl.java
@@ -17,6 +17,7 @@
 import org.eclipse.cmf.occi.multicloud.regions.Africa;
 import org.eclipse.cmf.occi.multicloud.regions.Asiapacific;
 import org.eclipse.cmf.occi.multicloud.regions.Availabilityzone;
+import org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink;
 import org.eclipse.cmf.occi.multicloud.regions.China;
 import org.eclipse.cmf.occi.multicloud.regions.Europe;
 import org.eclipse.cmf.occi.multicloud.regions.Northamerica;
@@ -65,6 +66,13 @@ public class RegionsPackageImpl extends EPackageImpl implements RegionsPackage {
 	 */
 	private EClass availabilityzoneEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass availabilityzonelinkEClass = null;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -270,6 +278,15 @@ public EAttribute getAvailabilityzone_Available() {
 		return (EAttribute)availabilityzoneEClass.getEStructuralFeatures().get(2);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAvailabilityzonelink() {
+		return availabilityzonelinkEClass;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -365,6 +382,8 @@ public void createPackageContents() {
 		createEAttribute(availabilityzoneEClass, AVAILABILITYZONE__ZONE_MESSAGE);
 		createEAttribute(availabilityzoneEClass, AVAILABILITYZONE__AVAILABLE);
 
+		availabilityzonelinkEClass = createEClass(AVAILABILITYZONELINK);
+
 		europeEClass = createEClass(EUROPE);
 
 		northamericaEClass = createEClass(NORTHAMERICA);
@@ -411,7 +430,8 @@ public void initializePackageContents() {
 		// Add supertypes to classes
 		regionEClass.getESuperTypes().add(theOCCIPackage.getResource());
 		regionlinkEClass.getESuperTypes().add(theOCCIPackage.getLink());
-		availabilityzoneEClass.getESuperTypes().add(theOCCIPackage.getMixinBase());
+		availabilityzoneEClass.getESuperTypes().add(theOCCIPackage.getResource());
+		availabilityzonelinkEClass.getESuperTypes().add(theOCCIPackage.getLink());
 		europeEClass.getESuperTypes().add(theOCCIPackage.getMixinBase());
 		northamericaEClass.getESuperTypes().add(theOCCIPackage.getMixinBase());
 		southamericaEClass.getESuperTypes().add(theOCCIPackage.getMixinBase());
@@ -433,6 +453,8 @@ public void initializePackageContents() {
 		initEAttribute(getAvailabilityzone_ZoneMessage(), theOCCIPackage.getString(), "zoneMessage", null, 0, 1, Availabilityzone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getAvailabilityzone_Available(), theOCCIPackage.getBoolean(), "available", "true", 0, 1, Availabilityzone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(availabilityzonelinkEClass, Availabilityzonelink.class, "Availabilityzonelink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
 		initEClass(europeEClass, Europe.class, "Europe", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(northamericaEClass, Northamerica.class, "Northamerica", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -480,10 +502,10 @@ protected void createEcoreAnnotations() {
 			 "constraints", "sourceConstraint"
 		   });	
 		addAnnotation
-		  (availabilityzoneEClass, 
+		  (availabilityzonelinkEClass, 
 		   source, 
 		   new String[] {
-			 "constraints", "appliesConstraint"
+			 "constraints", "sourceConstraint"
 		   });	
 		addAnnotation
 		  (europeEClass, 
@@ -554,10 +576,10 @@ protected void createPivotAnnotations() {
 			 "sourceConstraint", "self.source.oclIsKindOf(regions::Region)"
 		   });	
 		addAnnotation
-		  (availabilityzoneEClass, 
+		  (availabilityzonelinkEClass, 
 		   source, 
 		   new String[] {
-			 "appliesConstraint", "self.entity.oclIsKindOf(regions::Region)"
+			 "sourceConstraint", "self.source.oclIsKindOf(regions::Availabilityzone)"
 		   });	
 		addAnnotation
 		  (europeEClass, 
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsAdapterFactory.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsAdapterFactory.java
index 0af1403..397b3bd 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsAdapterFactory.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsAdapterFactory.java
@@ -95,6 +95,10 @@ public Adapter caseAvailabilityzone(Availabilityzone object) {
 				return createAvailabilityzoneAdapter();
 			}
 			@Override
+			public Adapter caseAvailabilityzonelink(Availabilityzonelink object) {
+				return createAvailabilityzonelinkAdapter();
+			}
+			@Override
 			public Adapter caseEurope(Europe object) {
 				return createEuropeAdapter();
 			}
@@ -196,6 +200,20 @@ public Adapter createAvailabilityzoneAdapter() {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink <em>Availabilityzonelink</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.cmf.occi.multicloud.regions.Availabilityzonelink
+	 * @generated
+	 */
+	public Adapter createAvailabilityzonelinkAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.cmf.occi.multicloud.regions.Europe <em>Europe</em>}'.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsSwitch.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsSwitch.java
index 43a8ed5..7628287 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsSwitch.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsSwitch.java
@@ -100,7 +100,16 @@ protected T doSwitch(int classifierID, EObject theEObject) {
 			case RegionsPackage.AVAILABILITYZONE: {
 				Availabilityzone availabilityzone = (Availabilityzone)theEObject;
 				T result = caseAvailabilityzone(availabilityzone);
-				if (result == null) result = caseMixinBase(availabilityzone);
+				if (result == null) result = caseResource(availabilityzone);
+				if (result == null) result = caseEntity(availabilityzone);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case RegionsPackage.AVAILABILITYZONELINK: {
+				Availabilityzonelink availabilityzonelink = (Availabilityzonelink)theEObject;
+				T result = caseAvailabilityzonelink(availabilityzonelink);
+				if (result == null) result = caseLink(availabilityzonelink);
+				if (result == null) result = caseEntity(availabilityzonelink);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -195,6 +204,21 @@ public T caseAvailabilityzone(Availabilityzone object) {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Availabilityzonelink</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Availabilityzonelink</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAvailabilityzonelink(Availabilityzonelink object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Europe</em>'.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsValidator.java b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsValidator.java
index 8f8eeea..795ebfa 100644
--- a/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsValidator.java
+++ b/plugins/org.eclipse.cmf.occi.multicloud.regions/src-gen/org/eclipse/cmf/occi/multicloud/regions/util/RegionsValidator.java
@@ -112,6 +112,8 @@ protected boolean validate(int classifierID, Object value, DiagnosticChain diagn
 				return validateRegionlink((Regionlink)value, diagnostics, context);
 			case RegionsPackage.AVAILABILITYZONE:
 				return validateAvailabilityzone((Availabilityzone)value, diagnostics, context);
+			case RegionsPackage.AVAILABILITYZONELINK:
+				return validateAvailabilityzonelink((Availabilityzonelink)value, diagnostics, context);
 			case RegionsPackage.EUROPE:
 				return validateEurope((Europe)value, diagnostics, context);
 			case RegionsPackage.NORTHAMERICA:
@@ -222,34 +224,64 @@ public boolean validateAvailabilityzone(Availabilityzone availabilityzone, Diagn
 		if (result || diagnostics != null) result &= validate_UniqueID(availabilityzone, diagnostics, context);
 		if (result || diagnostics != null) result &= validate_EveryKeyUnique(availabilityzone, diagnostics, context);
 		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(availabilityzone, diagnostics, context);
-		if (result || diagnostics != null) result &= validateAvailabilityzone_appliesConstraint(availabilityzone, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateEntity_IdUnique(availabilityzone, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateEntity_AttributesNameUnique(availabilityzone, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateEntity_KindCompatibleWithOneAppliesOfEachMixin(availabilityzone, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateEntity_DifferentMixins(availabilityzone, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateResource_ResourceKindIsInParent(availabilityzone, diagnostics, context);
 		return result;
 	}
 
 	/**
-	 * The cached validation expression for the appliesConstraint constraint of '<em>Availabilityzone</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected static final String AVAILABILITYZONE__APPLIES_CONSTRAINT__EEXPRESSION = "self.entity.oclIsKindOf(regions::Region)";
+	public boolean validateAvailabilityzonelink(Availabilityzonelink availabilityzonelink, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		if (!validate_NoCircularContainment(availabilityzonelink, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateEntity_IdUnique(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateEntity_AttributesNameUnique(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateEntity_KindCompatibleWithOneAppliesOfEachMixin(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateEntity_DifferentMixins(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateLink_LinkKindIsInParent(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateLink_sourceReferenceInvariant(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= occiValidator.validateLink_targetReferenceInvariant(availabilityzonelink, diagnostics, context);
+		if (result || diagnostics != null) result &= validateAvailabilityzonelink_sourceConstraint(availabilityzonelink, diagnostics, context);
+		return result;
+	}
+
+	/**
+	 * The cached validation expression for the sourceConstraint constraint of '<em>Availabilityzonelink</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static final String AVAILABILITYZONELINK__SOURCE_CONSTRAINT__EEXPRESSION = "self.source.oclIsKindOf(regions::Availabilityzone)";
 
 	/**
-	 * Validates the appliesConstraint constraint of '<em>Availabilityzone</em>'.
+	 * Validates the sourceConstraint constraint of '<em>Availabilityzonelink</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean validateAvailabilityzone_appliesConstraint(Availabilityzone availabilityzone, DiagnosticChain diagnostics, Map<Object, Object> context) {
+	public boolean validateAvailabilityzonelink_sourceConstraint(Availabilityzonelink availabilityzonelink, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return
 			validate
-				(RegionsPackage.Literals.AVAILABILITYZONE,
-				 availabilityzone,
+				(RegionsPackage.Literals.AVAILABILITYZONELINK,
+				 availabilityzonelink,
 				 diagnostics,
 				 context,
 				 "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
-				 "appliesConstraint",
-				 AVAILABILITYZONE__APPLIES_CONSTRAINT__EEXPRESSION,
+				 "sourceConstraint",
+				 AVAILABILITYZONELINK__SOURCE_CONSTRAINT__EEXPRESSION,
 				 Diagnostic.ERROR,
 				 DIAGNOSTIC_SOURCE,
 				 0);