diff --git a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java
index fa74d7c132eb2753ee941f5eacca7a564424288e..a605e30de68ae66866a78d53863412937ceea890 100644
--- a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java
+++ b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java
@@ -181,6 +181,10 @@ public final class ContextOuterClass {
      * <code>DEVICEDRIVER_IETF_L2VPN = 7;</code>
      */
     DEVICEDRIVER_IETF_L2VPN(7),
+    /**
+     * <code>DEVICEDRIVER_GNMI_OPENCONFIG = 8;</code>
+     */
+    DEVICEDRIVER_GNMI_OPENCONFIG(8),
     UNRECOGNIZED(-1),
     ;
 
@@ -220,6 +224,10 @@ public final class ContextOuterClass {
      * <code>DEVICEDRIVER_IETF_L2VPN = 7;</code>
      */
     public static final int DEVICEDRIVER_IETF_L2VPN_VALUE = 7;
+    /**
+     * <code>DEVICEDRIVER_GNMI_OPENCONFIG = 8;</code>
+     */
+    public static final int DEVICEDRIVER_GNMI_OPENCONFIG_VALUE = 8;
 
 
     public final int getNumber() {
@@ -254,6 +262,7 @@ public final class ContextOuterClass {
         case 5: return DEVICEDRIVER_ONF_TR_352;
         case 6: return DEVICEDRIVER_XR;
         case 7: return DEVICEDRIVER_IETF_L2VPN;
+        case 8: return DEVICEDRIVER_GNMI_OPENCONFIG;
         default: return null;
       }
     }
@@ -962,6 +971,127 @@ public final class ContextOuterClass {
     // @@protoc_insertion_point(enum_scope:context.ConfigActionEnum)
   }
 
+  /**
+   * <pre>
+   * ----- Constraint ----------------------------------------------------------------------------------------------------
+   * </pre>
+   *
+   * Protobuf enum {@code context.ConstraintActionEnum}
+   */
+  public enum ConstraintActionEnum
+      implements com.google.protobuf.ProtocolMessageEnum {
+    /**
+     * <code>CONSTRAINTACTION_UNDEFINED = 0;</code>
+     */
+    CONSTRAINTACTION_UNDEFINED(0),
+    /**
+     * <code>CONSTRAINTACTION_SET = 1;</code>
+     */
+    CONSTRAINTACTION_SET(1),
+    /**
+     * <code>CONSTRAINTACTION_DELETE = 2;</code>
+     */
+    CONSTRAINTACTION_DELETE(2),
+    UNRECOGNIZED(-1),
+    ;
+
+    /**
+     * <code>CONSTRAINTACTION_UNDEFINED = 0;</code>
+     */
+    public static final int CONSTRAINTACTION_UNDEFINED_VALUE = 0;
+    /**
+     * <code>CONSTRAINTACTION_SET = 1;</code>
+     */
+    public static final int CONSTRAINTACTION_SET_VALUE = 1;
+    /**
+     * <code>CONSTRAINTACTION_DELETE = 2;</code>
+     */
+    public static final int CONSTRAINTACTION_DELETE_VALUE = 2;
+
+
+    public final int getNumber() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalArgumentException(
+            "Can't get the number of an unknown enum value.");
+      }
+      return value;
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     * @deprecated Use {@link #forNumber(int)} instead.
+     */
+    @java.lang.Deprecated
+    public static ConstraintActionEnum valueOf(int value) {
+      return forNumber(value);
+    }
+
+    /**
+     * @param value The numeric wire value of the corresponding enum entry.
+     * @return The enum associated with the given numeric wire value.
+     */
+    public static ConstraintActionEnum forNumber(int value) {
+      switch (value) {
+        case 0: return CONSTRAINTACTION_UNDEFINED;
+        case 1: return CONSTRAINTACTION_SET;
+        case 2: return CONSTRAINTACTION_DELETE;
+        default: return null;
+      }
+    }
+
+    public static com.google.protobuf.Internal.EnumLiteMap<ConstraintActionEnum>
+        internalGetValueMap() {
+      return internalValueMap;
+    }
+    private static final com.google.protobuf.Internal.EnumLiteMap<
+        ConstraintActionEnum> internalValueMap =
+          new com.google.protobuf.Internal.EnumLiteMap<ConstraintActionEnum>() {
+            public ConstraintActionEnum findValueByNumber(int number) {
+              return ConstraintActionEnum.forNumber(number);
+            }
+          };
+
+    public final com.google.protobuf.Descriptors.EnumValueDescriptor
+        getValueDescriptor() {
+      if (this == UNRECOGNIZED) {
+        throw new java.lang.IllegalStateException(
+            "Can't get the descriptor of an unrecognized enum value.");
+      }
+      return getDescriptor().getValues().get(ordinal());
+    }
+    public final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptorForType() {
+      return getDescriptor();
+    }
+    public static final com.google.protobuf.Descriptors.EnumDescriptor
+        getDescriptor() {
+      return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7);
+    }
+
+    private static final ConstraintActionEnum[] VALUES = values();
+
+    public static ConstraintActionEnum valueOf(
+        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+      if (desc.getType() != getDescriptor()) {
+        throw new java.lang.IllegalArgumentException(
+          "EnumValueDescriptor is not for this type.");
+      }
+      if (desc.getIndex() == -1) {
+        return UNRECOGNIZED;
+      }
+      return VALUES[desc.getIndex()];
+    }
+
+    private final int value;
+
+    private ConstraintActionEnum(int value) {
+      this.value = value;
+    }
+
+    // @@protoc_insertion_point(enum_scope:context.ConstraintActionEnum)
+  }
+
   /**
    * Protobuf enum {@code context.IsolationLevelEnum}
    */
@@ -1107,7 +1237,7 @@ public final class ContextOuterClass {
     }
     public static final com.google.protobuf.Descriptors.EnumDescriptor
         getDescriptor() {
-      return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7);
+      return context.ContextOuterClass.getDescriptor().getEnumTypes().get(8);
     }
 
     private static final IsolationLevelEnum[] VALUES = values();
@@ -11075,9 +11205,6 @@ public final class ContextOuterClass {
         return s;
       }
     }
-
-    public static final int NAME_FIELD_NUMBER = 2;
-    private volatile java.lang.Object name_;
     /**
      * <code>string name = 2;</code>
      * @return The bytes for name.
@@ -24641,15 +24768,11 @@ public final class ContextOuterClass {
           final com.google.protobuf.UnknownFieldSet unknownFields) {
         return super.setUnknownFields(unknownFields);
       }
-      /**
-       * <code>.context.DeviceOperationalStatusEnum device_operational_status = 5;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearDeviceOperationalStatus() {
-        
-        deviceOperationalStatus_ = 0;
-        onChanged();
-        return this;
+
+      @java.lang.Override
+      public final Builder mergeUnknownFields(
+          final com.google.protobuf.UnknownFieldSet unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
       }
 
 
@@ -24757,6 +24880,7 @@ public final class ContextOuterClass {
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
+      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -25205,9 +25329,6 @@ public final class ContextOuterClass {
       private com.google.protobuf.RepeatedFieldBuilderV3<
           context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> linkIdsBuilder_;
 
-      private context.ContextOuterClass.Uuid linkUuid_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> linkUuidBuilder_;
       /**
        * <code>repeated .context.LinkId link_ids = 1;</code>
        */
@@ -25267,7 +25388,6 @@ public final class ContextOuterClass {
         } else {
           linkIdsBuilder_.setMessage(index, builderForValue.build());
         }
-
         return this;
       }
       /**
@@ -25284,7 +25404,6 @@ public final class ContextOuterClass {
         } else {
           linkIdsBuilder_.addMessage(value);
         }
-
         return this;
       }
       /**
@@ -25358,7 +25477,6 @@ public final class ContextOuterClass {
         } else {
           linkIdsBuilder_.clear();
         }
-
         return this;
       }
       /**
@@ -25372,7 +25490,6 @@ public final class ContextOuterClass {
         } else {
           linkIdsBuilder_.remove(index);
         }
-
         return this;
       }
       /**
@@ -25568,25 +25685,6 @@ public final class ContextOuterClass {
               done = true;
               break;
             case 10: {
-              context.ContextOuterClass.LinkId.Builder subBuilder = null;
-              if (linkId_ != null) {
-                subBuilder = linkId_.toBuilder();
-              }
-              linkId_ = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry);
-              if (subBuilder != null) {
-                subBuilder.mergeFrom(linkId_);
-                linkId_ = subBuilder.buildPartial();
-              }
-
-              break;
-            }
-            case 18: {
-              java.lang.String s = input.readStringRequireUtf8();
-
-              name_ = s;
-              break;
-            }
-            case 26: {
               if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                 links_ = new java.util.ArrayList<context.ContextOuterClass.Link>();
                 mutable_bitField0_ |= 0x00000001;
@@ -25654,9 +25752,6 @@ public final class ContextOuterClass {
     public int getLinksCount() {
       return links_.size();
     }
-
-    public static final int NAME_FIELD_NUMBER = 2;
-    private volatile java.lang.Object name_;
     /**
      * <code>repeated .context.Link links = 1;</code>
      */
@@ -25911,7 +26006,8 @@ public final class ContextOuterClass {
         } else {
           result.links_ = linksBuilder_.build();
         }
-        return linkIdBuilder_;
+        onBuilt();
+        return result;
       }
 
       @java.lang.Override
@@ -25951,7 +26047,8 @@ public final class ContextOuterClass {
         if (other instanceof context.ContextOuterClass.LinkList) {
           return mergeFrom((context.ContextOuterClass.LinkList)other);
         } else {
-          return (java.lang.String) ref;
+          super.mergeFrom(other);
+          return this;
         }
       }
 
@@ -25983,31 +26080,14 @@ public final class ContextOuterClass {
             }
           }
         }
-      }
-      /**
-       * <code>string name = 2;</code>
-       * @param value The name to set.
-       * @return This builder for chaining.
-       */
-      public Builder setName(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        name_ = value;
+        this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
       }
-      /**
-       * <code>string name = 2;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearName() {
-        
-        name_ = getDefaultInstance().getName();
-        onChanged();
-        return this;
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
       }
 
       @java.lang.Override
@@ -26028,6 +26108,7 @@ public final class ContextOuterClass {
         }
         return this;
       }
+      private int bitField0_;
 
       private java.util.List<context.ContextOuterClass.Link> links_ =
         java.util.Collections.emptyList();
@@ -26390,7 +26471,6 @@ public final class ContextOuterClass {
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
-      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -26424,8 +26504,7 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom(linkId_);
                 linkId_ = subBuilder.buildPartial();
               }
-              linkIds_.add(
-                  input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry));
+
               break;
             }
             default: {
@@ -26478,9 +26557,12 @@ public final class ContextOuterClass {
     public context.ContextOuterClass.Event getEvent() {
       return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
     }
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return context.ContextOuterClass.internal_static_context_LinkIdList_descriptor;
+    /**
+     * <code>.context.Event event = 1;</code>
+     */
+    @java.lang.Override
+    public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() {
+      return getEvent();
     }
 
     public static final int LINK_ID_FIELD_NUMBER = 2;
@@ -26718,7 +26800,6 @@ public final class ContextOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
-          getLinkIdsFieldBuilder();
         }
       }
       @java.lang.Override
@@ -26854,38 +26935,122 @@ public final class ContextOuterClass {
         }
         return this;
       }
-      private int bitField0_;
 
-      private java.util.List<context.ContextOuterClass.LinkId> linkIds_ =
-        java.util.Collections.emptyList();
-      private void ensureLinkIdsIsMutable() {
-        if (!((bitField0_ & 0x00000001) != 0)) {
-          linkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(linkIds_);
-          bitField0_ |= 0x00000001;
-         }
+      private context.ContextOuterClass.Event event_;
+      private com.google.protobuf.SingleFieldBuilderV3<
+          context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_;
+      /**
+       * <code>.context.Event event = 1;</code>
+       * @return Whether the event field is set.
+       */
+      public boolean hasEvent() {
+        return eventBuilder_ != null || event_ != null;
       }
+      /**
+       * <code>.context.Event event = 1;</code>
+       * @return The event.
+       */
+      public context.ContextOuterClass.Event getEvent() {
+        if (eventBuilder_ == null) {
+          return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_;
+        } else {
+          return eventBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>.context.Event event = 1;</code>
+       */
+      public Builder setEvent(context.ContextOuterClass.Event value) {
+        if (eventBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          event_ = value;
+          onChanged();
+        } else {
+          eventBuilder_.setMessage(value);
+        }
 
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> linkIdsBuilder_;
+        return this;
+      }
+      /**
+       * <code>.context.Event event = 1;</code>
+       */
+      public Builder setEvent(
+          context.ContextOuterClass.Event.Builder builderForValue) {
+        if (eventBuilder_ == null) {
+          event_ = builderForValue.build();
+          onChanged();
+        } else {
+          eventBuilder_.setMessage(builderForValue.build());
+        }
 
+        return this;
+      }
       /**
-       * <code>repeated .context.LinkId link_ids = 1;</code>
+       * <code>.context.Event event = 1;</code>
        */
-      public java.util.List<context.ContextOuterClass.LinkId> getLinkIdsList() {
-        if (linkIdsBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(linkIds_);
+      public Builder mergeEvent(context.ContextOuterClass.Event value) {
+        if (eventBuilder_ == null) {
+          if (event_ != null) {
+            event_ =
+              context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial();
+          } else {
+            event_ = value;
+          }
+          onChanged();
         } else {
-          return linkIdsBuilder_.getMessageList();
+          eventBuilder_.mergeFrom(value);
         }
+
+        return this;
       }
       /**
-       * <code>repeated .context.LinkId link_ids = 1;</code>
+       * <code>.context.Event event = 1;</code>
        */
-      public int getLinkIdsCount() {
-        if (linkIdsBuilder_ == null) {
-          return linkIds_.size();
+      public Builder clearEvent() {
+        if (eventBuilder_ == null) {
+          event_ = null;
+          onChanged();
         } else {
-          return linkIdsBuilder_.getCount();
+          event_ = null;
+          eventBuilder_ = null;
+        }
+
+        return this;
+      }
+      /**
+       * <code>.context.Event event = 1;</code>
+       */
+      public context.ContextOuterClass.Event.Builder getEventBuilder() {
+        
+        onChanged();
+        return getEventFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>.context.Event event = 1;</code>
+       */
+      public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() {
+        if (eventBuilder_ != null) {
+          return eventBuilder_.getMessageOrBuilder();
+        } else {
+          return event_ == null ?
+              context.ContextOuterClass.Event.getDefaultInstance() : event_;
+        }
+      }
+      /**
+       * <code>.context.Event event = 1;</code>
+       */
+      private com.google.protobuf.SingleFieldBuilderV3<
+          context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> 
+          getEventFieldBuilder() {
+        if (eventBuilder_ == null) {
+          eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+              context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder>(
+                  getEvent(),
+                  getParentForChildren(),
+                  isClean());
+          event_ = null;
         }
         return eventBuilder_;
       }
@@ -26910,7 +27075,6 @@ public final class ContextOuterClass {
         } else {
           return linkIdBuilder_.getMessage();
         }
-        return this;
       }
       /**
        * <code>.context.LinkId link_id = 2;</code>
@@ -26925,6 +27089,7 @@ public final class ContextOuterClass {
         } else {
           linkIdBuilder_.setMessage(value);
         }
+
         return this;
       }
       /**
@@ -26938,6 +27103,7 @@ public final class ContextOuterClass {
         } else {
           linkIdBuilder_.setMessage(builderForValue.build());
         }
+
         return this;
       }
       /**
@@ -26955,6 +27121,7 @@ public final class ContextOuterClass {
         } else {
           linkIdBuilder_.mergeFrom(value);
         }
+
         return this;
       }
       /**
@@ -26968,6 +27135,7 @@ public final class ContextOuterClass {
           linkId_ = null;
           linkIdBuilder_ = null;
         }
+
         return this;
       }
       /**
@@ -27131,7 +27299,6 @@ public final class ContextOuterClass {
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
-      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -27165,8 +27332,7 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom(serviceUuid_);
                 serviceUuid_ = subBuilder.buildPartial();
               }
-              links_.add(
-                  input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry));
+
               break;
             }
             default: {
@@ -27184,9 +27350,6 @@ public final class ContextOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
-          links_ = java.util.Collections.unmodifiableList(links_);
-        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -27469,7 +27632,6 @@ public final class ContextOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
-          getLinksFieldBuilder();
         }
       }
       @java.lang.Override
@@ -27564,7 +27726,8 @@ public final class ContextOuterClass {
         if (other instanceof context.ContextOuterClass.ServiceId) {
           return mergeFrom((context.ContextOuterClass.ServiceId)other);
         } else {
-          return linksBuilder_.getCount();
+          super.mergeFrom(other);
+          return this;
         }
       }
 
@@ -27576,6 +27739,14 @@ public final class ContextOuterClass {
         if (other.hasServiceUuid()) {
           mergeServiceUuid(other.getServiceUuid());
         }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
       }
 
       @java.lang.Override
@@ -27593,11 +27764,6 @@ public final class ContextOuterClass {
           if (parsedMessage != null) {
             mergeFrom(parsedMessage);
           }
-          ensureLinksIsMutable();
-          links_.set(index, value);
-          onChanged();
-        } else {
-          linksBuilder_.setMessage(index, value);
         }
         return this;
       }
@@ -27741,7 +27907,6 @@ public final class ContextOuterClass {
         } else {
           return serviceUuidBuilder_.getMessage();
         }
-        return this;
       }
       /**
        * <code>.context.Uuid service_uuid = 2;</code>
@@ -27756,6 +27921,7 @@ public final class ContextOuterClass {
         } else {
           serviceUuidBuilder_.setMessage(value);
         }
+
         return this;
       }
       /**
@@ -27769,6 +27935,7 @@ public final class ContextOuterClass {
         } else {
           serviceUuidBuilder_.setMessage(builderForValue.build());
         }
+
         return this;
       }
       /**
@@ -27786,6 +27953,7 @@ public final class ContextOuterClass {
         } else {
           serviceUuidBuilder_.mergeFrom(value);
         }
+
         return this;
       }
       /**
@@ -27799,6 +27967,7 @@ public final class ContextOuterClass {
           serviceUuid_ = null;
           serviceUuidBuilder_ = null;
         }
+
         return this;
       }
       /**
@@ -27819,7 +27988,6 @@ public final class ContextOuterClass {
           return serviceUuid_ == null ?
               context.ContextOuterClass.Uuid.getDefaultInstance() : serviceUuid_;
         }
-        return this;
       }
       /**
        * <code>.context.Uuid service_uuid = 2;</code>
@@ -28064,6 +28232,7 @@ public final class ContextOuterClass {
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
+      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -28983,6 +29152,7 @@ public final class ContextOuterClass {
         }
         return this;
       }
+      private int bitField0_;
 
       private context.ContextOuterClass.ServiceId serviceId_;
       private com.google.protobuf.SingleFieldBuilderV3<
@@ -29304,7 +29474,6 @@ public final class ContextOuterClass {
         } else {
           serviceEndpointIdsBuilder_.setMessage(index, builderForValue.build());
         }
-
         return this;
       }
       /**
@@ -29321,7 +29490,6 @@ public final class ContextOuterClass {
         } else {
           serviceEndpointIdsBuilder_.addMessage(value);
         }
-
         return this;
       }
       /**
@@ -29395,7 +29563,6 @@ public final class ContextOuterClass {
         } else {
           serviceEndpointIdsBuilder_.clear();
         }
-
         return this;
       }
       /**
@@ -29409,7 +29576,6 @@ public final class ContextOuterClass {
         } else {
           serviceEndpointIdsBuilder_.remove(index);
         }
-
         return this;
       }
       /**
@@ -29965,10 +30131,6 @@ public final class ContextOuterClass {
       public boolean hasTimestamp() {
         return timestampBuilder_ != null || timestamp_ != null;
       }
-
-      private context.ContextOuterClass.Uuid serviceUuid_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> serviceUuidBuilder_;
       /**
        * <code>.context.Timestamp timestamp = 8;</code>
        * @return The timestamp.
@@ -30520,15 +30682,6 @@ public final class ContextOuterClass {
         if (other.serviceStatus_ != 0) {
           setServiceStatusValue(other.getServiceStatusValue());
         }
-        if (other.hasServiceStatus()) {
-          mergeServiceStatus(other.getServiceStatus());
-        }
-        if (other.hasServiceConfig()) {
-          mergeServiceConfig(other.getServiceConfig());
-        }
-        if (other.hasTimestamp()) {
-          mergeTimestamp(other.getTimestamp());
-        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -30539,270 +30692,6 @@ public final class ContextOuterClass {
         return true;
       }
 
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        context.ContextOuterClass.Service parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (context.ContextOuterClass.Service) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-      private int bitField0_;
-
-      private context.ContextOuterClass.ServiceId serviceId_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> serviceIdBuilder_;
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       * @return Whether the serviceId field is set.
-       */
-      public boolean hasServiceId() {
-        return serviceIdBuilder_ != null || serviceId_ != null;
-      }
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       * @return The serviceId.
-       */
-      public context.ContextOuterClass.ServiceId getServiceId() {
-        if (serviceIdBuilder_ == null) {
-          return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_;
-        } else {
-          return serviceIdBuilder_.getMessage();
-        }
-      }
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       */
-      public Builder setServiceId(context.ContextOuterClass.ServiceId value) {
-        if (serviceIdBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          serviceId_ = value;
-          onChanged();
-        } else {
-          serviceIdBuilder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       */
-      public Builder setServiceId(
-          context.ContextOuterClass.ServiceId.Builder builderForValue) {
-        if (serviceIdBuilder_ == null) {
-          serviceId_ = builderForValue.build();
-          onChanged();
-        } else {
-          serviceIdBuilder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       */
-      public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) {
-        if (serviceIdBuilder_ == null) {
-          if (serviceId_ != null) {
-            serviceId_ =
-              context.ContextOuterClass.ServiceId.newBuilder(serviceId_).mergeFrom(value).buildPartial();
-          } else {
-            serviceId_ = value;
-          }
-          onChanged();
-        } else {
-          serviceIdBuilder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       */
-      public Builder clearServiceId() {
-        if (serviceIdBuilder_ == null) {
-          serviceId_ = null;
-          onChanged();
-        } else {
-          serviceId_ = null;
-          serviceIdBuilder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       */
-      public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() {
-        
-        onChanged();
-        return getServiceIdFieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       */
-      public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() {
-        if (serviceIdBuilder_ != null) {
-          return serviceIdBuilder_.getMessageOrBuilder();
-        } else {
-          return serviceId_ == null ?
-              context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_;
-        }
-      }
-      /**
-       * <code>.context.ServiceId service_id = 1;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> 
-          getServiceIdFieldBuilder() {
-        if (serviceIdBuilder_ == null) {
-          serviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(
-                  getServiceId(),
-                  getParentForChildren(),
-                  isClean());
-          serviceId_ = null;
-        }
-        return serviceIdBuilder_;
-      }
-
-      private java.lang.Object name_ = "";
-      /**
-       * <code>string name = 2;</code>
-       * @return The name.
-       */
-      public java.lang.String getName() {
-        java.lang.Object ref = name_;
-        if (!(ref instanceof java.lang.String)) {
-          com.google.protobuf.ByteString bs =
-              (com.google.protobuf.ByteString) ref;
-          java.lang.String s = bs.toStringUtf8();
-          name_ = s;
-          return s;
-        } else {
-          return (java.lang.String) ref;
-        }
-      }
-      /**
-       * <code>string name = 2;</code>
-       * @return The bytes for name.
-       */
-      public com.google.protobuf.ByteString
-          getNameBytes() {
-        java.lang.Object ref = name_;
-        if (ref instanceof String) {
-          com.google.protobuf.ByteString b = 
-              com.google.protobuf.ByteString.copyFromUtf8(
-                  (java.lang.String) ref);
-          name_ = b;
-          return b;
-        } else {
-          return (com.google.protobuf.ByteString) ref;
-        }
-      }
-      /**
-       * <code>string name = 2;</code>
-       * @param value The name to set.
-       * @return This builder for chaining.
-       */
-      public Builder setName(
-          java.lang.String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  
-        name_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>string name = 2;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearName() {
-        
-        name_ = getDefaultInstance().getName();
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>string name = 2;</code>
-       * @param value The bytes for name to set.
-       * @return This builder for chaining.
-       */
-      public Builder setNameBytes(
-          com.google.protobuf.ByteString value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  checkByteStringIsUtf8(value);
-        
-        name_ = value;
-        onChanged();
-        return this;
-      }
-
-      private int serviceType_ = 0;
-      /**
-       * <code>.context.ServiceTypeEnum service_type = 3;</code>
-       * @return The enum numeric value on the wire for serviceType.
-       */
-      @java.lang.Override public int getServiceTypeValue() {
-        return serviceType_;
-      }
-      /**
-       * <code>.context.ServiceTypeEnum service_type = 3;</code>
-       * @param value The enum numeric value on the wire for serviceType to set.
-       * @return This builder for chaining.
-       */
-      public Builder setServiceTypeValue(int value) {
-        
-        serviceType_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <code>.context.ServiceTypeEnum service_type = 3;</code>
-       * @return The serviceType.
-       */
-      @java.lang.Override
-      public context.ContextOuterClass.ServiceTypeEnum getServiceType() {
-        @SuppressWarnings("deprecation")
-        context.ContextOuterClass.ServiceTypeEnum result = context.ContextOuterClass.ServiceTypeEnum.valueOf(serviceType_);
-        return result == null ? context.ContextOuterClass.ServiceTypeEnum.UNRECOGNIZED : result;
-      }
-      /**
-       * <code>.context.ServiceTypeEnum service_type = 3;</code>
-       * @param value The serviceType to set.
-       * @return This builder for chaining.
-       */
-      public Builder setServiceType(context.ContextOuterClass.ServiceTypeEnum value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        
-        serviceType_ = value.getNumber();
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
       @java.lang.Override
       public Builder mergeFrom(
           com.google.protobuf.CodedInputStream input,
@@ -31117,12 +31006,15 @@ public final class ContextOuterClass {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(1, configRules_.get(i));
       }
-      /**
-       * <code>repeated .context.EndPointId service_endpoint_ids = 4;</code>
-       */
-      public context.ContextOuterClass.EndPointId.Builder getServiceEndpointIdsBuilder(
-          int index) {
-        return getServiceEndpointIdsFieldBuilder().getBuilder(index);
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
       }
       if (!(obj instanceof context.ContextOuterClass.ServiceConfig)) {
         return super.equals(obj);
@@ -31146,6 +31038,10 @@ public final class ContextOuterClass {
         hash = (37 * hash) + CONFIG_RULES_FIELD_NUMBER;
         hash = (53 * hash) + getConfigRulesList().hashCode();
       }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
 
     public static context.ContextOuterClass.ServiceConfig parseFrom(
         java.nio.ByteBuffer data)
@@ -31261,29 +31157,17 @@ public final class ContextOuterClass {
       private Builder() {
         maybeForceBuilderInitialization();
       }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public Builder setServiceConstraints(
-          int index, context.ContextOuterClass.Constraint value) {
-        if (serviceConstraintsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureServiceConstraintsIsMutable();
-          serviceConstraints_.set(index, value);
-          onChanged();
-        } else {
-          serviceConstraintsBuilder_.setMessage(index, value);
-        }
-        return this;
+
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
       }
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
           getConfigRulesFieldBuilder();
         }
-        return this;
       }
       @java.lang.Override
       public Builder clear() {
@@ -31314,97 +31198,7 @@ public final class ContextOuterClass {
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
-        return this;
-      }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public Builder clearServiceConstraints() {
-        if (serviceConstraintsBuilder_ == null) {
-          serviceConstraints_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000002);
-          onChanged();
-        } else {
-          serviceConstraintsBuilder_.clear();
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public Builder removeServiceConstraints(int index) {
-        if (serviceConstraintsBuilder_ == null) {
-          ensureServiceConstraintsIsMutable();
-          serviceConstraints_.remove(index);
-          onChanged();
-        } else {
-          serviceConstraintsBuilder_.remove(index);
-        }
-        return this;
-      }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public context.ContextOuterClass.Constraint.Builder getServiceConstraintsBuilder(
-          int index) {
-        return getServiceConstraintsFieldBuilder().getBuilder(index);
-      }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public context.ContextOuterClass.ConstraintOrBuilder getServiceConstraintsOrBuilder(
-          int index) {
-        if (serviceConstraintsBuilder_ == null) {
-          return serviceConstraints_.get(index);  } else {
-          return serviceConstraintsBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public java.util.List<? extends context.ContextOuterClass.ConstraintOrBuilder> 
-           getServiceConstraintsOrBuilderList() {
-        if (serviceConstraintsBuilder_ != null) {
-          return serviceConstraintsBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(serviceConstraints_);
-        }
-      }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public context.ContextOuterClass.Constraint.Builder addServiceConstraintsBuilder() {
-        return getServiceConstraintsFieldBuilder().addBuilder(
-            context.ContextOuterClass.Constraint.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public context.ContextOuterClass.Constraint.Builder addServiceConstraintsBuilder(
-          int index) {
-        return getServiceConstraintsFieldBuilder().addBuilder(
-            index, context.ContextOuterClass.Constraint.getDefaultInstance());
-      }
-      /**
-       * <code>repeated .context.Constraint service_constraints = 5;</code>
-       */
-      public java.util.List<context.ContextOuterClass.Constraint.Builder> 
-           getServiceConstraintsBuilderList() {
-        return getServiceConstraintsFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          context.ContextOuterClass.Constraint, context.ContextOuterClass.Constraint.Builder, context.ContextOuterClass.ConstraintOrBuilder> 
-          getServiceConstraintsFieldBuilder() {
-        if (serviceConstraintsBuilder_ == null) {
-          serviceConstraintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
-              context.ContextOuterClass.Constraint, context.ContextOuterClass.Constraint.Builder, context.ContextOuterClass.ConstraintOrBuilder>(
-                  serviceConstraints_,
-                  ((bitField0_ & 0x00000002) != 0),
-                  getParentForChildren(),
-                  isClean());
-          serviceConstraints_ = null;
-        }
-        return serviceConstraintsBuilder_;
+        return result;
       }
 
       @java.lang.Override
@@ -31420,16 +31214,51 @@ public final class ContextOuterClass {
         } else {
           result.configRules_ = configRulesBuilder_.build();
         }
+        onBuilt();
+        return result;
+      }
 
-        return this;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof context.ContextOuterClass.ServiceConfig) {
           return mergeFrom((context.ContextOuterClass.ServiceConfig)other);
         } else {
-          serviceStatusBuilder_.mergeFrom(value);
+          super.mergeFrom(other);
+          return this;
         }
+      }
 
       public Builder mergeFrom(context.ContextOuterClass.ServiceConfig other) {
         if (other == context.ContextOuterClass.ServiceConfig.getDefaultInstance()) return this;
@@ -31463,19 +31292,10 @@ public final class ContextOuterClass {
         onChanged();
         return this;
       }
-      /**
-       * <code>.context.ServiceStatus service_status = 6;</code>
-       */
-      public Builder clearServiceStatus() {
-        if (serviceStatusBuilder_ == null) {
-          serviceStatus_ = null;
-          onChanged();
-        } else {
-          serviceStatus_ = null;
-          serviceStatusBuilder_ = null;
-        }
 
-        return this;
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
       }
 
       @java.lang.Override
@@ -31494,22 +31314,7 @@ public final class ContextOuterClass {
             mergeFrom(parsedMessage);
           }
         }
-      }
-      /**
-       * <code>.context.ServiceStatus service_status = 6;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ServiceStatus, context.ContextOuterClass.ServiceStatus.Builder, context.ContextOuterClass.ServiceStatusOrBuilder> 
-          getServiceStatusFieldBuilder() {
-        if (serviceStatusBuilder_ == null) {
-          serviceStatusBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              context.ContextOuterClass.ServiceStatus, context.ContextOuterClass.ServiceStatus.Builder, context.ContextOuterClass.ServiceStatusOrBuilder>(
-                  getServiceStatus(),
-                  getParentForChildren(),
-                  isClean());
-          serviceStatus_ = null;
-        }
-        return serviceStatusBuilder_;
+        return this;
       }
       private int bitField0_;
 
@@ -33916,7 +33721,6 @@ public final class ContextOuterClass {
           super.mergeFrom(other);
           return this;
         }
-        return this;
       }
 
       public Builder mergeFrom(context.ContextOuterClass.ServiceFilter other) {
@@ -33982,7 +33786,6 @@ public final class ContextOuterClass {
         } else {
           return serviceIdsBuilder_.getMessage();
         }
-        return this;
       }
       /**
        * <code>.context.ServiceIdList service_ids = 1;</code>
@@ -33997,6 +33800,7 @@ public final class ContextOuterClass {
         } else {
           serviceIdsBuilder_.setMessage(value);
         }
+
         return this;
       }
       /**
@@ -34010,6 +33814,7 @@ public final class ContextOuterClass {
         } else {
           serviceIdsBuilder_.setMessage(builderForValue.build());
         }
+
         return this;
       }
       /**
@@ -34027,6 +33832,8 @@ public final class ContextOuterClass {
         } else {
           serviceIdsBuilder_.mergeFrom(value);
         }
+
+        return this;
       }
       /**
        * <code>.context.ServiceIdList service_ids = 1;</code>
@@ -34039,6 +33846,8 @@ public final class ContextOuterClass {
           serviceIds_ = null;
           serviceIdsBuilder_ = null;
         }
+
+        return this;
       }
       /**
        * <code>.context.ServiceIdList service_ids = 1;</code>
@@ -34290,7 +34099,6 @@ public final class ContextOuterClass {
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
-      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -34342,9 +34150,6 @@ public final class ContextOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
-          services_ = java.util.Collections.unmodifiableList(services_);
-        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -34623,7 +34428,6 @@ public final class ContextOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
-          getServicesFieldBuilder();
         }
       }
       @java.lang.Override
@@ -35732,10 +35536,6 @@ public final class ContextOuterClass {
           return sliceUuidBuilder_.getMessage();
         }
       }
-
-      private context.ContextOuterClass.ServiceId serviceId_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> serviceIdBuilder_;
       /**
        * <code>.context.Uuid slice_uuid = 2;</code>
        */
@@ -36113,6 +35913,7 @@ public final class ContextOuterClass {
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
+      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -36442,9 +36243,6 @@ public final class ContextOuterClass {
     public int getSliceServiceIdsCount() {
       return sliceServiceIds_.size();
     }
-
-    public static final int SLICE_UUID_FIELD_NUMBER = 2;
-    private context.ContextOuterClass.Uuid sliceUuid_;
     /**
      * <code>repeated .context.ServiceId slice_service_ids = 5;</code>
      */
@@ -37330,10 +37128,6 @@ public final class ContextOuterClass {
 
         return this;
       }
-
-      private context.ContextOuterClass.Uuid sliceUuid_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> sliceUuidBuilder_;
       /**
        * <code>.context.SliceId slice_id = 1;</code>
        */
@@ -37418,8 +37212,6 @@ public final class ContextOuterClass {
         } else {
           return (java.lang.String) ref;
         }
-
-        return this;
       }
       /**
        * <code>string name = 2;</code>
@@ -37437,8 +37229,6 @@ public final class ContextOuterClass {
         } else {
           return (com.google.protobuf.ByteString) ref;
         }
-
-        return this;
       }
       /**
        * <code>string name = 2;</code>
@@ -38714,6 +38504,7 @@ public final class ContextOuterClass {
         } else {
           sliceOwnerBuilder_.setMessage(value);
         }
+
         return this;
       }
       /**
@@ -38727,6 +38518,7 @@ public final class ContextOuterClass {
         } else {
           sliceOwnerBuilder_.setMessage(builderForValue.build());
         }
+
         return this;
       }
       /**
@@ -38740,12 +38532,11 @@ public final class ContextOuterClass {
           } else {
             sliceOwner_ = value;
           }
-          ensureSliceServiceIdsIsMutable();
-          sliceServiceIds_.add(value);
           onChanged();
         } else {
           sliceOwnerBuilder_.mergeFrom(value);
         }
+
         return this;
       }
       /**
@@ -38759,6 +38550,7 @@ public final class ContextOuterClass {
           sliceOwner_ = null;
           sliceOwnerBuilder_ = null;
         }
+
         return this;
       }
       /**
@@ -38817,7 +38609,6 @@ public final class ContextOuterClass {
         } else {
           return timestampBuilder_.getMessage();
         }
-        return this;
       }
       /**
        * <code>.context.Timestamp timestamp = 10;</code>
@@ -38832,6 +38623,7 @@ public final class ContextOuterClass {
         } else {
           timestampBuilder_.setMessage(value);
         }
+
         return this;
       }
       /**
@@ -38845,6 +38637,7 @@ public final class ContextOuterClass {
         } else {
           timestampBuilder_.setMessage(builderForValue.build());
         }
+
         return this;
       }
       /**
@@ -38862,6 +38655,7 @@ public final class ContextOuterClass {
         } else {
           timestampBuilder_.mergeFrom(value);
         }
+
         return this;
       }
       /**
@@ -38875,6 +38669,7 @@ public final class ContextOuterClass {
           timestamp_ = null;
           timestampBuilder_ = null;
         }
+
         return this;
       }
       /**
@@ -39157,17 +38952,16 @@ public final class ContextOuterClass {
       }
     }
 
-      private java.util.List<context.ContextOuterClass.SliceId> sliceSubsliceIds_ =
-        java.util.Collections.emptyList();
-      private void ensureSliceSubsliceIdsIsMutable() {
-        if (!((bitField0_ & 0x00000008) != 0)) {
-          sliceSubsliceIds_ = new java.util.ArrayList<context.ContextOuterClass.SliceId>(sliceSubsliceIds_);
-          bitField0_ |= 0x00000008;
-         }
-      }
+    private byte memoizedIsInitialized = -1;
+    @java.lang.Override
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
 
-      private com.google.protobuf.RepeatedFieldBuilderV3<
-          context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> sliceSubsliceIdsBuilder_;
+      memoizedIsInitialized = 1;
+      return true;
+    }
 
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
@@ -39194,19 +38988,15 @@ public final class ContextOuterClass {
       if (!getOwnerStringBytes().isEmpty()) {
         size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ownerString_);
       }
-      /**
-       * <code>repeated .context.SliceId slice_subslice_ids = 6;</code>
-       */
-      public Builder setSliceSubsliceIds(
-          int index, context.ContextOuterClass.SliceId.Builder builderForValue) {
-        if (sliceSubsliceIdsBuilder_ == null) {
-          ensureSliceSubsliceIdsIsMutable();
-          sliceSubsliceIds_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          sliceSubsliceIdsBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
       }
       if (!(obj instanceof context.ContextOuterClass.SliceOwner)) {
         return super.equals(obj);
@@ -39351,55 +39141,21 @@ public final class ContextOuterClass {
             .ensureFieldAccessorsInitialized(
                 context.ContextOuterClass.SliceOwner.class, context.ContextOuterClass.SliceOwner.Builder.class);
       }
-      /**
-       * <code>.context.SliceStatus slice_status = 7;</code>
-       */
-      public Builder setSliceStatus(context.ContextOuterClass.SliceStatus value) {
-        if (sliceStatusBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          sliceStatus_ = value;
-          onChanged();
-        } else {
-          sliceStatusBuilder_.setMessage(value);
-        }
 
       // Construct using context.ContextOuterClass.SliceOwner.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
-      /**
-       * <code>.context.SliceStatus slice_status = 7;</code>
-       */
-      public Builder setSliceStatus(
-          context.ContextOuterClass.SliceStatus.Builder builderForValue) {
-        if (sliceStatusBuilder_ == null) {
-          sliceStatus_ = builderForValue.build();
-          onChanged();
-        } else {
-          sliceStatusBuilder_.setMessage(builderForValue.build());
-        }
 
-        return this;
+      private Builder(
+          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
       }
-      /**
-       * <code>.context.SliceStatus slice_status = 7;</code>
-       */
-      public Builder mergeSliceStatus(context.ContextOuterClass.SliceStatus value) {
-        if (sliceStatusBuilder_ == null) {
-          if (sliceStatus_ != null) {
-            sliceStatus_ =
-              context.ContextOuterClass.SliceStatus.newBuilder(sliceStatus_).mergeFrom(value).buildPartial();
-          } else {
-            sliceStatus_ = value;
-          }
-          onChanged();
-        } else {
-          sliceStatusBuilder_.mergeFrom(value);
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
         }
-
-        return this;
       }
       @java.lang.Override
       public Builder clear() {
@@ -39432,6 +39188,7 @@ public final class ContextOuterClass {
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
+        return result;
       }
 
       @java.lang.Override
@@ -39447,15 +39204,47 @@ public final class ContextOuterClass {
         return result;
       }
 
-        return this;
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
+      }
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof context.ContextOuterClass.SliceOwner) {
           return mergeFrom((context.ContextOuterClass.SliceOwner)other);
         } else {
-          sliceConfigBuilder_.mergeFrom(value);
+          super.mergeFrom(other);
+          return this;
         }
+      }
 
       public Builder mergeFrom(context.ContextOuterClass.SliceOwner other) {
         if (other == context.ContextOuterClass.SliceOwner.getDefaultInstance()) return this;
@@ -39470,19 +39259,10 @@ public final class ContextOuterClass {
         onChanged();
         return this;
       }
-      /**
-       * <code>.context.SliceConfig slice_config = 8;</code>
-       */
-      public Builder clearSliceConfig() {
-        if (sliceConfigBuilder_ == null) {
-          sliceConfig_ = null;
-          onChanged();
-        } else {
-          sliceConfig_ = null;
-          sliceConfigBuilder_ = null;
-        }
 
-        return this;
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
       }
 
       @java.lang.Override
@@ -39501,22 +39281,7 @@ public final class ContextOuterClass {
             mergeFrom(parsedMessage);
           }
         }
-      }
-      /**
-       * <code>.context.SliceConfig slice_config = 8;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.SliceConfig, context.ContextOuterClass.SliceConfig.Builder, context.ContextOuterClass.SliceConfigOrBuilder> 
-          getSliceConfigFieldBuilder() {
-        if (sliceConfigBuilder_ == null) {
-          sliceConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              context.ContextOuterClass.SliceConfig, context.ContextOuterClass.SliceConfig.Builder, context.ContextOuterClass.SliceConfigOrBuilder>(
-                  getSliceConfig(),
-                  getParentForChildren(),
-                  isClean());
-          sliceConfig_ = null;
-        }
-        return sliceConfigBuilder_;
+        return this;
       }
 
       private context.ContextOuterClass.Uuid ownerUuid_;
@@ -40161,22 +39926,9 @@ public final class ContextOuterClass {
         return this;
       }
 
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    /**
-     * Protobuf type {@code context.SliceOwner}
-     */
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
-        // @@protoc_insertion_point(builder_implements:context.SliceOwner)
-        context.ContextOuterClass.SliceOwnerOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return context.ContextOuterClass.internal_static_context_SliceOwner_descriptor;
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
       }
 
       @java.lang.Override
@@ -40665,7 +40417,6 @@ public final class ContextOuterClass {
         } else {
           configRulesBuilder_.clear();
         }
-
         return this;
       }
 
@@ -40877,6 +40628,7 @@ public final class ContextOuterClass {
         } else {
           configRulesBuilder_.setMessage(index, builderForValue.build());
         }
+        return this;
       }
       /**
        * <code>repeated .context.ConfigRule config_rules = 1;</code>
@@ -40892,8 +40644,6 @@ public final class ContextOuterClass {
         } else {
           configRulesBuilder_.addMessage(value);
         }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
         return this;
       }
       /**
@@ -40913,8 +40663,6 @@ public final class ContextOuterClass {
         }
         return this;
       }
-
-      private int sliceStatus_ = 0;
       /**
        * <code>repeated .context.ConfigRule config_rules = 1;</code>
        */
@@ -40969,9 +40717,6 @@ public final class ContextOuterClass {
         } else {
           configRulesBuilder_.clear();
         }
-        
-        sliceStatus_ = value.getNumber();
-        onChanged();
         return this;
       }
       /**
@@ -42774,7 +42519,6 @@ public final class ContextOuterClass {
       if (extensionRegistry == null) {
         throw new java.lang.NullPointerException();
       }
-      int mutable_bitField0_ = 0;
       com.google.protobuf.UnknownFieldSet.Builder unknownFields =
           com.google.protobuf.UnknownFieldSet.newBuilder();
       try {
@@ -42838,9 +42582,6 @@ public final class ContextOuterClass {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
-        if (((mutable_bitField0_ & 0x00000001) != 0)) {
-          slices_ = java.util.Collections.unmodifiableList(slices_);
-        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -43192,7 +42933,6 @@ public final class ContextOuterClass {
       private void maybeForceBuilderInitialization() {
         if (com.google.protobuf.GeneratedMessageV3
                 .alwaysUseFieldBuilders) {
-          getSlicesFieldBuilder();
         }
       }
       @java.lang.Override
@@ -44345,10 +44085,6 @@ public final class ContextOuterClass {
           return sliceIdBuilder_.getMessage();
         }
       }
-
-      private context.ContextOuterClass.SliceId sliceId_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> sliceIdBuilder_;
       /**
        * <code>.context.SliceId slice_id = 2;</code>
        */
@@ -46491,8 +46227,6 @@ public final class ContextOuterClass {
         onChanged();
         return this;
       }
-
-      private int etherType_ ;
       /**
        * <code>string dst_mac_address = 2;</code>
        * @return This builder for chaining.
@@ -46602,8 +46336,6 @@ public final class ContextOuterClass {
         onChanged();
         return this;
       }
-
-      private int mplsTrafficClass_ ;
       /**
        * <code>uint32 mpls_label = 5;</code>
        * @return This builder for chaining.
@@ -49145,189 +48877,6 @@ public final class ContextOuterClass {
         return l0Builder_;
       }
 
-      private context.ContextOuterClass.ConnectionSettings_L2 l2_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ConnectionSettings_L2, context.ContextOuterClass.ConnectionSettings_L2.Builder, context.ContextOuterClass.ConnectionSettings_L2OrBuilder> l2Builder_;
-      /**
-       * <code>.context.ConnectionSettings_L2 l2 = 2;</code>
-       * @return Whether the l2 field is set.
-       */
-      public boolean hasL2() {
-        return l2Builder_ != null || l2_ != null;
-      }
-      @java.lang.Override
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof context.ContextOuterClass.ConnectionSettings) {
-          return mergeFrom((context.ContextOuterClass.ConnectionSettings)other);
-        } else {
-          return l2Builder_.getMessage();
-        }
-      }
-
-      public Builder mergeFrom(context.ContextOuterClass.ConnectionSettings other) {
-        if (other == context.ContextOuterClass.ConnectionSettings.getDefaultInstance()) return this;
-        if (other.hasL0()) {
-          mergeL0(other.getL0());
-        }
-        if (other.hasL2()) {
-          mergeL2(other.getL2());
-        }
-        if (other.hasL3()) {
-          mergeL3(other.getL3());
-        }
-        if (other.hasL4()) {
-          mergeL4(other.getL4());
-        }
-        this.mergeUnknownFields(other.unknownFields);
-        onChanged();
-        return this;
-      }
-
-      @java.lang.Override
-      public final boolean isInitialized() {
-        return true;
-      }
-
-      @java.lang.Override
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        context.ContextOuterClass.ConnectionSettings parsedMessage = null;
-        try {
-          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
-        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (context.ContextOuterClass.ConnectionSettings) e.getUnfinishedMessage();
-          throw e.unwrapIOException();
-        } finally {
-          if (parsedMessage != null) {
-            mergeFrom(parsedMessage);
-          }
-        }
-        return this;
-      }
-
-      private context.ContextOuterClass.ConnectionSettings_L0 l0_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ConnectionSettings_L0, context.ContextOuterClass.ConnectionSettings_L0.Builder, context.ContextOuterClass.ConnectionSettings_L0OrBuilder> l0Builder_;
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       * @return Whether the l0 field is set.
-       */
-      public boolean hasL0() {
-        return l0Builder_ != null || l0_ != null;
-      }
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       * @return The l0.
-       */
-      public context.ContextOuterClass.ConnectionSettings_L0 getL0() {
-        if (l0Builder_ == null) {
-          return l0_ == null ? context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance() : l0_;
-        } else {
-          return l0Builder_.getMessage();
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       */
-      public Builder setL0(context.ContextOuterClass.ConnectionSettings_L0 value) {
-        if (l0Builder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          l0_ = value;
-          onChanged();
-        } else {
-          l0Builder_.setMessage(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       */
-      public Builder setL0(
-          context.ContextOuterClass.ConnectionSettings_L0.Builder builderForValue) {
-        if (l0Builder_ == null) {
-          l0_ = builderForValue.build();
-          onChanged();
-        } else {
-          l0Builder_.setMessage(builderForValue.build());
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       */
-      public Builder mergeL0(context.ContextOuterClass.ConnectionSettings_L0 value) {
-        if (l0Builder_ == null) {
-          if (l0_ != null) {
-            l0_ =
-              context.ContextOuterClass.ConnectionSettings_L0.newBuilder(l0_).mergeFrom(value).buildPartial();
-          } else {
-            l0_ = value;
-          }
-          onChanged();
-        } else {
-          l0Builder_.mergeFrom(value);
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       */
-      public Builder clearL0() {
-        if (l0Builder_ == null) {
-          l0_ = null;
-          onChanged();
-        } else {
-          l0_ = null;
-          l0Builder_ = null;
-        }
-
-        return this;
-      }
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       */
-      public context.ContextOuterClass.ConnectionSettings_L0.Builder getL0Builder() {
-        
-        onChanged();
-        return getL0FieldBuilder().getBuilder();
-      }
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       */
-      public context.ContextOuterClass.ConnectionSettings_L0OrBuilder getL0OrBuilder() {
-        if (l0Builder_ != null) {
-          return l0Builder_.getMessageOrBuilder();
-        } else {
-          return l0_ == null ?
-              context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance() : l0_;
-        }
-      }
-      /**
-       * <code>.context.ConnectionSettings_L0 l0 = 1;</code>
-       */
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ConnectionSettings_L0, context.ContextOuterClass.ConnectionSettings_L0.Builder, context.ContextOuterClass.ConnectionSettings_L0OrBuilder> 
-          getL0FieldBuilder() {
-        if (l0Builder_ == null) {
-          l0Builder_ = new com.google.protobuf.SingleFieldBuilderV3<
-              context.ContextOuterClass.ConnectionSettings_L0, context.ContextOuterClass.ConnectionSettings_L0.Builder, context.ContextOuterClass.ConnectionSettings_L0OrBuilder>(
-                  getL0(),
-                  getParentForChildren(),
-                  isClean());
-          l0_ = null;
-        }
-        return l0Builder_;
-      }
-
       private context.ContextOuterClass.ConnectionSettings_L2 l2_;
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.ConnectionSettings_L2, context.ContextOuterClass.ConnectionSettings_L2.Builder, context.ContextOuterClass.ConnectionSettings_L2OrBuilder> l2Builder_;
@@ -49484,10 +49033,6 @@ public final class ContextOuterClass {
 
         return this;
       }
-
-      private context.ContextOuterClass.ConnectionSettings_L3 l3_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ConnectionSettings_L3, context.ContextOuterClass.ConnectionSettings_L3.Builder, context.ContextOuterClass.ConnectionSettings_L3OrBuilder> l3Builder_;
       /**
        * <code>.context.ConnectionSettings_L3 l3 = 3;</code>
        */
@@ -49591,10 +49136,6 @@ public final class ContextOuterClass {
           return l4Builder_.getMessage();
         }
       }
-
-      private context.ContextOuterClass.ConnectionSettings_L4 l4_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.ConnectionSettings_L4, context.ContextOuterClass.ConnectionSettings_L4.Builder, context.ContextOuterClass.ConnectionSettings_L4OrBuilder> l4Builder_;
       /**
        * <code>.context.ConnectionSettings_L4 l4 = 4;</code>
        */
@@ -50021,9 +49562,6 @@ public final class ContextOuterClass {
     public boolean hasServiceId() {
       return serviceId_ != null;
     }
-
-    public static final int SERVICE_ID_FIELD_NUMBER = 2;
-    private context.ContextOuterClass.ServiceId serviceId_;
     /**
      * <code>.context.ServiceId service_id = 2;</code>
      * @return The serviceId.
@@ -50177,9 +49715,7 @@ public final class ContextOuterClass {
       }
       unknownFields.writeTo(output);
     }
-    /**
-     * <code>repeated .context.EndPointId path_hops_endpoint_ids = 3;</code>
-     */
+
     @java.lang.Override
     public int getSerializedSize() {
       int size = memoizedSize;
@@ -50210,9 +49746,7 @@ public final class ContextOuterClass {
       memoizedSize = size;
       return size;
     }
-    /**
-     * <code>repeated .context.EndPointId path_hops_endpoint_ids = 3;</code>
-     */
+
     @java.lang.Override
     public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
@@ -50245,9 +49779,7 @@ public final class ContextOuterClass {
       if (!unknownFields.equals(other.unknownFields)) return false;
       return true;
     }
-    /**
-     * <code>repeated .context.EndPointId path_hops_endpoint_ids = 3;</code>
-     */
+
     @java.lang.Override
     public int hashCode() {
       if (memoizedHashCode != 0) {
@@ -50350,31 +49882,25 @@ public final class ContextOuterClass {
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
 
-    public static final int SUB_SERVICE_IDS_FIELD_NUMBER = 4;
-    private java.util.List<context.ContextOuterClass.ServiceId> subServiceIds_;
-    /**
-     * <code>repeated .context.ServiceId sub_service_ids = 4;</code>
-     */
     @java.lang.Override
-    public java.util.List<context.ContextOuterClass.ServiceId> getSubServiceIdsList() {
-      return subServiceIds_;
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
     }
     public static Builder newBuilder(context.ContextOuterClass.Connection prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
-    /**
-     * <code>repeated .context.ServiceId sub_service_ids = 4;</code>
-     */
     @java.lang.Override
-    public int getSubServiceIdsCount() {
-      return subServiceIds_.size();
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
     }
-    /**
-     * <code>repeated .context.ServiceId sub_service_ids = 4;</code>
-     */
+
     @java.lang.Override
-    public context.ContextOuterClass.ServiceId getSubServiceIds(int index) {
-      return subServiceIds_.get(index);
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
     }
     /**
      * Protobuf type {@code context.Connection}
@@ -50510,14 +50036,37 @@ public final class ContextOuterClass {
         return result;
       }
 
-    @java.lang.Override
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      if (connectionId_ != null) {
-        output.writeMessage(1, getConnectionId());
+      @java.lang.Override
+      public Builder clone() {
+        return super.clone();
       }
-      if (serviceId_ != null) {
-        output.writeMessage(2, getServiceId());
+      @java.lang.Override
+      public Builder setField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.setField(field, value);
+      }
+      @java.lang.Override
+      public Builder clearField(
+          com.google.protobuf.Descriptors.FieldDescriptor field) {
+        return super.clearField(field);
+      }
+      @java.lang.Override
+      public Builder clearOneof(
+          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+        return super.clearOneof(oneof);
+      }
+      @java.lang.Override
+      public Builder setRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          int index, java.lang.Object value) {
+        return super.setRepeatedField(field, index, value);
+      }
+      @java.lang.Override
+      public Builder addRepeatedField(
+          com.google.protobuf.Descriptors.FieldDescriptor field,
+          java.lang.Object value) {
+        return super.addRepeatedField(field, value);
       }
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
@@ -50596,11 +50145,11 @@ public final class ContextOuterClass {
         onChanged();
         return this;
       }
-      if (settings_ != null) {
-        output.writeMessage(5, getSettings());
+
+      @java.lang.Override
+      public final boolean isInitialized() {
+        return true;
       }
-      unknownFields.writeTo(output);
-    }
 
       @java.lang.Override
       public Builder mergeFrom(
@@ -51062,7 +50611,6 @@ public final class ContextOuterClass {
         } else {
           return java.util.Collections.unmodifiableList(pathHopsEndpointIds_);
         }
-        return this;
       }
       /**
        * <code>repeated .context.EndPointId path_hops_endpoint_ids = 3;</code>
@@ -52448,9 +51996,6 @@ public final class ContextOuterClass {
     public int getConnectionsCount() {
       return connections_.size();
     }
-
-    public static final int CONNECTIONS_FIELD_NUMBER = 1;
-    private java.util.List<context.ContextOuterClass.Connection> connections_;
     /**
      * <code>repeated .context.Connection connections = 1;</code>
      */
@@ -52817,14 +52362,6 @@ public final class ContextOuterClass {
           bitField0_ |= 0x00000001;
          }
       }
-      if (hasConnectionId()) {
-        hash = (37 * hash) + CONNECTION_ID_FIELD_NUMBER;
-        hash = (53 * hash) + getConnectionId().hashCode();
-      }
-      hash = (29 * hash) + unknownFields.hashCode();
-      memoizedHashCode = hash;
-      return hash;
-    }
 
       private com.google.protobuf.RepeatedFieldBuilderV3<
           context.ContextOuterClass.Connection, context.ContextOuterClass.Connection.Builder, context.ContextOuterClass.ConnectionOrBuilder> connectionsBuilder_;
@@ -52904,6 +52441,7 @@ public final class ContextOuterClass {
         } else {
           connectionsBuilder_.addMessage(value);
         }
+        return this;
       }
       /**
        * <code>repeated .context.Connection connections = 1;</code>
@@ -52976,7 +52514,7 @@ public final class ContextOuterClass {
         } else {
           connectionsBuilder_.clear();
         }
-        return result;
+        return this;
       }
       /**
        * <code>repeated .context.Connection connections = 1;</code>
@@ -53018,8 +52556,6 @@ public final class ContextOuterClass {
         } else {
           return java.util.Collections.unmodifiableList(connections_);
         }
-        onBuilt();
-        return result;
       }
       /**
        * <code>repeated .context.Connection connections = 1;</code>
@@ -54121,9 +53657,6 @@ public final class ContextOuterClass {
     public context.ContextOuterClass.TopologyId getTopologyId() {
       return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_;
     }
-
-    public static final int ENDPOINT_UUID_FIELD_NUMBER = 3;
-    private context.ContextOuterClass.Uuid endpointUuid_;
     /**
      * <code>.context.TopologyId topology_id = 1;</code>
      */
@@ -54702,8 +54235,6 @@ public final class ContextOuterClass {
         } else {
           return deviceIdBuilder_.getMessage();
         }
-
-        return this;
       }
       /**
        * <code>.context.DeviceId device_id = 2;</code>
@@ -55346,9 +54877,6 @@ public final class ContextOuterClass {
     public kpi_sample_types.KpiSampleTypes.KpiSampleType getKpiSampleTypes(int index) {
       return kpiSampleTypes_converter_.convert(kpiSampleTypes_.get(index));
     }
-
-    public static final int NAME_FIELD_NUMBER = 2;
-    private volatile java.lang.Object name_;
     /**
      * <code>repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4;</code>
      * @return A list containing the enum numeric values on the wire for kpiSampleTypes.
@@ -56174,17 +55702,6 @@ public final class ContextOuterClass {
         onChanged();
         return this;
       }
-
-      private context.ContextOuterClass.Location endpointLocation_;
-      private com.google.protobuf.SingleFieldBuilderV3<
-          context.ContextOuterClass.Location, context.ContextOuterClass.Location.Builder, context.ContextOuterClass.LocationOrBuilder> endpointLocationBuilder_;
-      /**
-       * <code>.context.Location endpoint_location = 5;</code>
-       * @return Whether the endpointLocation field is set.
-       */
-      public boolean hasEndpointLocation() {
-        return endpointLocationBuilder_ != null || endpointLocation_ != null;
-      }
       /**
        * <code>repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4;</code>
        * @return A list containing the enum numeric values on the wire for kpiSampleTypes.
@@ -61693,10 +61210,6 @@ public final class ContextOuterClass {
         getConstraintValueBytes();
   }
   /**
-   * <pre>
-   * ----- Constraint ----------------------------------------------------------------------------------------------------
-   * </pre>
-   *
    * Protobuf type {@code context.Constraint_Custom}
    */
   public static final class Constraint_Custom extends
@@ -62028,10 +61541,6 @@ public final class ContextOuterClass {
       return builder;
     }
     /**
-     * <pre>
-     * ----- Constraint ----------------------------------------------------------------------------------------------------
-     * </pre>
-     *
      * Protobuf type {@code context.Constraint_Custom}
      */
     public static final class Builder extends
@@ -67678,11 +67187,6 @@ public final class ContextOuterClass {
               input.popLimit(oldLimit);
               break;
             }
-            case 29: {
-
-              availability_ = input.readFloat();
-              break;
-            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -67776,21 +67280,6 @@ public final class ContextOuterClass {
     }
     private int isolationLevelMemoizedSerializedSize;
 
-    public static final int AVAILABILITY_FIELD_NUMBER = 3;
-    private float availability_;
-    /**
-     * <pre>
-     * 0.0 .. 100.0 percentage of availability
-     * </pre>
-     *
-     * <code>float availability = 3;</code>
-     * @return The availability.
-     */
-    @java.lang.Override
-    public float getAvailability() {
-      return availability_;
-    }
-
     private byte memoizedIsInitialized = -1;
     @java.lang.Override
     public final boolean isInitialized() {
@@ -67813,9 +67302,6 @@ public final class ContextOuterClass {
       for (int i = 0; i < isolationLevel_.size(); i++) {
         output.writeEnumNoTag(isolationLevel_.get(i));
       }
-      if (availability_ != 0F) {
-        output.writeFloat(3, availability_);
-      }
       unknownFields.writeTo(output);
     }
 
@@ -67837,10 +67323,6 @@ public final class ContextOuterClass {
             .computeUInt32SizeNoTag(dataSize);
         }isolationLevelMemoizedSerializedSize = dataSize;
       }
-      if (availability_ != 0F) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeFloatSize(3, availability_);
-      }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
       return size;
@@ -68097,9 +67579,6 @@ public final class ContextOuterClass {
           }
           onChanged();
         }
-        if (other.getAvailability() != 0F) {
-          setAvailability(other.getAvailability());
-        }
         this.mergeUnknownFields(other.unknownFields);
         onChanged();
         return this;
@@ -68269,49 +67748,6 @@ public final class ContextOuterClass {
         onChanged();
         return this;
       }
-
-      private float availability_ ;
-      /**
-       * <pre>
-       * 0.0 .. 100.0 percentage of availability
-       * </pre>
-       *
-       * <code>float availability = 3;</code>
-       * @return The availability.
-       */
-      @java.lang.Override
-      public float getAvailability() {
-        return availability_;
-      }
-      /**
-       * <pre>
-       * 0.0 .. 100.0 percentage of availability
-       * </pre>
-       *
-       * <code>float availability = 3;</code>
-       * @param value The availability to set.
-       * @return This builder for chaining.
-       */
-      public Builder setAvailability(float value) {
-        
-        availability_ = value;
-        onChanged();
-        return this;
-      }
-      /**
-       * <pre>
-       * 0.0 .. 100.0 percentage of availability
-       * </pre>
-       *
-       * <code>float availability = 3;</code>
-       * @return This builder for chaining.
-       */
-      public Builder clearAvailability() {
-        
-        availability_ = 0F;
-        onChanged();
-        return this;
-      }
       @java.lang.Override
       public final Builder setUnknownFields(
           final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -69978,137 +69414,148 @@ public final class ContextOuterClass {
       com.google.protobuf.MessageOrBuilder {
 
     /**
-     * <code>.context.Constraint_Custom custom = 1;</code>
+     * <code>.context.ConstraintActionEnum action = 1;</code>
+     * @return The enum numeric value on the wire for action.
+     */
+    int getActionValue();
+    /**
+     * <code>.context.ConstraintActionEnum action = 1;</code>
+     * @return The action.
+     */
+    context.ContextOuterClass.ConstraintActionEnum getAction();
+
+    /**
+     * <code>.context.Constraint_Custom custom = 2;</code>
      * @return Whether the custom field is set.
      */
     boolean hasCustom();
     /**
-     * <code>.context.Constraint_Custom custom = 1;</code>
+     * <code>.context.Constraint_Custom custom = 2;</code>
      * @return The custom.
      */
     context.ContextOuterClass.Constraint_Custom getCustom();
     /**
-     * <code>.context.Constraint_Custom custom = 1;</code>
+     * <code>.context.Constraint_Custom custom = 2;</code>
      */
     context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder();
 
     /**
-     * <code>.context.Constraint_Schedule schedule = 2;</code>
+     * <code>.context.Constraint_Schedule schedule = 3;</code>
      * @return Whether the schedule field is set.
      */
     boolean hasSchedule();
     /**
-     * <code>.context.Constraint_Schedule schedule = 2;</code>
+     * <code>.context.Constraint_Schedule schedule = 3;</code>
      * @return The schedule.
      */
     context.ContextOuterClass.Constraint_Schedule getSchedule();
     /**
-     * <code>.context.Constraint_Schedule schedule = 2;</code>
+     * <code>.context.Constraint_Schedule schedule = 3;</code>
      */
     context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder();
 
     /**
-     * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+     * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
      * @return Whether the endpointLocation field is set.
      */
     boolean hasEndpointLocation();
     /**
-     * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+     * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
      * @return The endpointLocation.
      */
     context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation();
     /**
-     * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+     * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
      */
     context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder();
 
     /**
-     * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+     * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
      * @return Whether the endpointPriority field is set.
      */
     boolean hasEndpointPriority();
     /**
-     * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+     * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
      * @return The endpointPriority.
      */
     context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority();
     /**
-     * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+     * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
      */
     context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder();
 
     /**
-     * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+     * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
      * @return Whether the slaCapacity field is set.
      */
     boolean hasSlaCapacity();
     /**
-     * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+     * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
      * @return The slaCapacity.
      */
     context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity();
     /**
-     * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+     * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
      */
     context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder();
 
     /**
-     * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+     * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
      * @return Whether the slaLatency field is set.
      */
     boolean hasSlaLatency();
     /**
-     * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+     * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
      * @return The slaLatency.
      */
     context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency();
     /**
-     * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+     * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
      */
     context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder();
 
     /**
-     * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+     * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
      * @return Whether the slaAvailability field is set.
      */
     boolean hasSlaAvailability();
     /**
-     * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+     * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
      * @return The slaAvailability.
      */
     context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability();
     /**
-     * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+     * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
      */
     context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder();
 
     /**
-     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
      * @return Whether the slaIsolation field is set.
      */
     boolean hasSlaIsolation();
     /**
-     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
      * @return The slaIsolation.
      */
     context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation();
     /**
-     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
      */
     context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder();
 
     /**
-     * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+     * <code>.context.Constraint_Exclusions exclusions = 10;</code>
      * @return Whether the exclusions field is set.
      */
     boolean hasExclusions();
     /**
-     * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+     * <code>.context.Constraint_Exclusions exclusions = 10;</code>
      * @return The exclusions.
      */
     context.ContextOuterClass.Constraint_Exclusions getExclusions();
     /**
-     * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+     * <code>.context.Constraint_Exclusions exclusions = 10;</code>
      */
     context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder();
 
@@ -70127,6 +69574,7 @@ public final class ContextOuterClass {
       super(builder);
     }
     private Constraint() {
+      action_ = 0;
     }
 
     @java.lang.Override
@@ -70159,9 +69607,15 @@ public final class ContextOuterClass {
             case 0:
               done = true;
               break;
-            case 10: {
+            case 8: {
+              int rawValue = input.readEnum();
+
+              action_ = rawValue;
+              break;
+            }
+            case 18: {
               context.ContextOuterClass.Constraint_Custom.Builder subBuilder = null;
-              if (constraintCase_ == 1) {
+              if (constraintCase_ == 2) {
                 subBuilder = ((context.ContextOuterClass.Constraint_Custom) constraint_).toBuilder();
               }
               constraint_ =
@@ -70170,12 +69624,12 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_Custom) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 1;
+              constraintCase_ = 2;
               break;
             }
-            case 18: {
+            case 26: {
               context.ContextOuterClass.Constraint_Schedule.Builder subBuilder = null;
-              if (constraintCase_ == 2) {
+              if (constraintCase_ == 3) {
                 subBuilder = ((context.ContextOuterClass.Constraint_Schedule) constraint_).toBuilder();
               }
               constraint_ =
@@ -70184,12 +69638,12 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_Schedule) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 2;
+              constraintCase_ = 3;
               break;
             }
-            case 26: {
+            case 34: {
               context.ContextOuterClass.Constraint_EndPointLocation.Builder subBuilder = null;
-              if (constraintCase_ == 3) {
+              if (constraintCase_ == 4) {
                 subBuilder = ((context.ContextOuterClass.Constraint_EndPointLocation) constraint_).toBuilder();
               }
               constraint_ =
@@ -70198,12 +69652,12 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_EndPointLocation) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 3;
+              constraintCase_ = 4;
               break;
             }
-            case 34: {
+            case 42: {
               context.ContextOuterClass.Constraint_EndPointPriority.Builder subBuilder = null;
-              if (constraintCase_ == 4) {
+              if (constraintCase_ == 5) {
                 subBuilder = ((context.ContextOuterClass.Constraint_EndPointPriority) constraint_).toBuilder();
               }
               constraint_ =
@@ -70212,12 +69666,12 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_EndPointPriority) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 4;
+              constraintCase_ = 5;
               break;
             }
-            case 42: {
+            case 50: {
               context.ContextOuterClass.Constraint_SLA_Capacity.Builder subBuilder = null;
-              if (constraintCase_ == 5) {
+              if (constraintCase_ == 6) {
                 subBuilder = ((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_).toBuilder();
               }
               constraint_ =
@@ -70226,12 +69680,12 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 5;
+              constraintCase_ = 6;
               break;
             }
-            case 50: {
+            case 58: {
               context.ContextOuterClass.Constraint_SLA_Latency.Builder subBuilder = null;
-              if (constraintCase_ == 6) {
+              if (constraintCase_ == 7) {
                 subBuilder = ((context.ContextOuterClass.Constraint_SLA_Latency) constraint_).toBuilder();
               }
               constraint_ =
@@ -70240,12 +69694,12 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_SLA_Latency) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 6;
+              constraintCase_ = 7;
               break;
             }
-            case 58: {
+            case 66: {
               context.ContextOuterClass.Constraint_SLA_Availability.Builder subBuilder = null;
-              if (constraintCase_ == 7) {
+              if (constraintCase_ == 8) {
                 subBuilder = ((context.ContextOuterClass.Constraint_SLA_Availability) constraint_).toBuilder();
               }
               constraint_ =
@@ -70254,12 +69708,12 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_SLA_Availability) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 7;
+              constraintCase_ = 8;
               break;
             }
-            case 66: {
+            case 74: {
               context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder subBuilder = null;
-              if (constraintCase_ == 8) {
+              if (constraintCase_ == 9) {
                 subBuilder = ((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_).toBuilder();
               }
               constraint_ =
@@ -70268,12 +69722,12 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 8;
+              constraintCase_ = 9;
               break;
             }
-            case 74: {
+            case 82: {
               context.ContextOuterClass.Constraint_Exclusions.Builder subBuilder = null;
-              if (constraintCase_ == 9) {
+              if (constraintCase_ == 10) {
                 subBuilder = ((context.ContextOuterClass.Constraint_Exclusions) constraint_).toBuilder();
               }
               constraint_ =
@@ -70282,7 +69736,7 @@ public final class ContextOuterClass {
                 subBuilder.mergeFrom((context.ContextOuterClass.Constraint_Exclusions) constraint_);
                 constraint_ = subBuilder.buildPartial();
               }
-              constraintCase_ = 9;
+              constraintCase_ = 10;
               break;
             }
             default: {
@@ -70322,15 +69776,15 @@ public final class ContextOuterClass {
     public enum ConstraintCase
         implements com.google.protobuf.Internal.EnumLite,
             com.google.protobuf.AbstractMessage.InternalOneOfEnum {
-      CUSTOM(1),
-      SCHEDULE(2),
-      ENDPOINT_LOCATION(3),
-      ENDPOINT_PRIORITY(4),
-      SLA_CAPACITY(5),
-      SLA_LATENCY(6),
-      SLA_AVAILABILITY(7),
-      SLA_ISOLATION(8),
-      EXCLUSIONS(9),
+      CUSTOM(2),
+      SCHEDULE(3),
+      ENDPOINT_LOCATION(4),
+      ENDPOINT_PRIORITY(5),
+      SLA_CAPACITY(6),
+      SLA_LATENCY(7),
+      SLA_AVAILABILITY(8),
+      SLA_ISOLATION(9),
+      EXCLUSIONS(10),
       CONSTRAINT_NOT_SET(0);
       private final int value;
       private ConstraintCase(int value) {
@@ -70348,15 +69802,15 @@ public final class ContextOuterClass {
 
       public static ConstraintCase forNumber(int value) {
         switch (value) {
-          case 1: return CUSTOM;
-          case 2: return SCHEDULE;
-          case 3: return ENDPOINT_LOCATION;
-          case 4: return ENDPOINT_PRIORITY;
-          case 5: return SLA_CAPACITY;
-          case 6: return SLA_LATENCY;
-          case 7: return SLA_AVAILABILITY;
-          case 8: return SLA_ISOLATION;
-          case 9: return EXCLUSIONS;
+          case 2: return CUSTOM;
+          case 3: return SCHEDULE;
+          case 4: return ENDPOINT_LOCATION;
+          case 5: return ENDPOINT_PRIORITY;
+          case 6: return SLA_CAPACITY;
+          case 7: return SLA_LATENCY;
+          case 8: return SLA_AVAILABILITY;
+          case 9: return SLA_ISOLATION;
+          case 10: return EXCLUSIONS;
           case 0: return CONSTRAINT_NOT_SET;
           default: return null;
         }
@@ -70372,280 +69826,299 @@ public final class ContextOuterClass {
           constraintCase_);
     }
 
-    public static final int CUSTOM_FIELD_NUMBER = 1;
+    public static final int ACTION_FIELD_NUMBER = 1;
+    private int action_;
+    /**
+     * <code>.context.ConstraintActionEnum action = 1;</code>
+     * @return The enum numeric value on the wire for action.
+     */
+    @java.lang.Override public int getActionValue() {
+      return action_;
+    }
+    /**
+     * <code>.context.ConstraintActionEnum action = 1;</code>
+     * @return The action.
+     */
+    @java.lang.Override public context.ContextOuterClass.ConstraintActionEnum getAction() {
+      @SuppressWarnings("deprecation")
+      context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.valueOf(action_);
+      return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result;
+    }
+
+    public static final int CUSTOM_FIELD_NUMBER = 2;
     /**
-     * <code>.context.Constraint_Custom custom = 1;</code>
+     * <code>.context.Constraint_Custom custom = 2;</code>
      * @return Whether the custom field is set.
      */
     @java.lang.Override
     public boolean hasCustom() {
-      return constraintCase_ == 1;
+      return constraintCase_ == 2;
     }
     /**
-     * <code>.context.Constraint_Custom custom = 1;</code>
+     * <code>.context.Constraint_Custom custom = 2;</code>
      * @return The custom.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_Custom getCustom() {
-      if (constraintCase_ == 1) {
+      if (constraintCase_ == 2) {
          return (context.ContextOuterClass.Constraint_Custom) constraint_;
       }
       return context.ContextOuterClass.Constraint_Custom.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_Custom custom = 1;</code>
+     * <code>.context.Constraint_Custom custom = 2;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() {
-      if (constraintCase_ == 1) {
+      if (constraintCase_ == 2) {
          return (context.ContextOuterClass.Constraint_Custom) constraint_;
       }
       return context.ContextOuterClass.Constraint_Custom.getDefaultInstance();
     }
 
-    public static final int SCHEDULE_FIELD_NUMBER = 2;
+    public static final int SCHEDULE_FIELD_NUMBER = 3;
     /**
-     * <code>.context.Constraint_Schedule schedule = 2;</code>
+     * <code>.context.Constraint_Schedule schedule = 3;</code>
      * @return Whether the schedule field is set.
      */
     @java.lang.Override
     public boolean hasSchedule() {
-      return constraintCase_ == 2;
+      return constraintCase_ == 3;
     }
     /**
-     * <code>.context.Constraint_Schedule schedule = 2;</code>
+     * <code>.context.Constraint_Schedule schedule = 3;</code>
      * @return The schedule.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_Schedule getSchedule() {
-      if (constraintCase_ == 2) {
+      if (constraintCase_ == 3) {
          return (context.ContextOuterClass.Constraint_Schedule) constraint_;
       }
       return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_Schedule schedule = 2;</code>
+     * <code>.context.Constraint_Schedule schedule = 3;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() {
-      if (constraintCase_ == 2) {
+      if (constraintCase_ == 3) {
          return (context.ContextOuterClass.Constraint_Schedule) constraint_;
       }
       return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance();
     }
 
-    public static final int ENDPOINT_LOCATION_FIELD_NUMBER = 3;
+    public static final int ENDPOINT_LOCATION_FIELD_NUMBER = 4;
     /**
-     * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+     * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
      * @return Whether the endpointLocation field is set.
      */
     @java.lang.Override
     public boolean hasEndpointLocation() {
-      return constraintCase_ == 3;
+      return constraintCase_ == 4;
     }
     /**
-     * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+     * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
      * @return The endpointLocation.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() {
-      if (constraintCase_ == 3) {
+      if (constraintCase_ == 4) {
          return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_;
       }
       return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+     * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() {
-      if (constraintCase_ == 3) {
+      if (constraintCase_ == 4) {
          return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_;
       }
       return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance();
     }
 
-    public static final int ENDPOINT_PRIORITY_FIELD_NUMBER = 4;
+    public static final int ENDPOINT_PRIORITY_FIELD_NUMBER = 5;
     /**
-     * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+     * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
      * @return Whether the endpointPriority field is set.
      */
     @java.lang.Override
     public boolean hasEndpointPriority() {
-      return constraintCase_ == 4;
+      return constraintCase_ == 5;
     }
     /**
-     * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+     * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
      * @return The endpointPriority.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() {
-      if (constraintCase_ == 4) {
+      if (constraintCase_ == 5) {
          return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_;
       }
       return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+     * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() {
-      if (constraintCase_ == 4) {
+      if (constraintCase_ == 5) {
          return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_;
       }
       return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance();
     }
 
-    public static final int SLA_CAPACITY_FIELD_NUMBER = 5;
+    public static final int SLA_CAPACITY_FIELD_NUMBER = 6;
     /**
-     * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+     * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
      * @return Whether the slaCapacity field is set.
      */
     @java.lang.Override
     public boolean hasSlaCapacity() {
-      return constraintCase_ == 5;
+      return constraintCase_ == 6;
     }
     /**
-     * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+     * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
      * @return The slaCapacity.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() {
-      if (constraintCase_ == 5) {
+      if (constraintCase_ == 6) {
          return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_;
       }
       return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+     * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() {
-      if (constraintCase_ == 5) {
+      if (constraintCase_ == 6) {
          return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_;
       }
       return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance();
     }
 
-    public static final int SLA_LATENCY_FIELD_NUMBER = 6;
+    public static final int SLA_LATENCY_FIELD_NUMBER = 7;
     /**
-     * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+     * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
      * @return Whether the slaLatency field is set.
      */
     @java.lang.Override
     public boolean hasSlaLatency() {
-      return constraintCase_ == 6;
+      return constraintCase_ == 7;
     }
     /**
-     * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+     * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
      * @return The slaLatency.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() {
-      if (constraintCase_ == 6) {
+      if (constraintCase_ == 7) {
          return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_;
       }
       return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+     * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() {
-      if (constraintCase_ == 6) {
+      if (constraintCase_ == 7) {
          return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_;
       }
       return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance();
     }
 
-    public static final int SLA_AVAILABILITY_FIELD_NUMBER = 7;
+    public static final int SLA_AVAILABILITY_FIELD_NUMBER = 8;
     /**
-     * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+     * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
      * @return Whether the slaAvailability field is set.
      */
     @java.lang.Override
     public boolean hasSlaAvailability() {
-      return constraintCase_ == 7;
+      return constraintCase_ == 8;
     }
     /**
-     * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+     * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
      * @return The slaAvailability.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() {
-      if (constraintCase_ == 7) {
+      if (constraintCase_ == 8) {
          return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_;
       }
       return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+     * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() {
-      if (constraintCase_ == 7) {
+      if (constraintCase_ == 8) {
          return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_;
       }
       return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance();
     }
 
-    public static final int SLA_ISOLATION_FIELD_NUMBER = 8;
+    public static final int SLA_ISOLATION_FIELD_NUMBER = 9;
     /**
-     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
      * @return Whether the slaIsolation field is set.
      */
     @java.lang.Override
     public boolean hasSlaIsolation() {
-      return constraintCase_ == 8;
+      return constraintCase_ == 9;
     }
     /**
-     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
      * @return The slaIsolation.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() {
-      if (constraintCase_ == 8) {
+      if (constraintCase_ == 9) {
          return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_;
       }
       return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+     * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() {
-      if (constraintCase_ == 8) {
+      if (constraintCase_ == 9) {
          return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_;
       }
       return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance();
     }
 
-    public static final int EXCLUSIONS_FIELD_NUMBER = 9;
+    public static final int EXCLUSIONS_FIELD_NUMBER = 10;
     /**
-     * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+     * <code>.context.Constraint_Exclusions exclusions = 10;</code>
      * @return Whether the exclusions field is set.
      */
     @java.lang.Override
     public boolean hasExclusions() {
-      return constraintCase_ == 9;
+      return constraintCase_ == 10;
     }
     /**
-     * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+     * <code>.context.Constraint_Exclusions exclusions = 10;</code>
      * @return The exclusions.
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_Exclusions getExclusions() {
-      if (constraintCase_ == 9) {
+      if (constraintCase_ == 10) {
          return (context.ContextOuterClass.Constraint_Exclusions) constraint_;
       }
       return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance();
     }
     /**
-     * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+     * <code>.context.Constraint_Exclusions exclusions = 10;</code>
      */
     @java.lang.Override
     public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() {
-      if (constraintCase_ == 9) {
+      if (constraintCase_ == 10) {
          return (context.ContextOuterClass.Constraint_Exclusions) constraint_;
       }
       return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance();
@@ -70665,32 +70138,35 @@ public final class ContextOuterClass {
     @java.lang.Override
     public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (constraintCase_ == 1) {
-        output.writeMessage(1, (context.ContextOuterClass.Constraint_Custom) constraint_);
+      if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) {
+        output.writeEnum(1, action_);
       }
       if (constraintCase_ == 2) {
-        output.writeMessage(2, (context.ContextOuterClass.Constraint_Schedule) constraint_);
+        output.writeMessage(2, (context.ContextOuterClass.Constraint_Custom) constraint_);
       }
       if (constraintCase_ == 3) {
-        output.writeMessage(3, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_);
+        output.writeMessage(3, (context.ContextOuterClass.Constraint_Schedule) constraint_);
       }
       if (constraintCase_ == 4) {
-        output.writeMessage(4, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_);
+        output.writeMessage(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_);
       }
       if (constraintCase_ == 5) {
-        output.writeMessage(5, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_);
+        output.writeMessage(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_);
       }
       if (constraintCase_ == 6) {
-        output.writeMessage(6, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_);
+        output.writeMessage(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_);
       }
       if (constraintCase_ == 7) {
-        output.writeMessage(7, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_);
+        output.writeMessage(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_);
       }
       if (constraintCase_ == 8) {
-        output.writeMessage(8, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_);
+        output.writeMessage(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_);
       }
       if (constraintCase_ == 9) {
-        output.writeMessage(9, (context.ContextOuterClass.Constraint_Exclusions) constraint_);
+        output.writeMessage(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_);
+      }
+      if (constraintCase_ == 10) {
+        output.writeMessage(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_);
       }
       unknownFields.writeTo(output);
     }
@@ -70701,41 +70177,45 @@ public final class ContextOuterClass {
       if (size != -1) return size;
 
       size = 0;
-      if (constraintCase_ == 1) {
+      if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(1, (context.ContextOuterClass.Constraint_Custom) constraint_);
+          .computeEnumSize(1, action_);
       }
       if (constraintCase_ == 2) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(2, (context.ContextOuterClass.Constraint_Schedule) constraint_);
+          .computeMessageSize(2, (context.ContextOuterClass.Constraint_Custom) constraint_);
       }
       if (constraintCase_ == 3) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_);
+          .computeMessageSize(3, (context.ContextOuterClass.Constraint_Schedule) constraint_);
       }
       if (constraintCase_ == 4) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(4, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_);
+          .computeMessageSize(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_);
       }
       if (constraintCase_ == 5) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(5, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_);
+          .computeMessageSize(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_);
       }
       if (constraintCase_ == 6) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(6, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_);
+          .computeMessageSize(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_);
       }
       if (constraintCase_ == 7) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(7, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_);
+          .computeMessageSize(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_);
       }
       if (constraintCase_ == 8) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(8, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_);
+          .computeMessageSize(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_);
       }
       if (constraintCase_ == 9) {
         size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(9, (context.ContextOuterClass.Constraint_Exclusions) constraint_);
+          .computeMessageSize(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_);
+      }
+      if (constraintCase_ == 10) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_);
       }
       size += unknownFields.getSerializedSize();
       memoizedSize = size;
@@ -70752,41 +70232,42 @@ public final class ContextOuterClass {
       }
       context.ContextOuterClass.Constraint other = (context.ContextOuterClass.Constraint) obj;
 
+      if (action_ != other.action_) return false;
       if (!getConstraintCase().equals(other.getConstraintCase())) return false;
       switch (constraintCase_) {
-        case 1:
+        case 2:
           if (!getCustom()
               .equals(other.getCustom())) return false;
           break;
-        case 2:
+        case 3:
           if (!getSchedule()
               .equals(other.getSchedule())) return false;
           break;
-        case 3:
+        case 4:
           if (!getEndpointLocation()
               .equals(other.getEndpointLocation())) return false;
           break;
-        case 4:
+        case 5:
           if (!getEndpointPriority()
               .equals(other.getEndpointPriority())) return false;
           break;
-        case 5:
+        case 6:
           if (!getSlaCapacity()
               .equals(other.getSlaCapacity())) return false;
           break;
-        case 6:
+        case 7:
           if (!getSlaLatency()
               .equals(other.getSlaLatency())) return false;
           break;
-        case 7:
+        case 8:
           if (!getSlaAvailability()
               .equals(other.getSlaAvailability())) return false;
           break;
-        case 8:
+        case 9:
           if (!getSlaIsolation()
               .equals(other.getSlaIsolation())) return false;
           break;
-        case 9:
+        case 10:
           if (!getExclusions()
               .equals(other.getExclusions())) return false;
           break;
@@ -70804,40 +70285,42 @@ public final class ContextOuterClass {
       }
       int hash = 41;
       hash = (19 * hash) + getDescriptor().hashCode();
+      hash = (37 * hash) + ACTION_FIELD_NUMBER;
+      hash = (53 * hash) + action_;
       switch (constraintCase_) {
-        case 1:
+        case 2:
           hash = (37 * hash) + CUSTOM_FIELD_NUMBER;
           hash = (53 * hash) + getCustom().hashCode();
           break;
-        case 2:
+        case 3:
           hash = (37 * hash) + SCHEDULE_FIELD_NUMBER;
           hash = (53 * hash) + getSchedule().hashCode();
           break;
-        case 3:
+        case 4:
           hash = (37 * hash) + ENDPOINT_LOCATION_FIELD_NUMBER;
           hash = (53 * hash) + getEndpointLocation().hashCode();
           break;
-        case 4:
+        case 5:
           hash = (37 * hash) + ENDPOINT_PRIORITY_FIELD_NUMBER;
           hash = (53 * hash) + getEndpointPriority().hashCode();
           break;
-        case 5:
+        case 6:
           hash = (37 * hash) + SLA_CAPACITY_FIELD_NUMBER;
           hash = (53 * hash) + getSlaCapacity().hashCode();
           break;
-        case 6:
+        case 7:
           hash = (37 * hash) + SLA_LATENCY_FIELD_NUMBER;
           hash = (53 * hash) + getSlaLatency().hashCode();
           break;
-        case 7:
+        case 8:
           hash = (37 * hash) + SLA_AVAILABILITY_FIELD_NUMBER;
           hash = (53 * hash) + getSlaAvailability().hashCode();
           break;
-        case 8:
+        case 9:
           hash = (37 * hash) + SLA_ISOLATION_FIELD_NUMBER;
           hash = (53 * hash) + getSlaIsolation().hashCode();
           break;
-        case 9:
+        case 10:
           hash = (37 * hash) + EXCLUSIONS_FIELD_NUMBER;
           hash = (53 * hash) + getExclusions().hashCode();
           break;
@@ -70977,6 +70460,8 @@ public final class ContextOuterClass {
       @java.lang.Override
       public Builder clear() {
         super.clear();
+        action_ = 0;
+
         constraintCase_ = 0;
         constraint_ = null;
         return this;
@@ -71005,63 +70490,64 @@ public final class ContextOuterClass {
       @java.lang.Override
       public context.ContextOuterClass.Constraint buildPartial() {
         context.ContextOuterClass.Constraint result = new context.ContextOuterClass.Constraint(this);
-        if (constraintCase_ == 1) {
+        result.action_ = action_;
+        if (constraintCase_ == 2) {
           if (customBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
             result.constraint_ = customBuilder_.build();
           }
         }
-        if (constraintCase_ == 2) {
+        if (constraintCase_ == 3) {
           if (scheduleBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
             result.constraint_ = scheduleBuilder_.build();
           }
         }
-        if (constraintCase_ == 3) {
+        if (constraintCase_ == 4) {
           if (endpointLocationBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
             result.constraint_ = endpointLocationBuilder_.build();
           }
         }
-        if (constraintCase_ == 4) {
+        if (constraintCase_ == 5) {
           if (endpointPriorityBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
             result.constraint_ = endpointPriorityBuilder_.build();
           }
         }
-        if (constraintCase_ == 5) {
+        if (constraintCase_ == 6) {
           if (slaCapacityBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
             result.constraint_ = slaCapacityBuilder_.build();
           }
         }
-        if (constraintCase_ == 6) {
+        if (constraintCase_ == 7) {
           if (slaLatencyBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
             result.constraint_ = slaLatencyBuilder_.build();
           }
         }
-        if (constraintCase_ == 7) {
+        if (constraintCase_ == 8) {
           if (slaAvailabilityBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
             result.constraint_ = slaAvailabilityBuilder_.build();
           }
         }
-        if (constraintCase_ == 8) {
+        if (constraintCase_ == 9) {
           if (slaIsolationBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
             result.constraint_ = slaIsolationBuilder_.build();
           }
         }
-        if (constraintCase_ == 9) {
+        if (constraintCase_ == 10) {
           if (exclusionsBuilder_ == null) {
             result.constraint_ = constraint_;
           } else {
@@ -71117,6 +70603,9 @@ public final class ContextOuterClass {
 
       public Builder mergeFrom(context.ContextOuterClass.Constraint other) {
         if (other == context.ContextOuterClass.Constraint.getDefaultInstance()) return this;
+        if (other.action_ != 0) {
+          setActionValue(other.getActionValue());
+        }
         switch (other.getConstraintCase()) {
           case CUSTOM: {
             mergeCustom(other.getCustom());
@@ -71202,36 +70691,90 @@ public final class ContextOuterClass {
       }
 
 
+      private int action_ = 0;
+      /**
+       * <code>.context.ConstraintActionEnum action = 1;</code>
+       * @return The enum numeric value on the wire for action.
+       */
+      @java.lang.Override public int getActionValue() {
+        return action_;
+      }
+      /**
+       * <code>.context.ConstraintActionEnum action = 1;</code>
+       * @param value The enum numeric value on the wire for action to set.
+       * @return This builder for chaining.
+       */
+      public Builder setActionValue(int value) {
+        
+        action_ = value;
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.context.ConstraintActionEnum action = 1;</code>
+       * @return The action.
+       */
+      @java.lang.Override
+      public context.ContextOuterClass.ConstraintActionEnum getAction() {
+        @SuppressWarnings("deprecation")
+        context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.valueOf(action_);
+        return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result;
+      }
+      /**
+       * <code>.context.ConstraintActionEnum action = 1;</code>
+       * @param value The action to set.
+       * @return This builder for chaining.
+       */
+      public Builder setAction(context.ContextOuterClass.ConstraintActionEnum value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        
+        action_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>.context.ConstraintActionEnum action = 1;</code>
+       * @return This builder for chaining.
+       */
+      public Builder clearAction() {
+        
+        action_ = 0;
+        onChanged();
+        return this;
+      }
+
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> customBuilder_;
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        * @return Whether the custom field is set.
        */
       @java.lang.Override
       public boolean hasCustom() {
-        return constraintCase_ == 1;
+        return constraintCase_ == 2;
       }
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        * @return The custom.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_Custom getCustom() {
         if (customBuilder_ == null) {
-          if (constraintCase_ == 1) {
+          if (constraintCase_ == 2) {
             return (context.ContextOuterClass.Constraint_Custom) constraint_;
           }
           return context.ContextOuterClass.Constraint_Custom.getDefaultInstance();
         } else {
-          if (constraintCase_ == 1) {
+          if (constraintCase_ == 2) {
             return customBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_Custom.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        */
       public Builder setCustom(context.ContextOuterClass.Constraint_Custom value) {
         if (customBuilder_ == null) {
@@ -71243,11 +70786,11 @@ public final class ContextOuterClass {
         } else {
           customBuilder_.setMessage(value);
         }
-        constraintCase_ = 1;
+        constraintCase_ = 2;
         return this;
       }
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        */
       public Builder setCustom(
           context.ContextOuterClass.Constraint_Custom.Builder builderForValue) {
@@ -71257,15 +70800,15 @@ public final class ContextOuterClass {
         } else {
           customBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 1;
+        constraintCase_ = 2;
         return this;
       }
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        */
       public Builder mergeCustom(context.ContextOuterClass.Constraint_Custom value) {
         if (customBuilder_ == null) {
-          if (constraintCase_ == 1 &&
+          if (constraintCase_ == 2 &&
               constraint_ != context.ContextOuterClass.Constraint_Custom.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_Custom.newBuilder((context.ContextOuterClass.Constraint_Custom) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -71274,26 +70817,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 1) {
+          if (constraintCase_ == 2) {
             customBuilder_.mergeFrom(value);
           }
           customBuilder_.setMessage(value);
         }
-        constraintCase_ = 1;
+        constraintCase_ = 2;
         return this;
       }
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        */
       public Builder clearCustom() {
         if (customBuilder_ == null) {
-          if (constraintCase_ == 1) {
+          if (constraintCase_ == 2) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 1) {
+          if (constraintCase_ == 2) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -71302,33 +70845,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        */
       public context.ContextOuterClass.Constraint_Custom.Builder getCustomBuilder() {
         return getCustomFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() {
-        if ((constraintCase_ == 1) && (customBuilder_ != null)) {
+        if ((constraintCase_ == 2) && (customBuilder_ != null)) {
           return customBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 1) {
+          if (constraintCase_ == 2) {
             return (context.ContextOuterClass.Constraint_Custom) constraint_;
           }
           return context.ContextOuterClass.Constraint_Custom.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_Custom custom = 1;</code>
+       * <code>.context.Constraint_Custom custom = 2;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> 
           getCustomFieldBuilder() {
         if (customBuilder_ == null) {
-          if (!(constraintCase_ == 1)) {
+          if (!(constraintCase_ == 2)) {
             constraint_ = context.ContextOuterClass.Constraint_Custom.getDefaultInstance();
           }
           customBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -71338,7 +70881,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 1;
+        constraintCase_ = 2;
         onChanged();;
         return customBuilder_;
       }
@@ -71346,33 +70889,33 @@ public final class ContextOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> scheduleBuilder_;
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        * @return Whether the schedule field is set.
        */
       @java.lang.Override
       public boolean hasSchedule() {
-        return constraintCase_ == 2;
+        return constraintCase_ == 3;
       }
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        * @return The schedule.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_Schedule getSchedule() {
         if (scheduleBuilder_ == null) {
-          if (constraintCase_ == 2) {
+          if (constraintCase_ == 3) {
             return (context.ContextOuterClass.Constraint_Schedule) constraint_;
           }
           return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance();
         } else {
-          if (constraintCase_ == 2) {
+          if (constraintCase_ == 3) {
             return scheduleBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        */
       public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule value) {
         if (scheduleBuilder_ == null) {
@@ -71384,11 +70927,11 @@ public final class ContextOuterClass {
         } else {
           scheduleBuilder_.setMessage(value);
         }
-        constraintCase_ = 2;
+        constraintCase_ = 3;
         return this;
       }
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        */
       public Builder setSchedule(
           context.ContextOuterClass.Constraint_Schedule.Builder builderForValue) {
@@ -71398,15 +70941,15 @@ public final class ContextOuterClass {
         } else {
           scheduleBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 2;
+        constraintCase_ = 3;
         return this;
       }
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        */
       public Builder mergeSchedule(context.ContextOuterClass.Constraint_Schedule value) {
         if (scheduleBuilder_ == null) {
-          if (constraintCase_ == 2 &&
+          if (constraintCase_ == 3 &&
               constraint_ != context.ContextOuterClass.Constraint_Schedule.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_Schedule.newBuilder((context.ContextOuterClass.Constraint_Schedule) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -71415,26 +70958,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 2) {
+          if (constraintCase_ == 3) {
             scheduleBuilder_.mergeFrom(value);
           }
           scheduleBuilder_.setMessage(value);
         }
-        constraintCase_ = 2;
+        constraintCase_ = 3;
         return this;
       }
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        */
       public Builder clearSchedule() {
         if (scheduleBuilder_ == null) {
-          if (constraintCase_ == 2) {
+          if (constraintCase_ == 3) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 2) {
+          if (constraintCase_ == 3) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -71443,33 +70986,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        */
       public context.ContextOuterClass.Constraint_Schedule.Builder getScheduleBuilder() {
         return getScheduleFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() {
-        if ((constraintCase_ == 2) && (scheduleBuilder_ != null)) {
+        if ((constraintCase_ == 3) && (scheduleBuilder_ != null)) {
           return scheduleBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 2) {
+          if (constraintCase_ == 3) {
             return (context.ContextOuterClass.Constraint_Schedule) constraint_;
           }
           return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_Schedule schedule = 2;</code>
+       * <code>.context.Constraint_Schedule schedule = 3;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> 
           getScheduleFieldBuilder() {
         if (scheduleBuilder_ == null) {
-          if (!(constraintCase_ == 2)) {
+          if (!(constraintCase_ == 3)) {
             constraint_ = context.ContextOuterClass.Constraint_Schedule.getDefaultInstance();
           }
           scheduleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -71479,7 +71022,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 2;
+        constraintCase_ = 3;
         onChanged();;
         return scheduleBuilder_;
       }
@@ -71487,33 +71030,33 @@ public final class ContextOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> endpointLocationBuilder_;
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        * @return Whether the endpointLocation field is set.
        */
       @java.lang.Override
       public boolean hasEndpointLocation() {
-        return constraintCase_ == 3;
+        return constraintCase_ == 4;
       }
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        * @return The endpointLocation.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() {
         if (endpointLocationBuilder_ == null) {
-          if (constraintCase_ == 3) {
+          if (constraintCase_ == 4) {
             return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_;
           }
           return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance();
         } else {
-          if (constraintCase_ == 3) {
+          if (constraintCase_ == 4) {
             return endpointLocationBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        */
       public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) {
         if (endpointLocationBuilder_ == null) {
@@ -71525,11 +71068,11 @@ public final class ContextOuterClass {
         } else {
           endpointLocationBuilder_.setMessage(value);
         }
-        constraintCase_ = 3;
+        constraintCase_ = 4;
         return this;
       }
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        */
       public Builder setEndpointLocation(
           context.ContextOuterClass.Constraint_EndPointLocation.Builder builderForValue) {
@@ -71539,15 +71082,15 @@ public final class ContextOuterClass {
         } else {
           endpointLocationBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 3;
+        constraintCase_ = 4;
         return this;
       }
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        */
       public Builder mergeEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) {
         if (endpointLocationBuilder_ == null) {
-          if (constraintCase_ == 3 &&
+          if (constraintCase_ == 4 &&
               constraint_ != context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.newBuilder((context.ContextOuterClass.Constraint_EndPointLocation) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -71556,26 +71099,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 3) {
+          if (constraintCase_ == 4) {
             endpointLocationBuilder_.mergeFrom(value);
           }
           endpointLocationBuilder_.setMessage(value);
         }
-        constraintCase_ = 3;
+        constraintCase_ = 4;
         return this;
       }
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        */
       public Builder clearEndpointLocation() {
         if (endpointLocationBuilder_ == null) {
-          if (constraintCase_ == 3) {
+          if (constraintCase_ == 4) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 3) {
+          if (constraintCase_ == 4) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -71584,33 +71127,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        */
       public context.ContextOuterClass.Constraint_EndPointLocation.Builder getEndpointLocationBuilder() {
         return getEndpointLocationFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() {
-        if ((constraintCase_ == 3) && (endpointLocationBuilder_ != null)) {
+        if ((constraintCase_ == 4) && (endpointLocationBuilder_ != null)) {
           return endpointLocationBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 3) {
+          if (constraintCase_ == 4) {
             return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_;
           }
           return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_EndPointLocation endpoint_location = 3;</code>
+       * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> 
           getEndpointLocationFieldBuilder() {
         if (endpointLocationBuilder_ == null) {
-          if (!(constraintCase_ == 3)) {
+          if (!(constraintCase_ == 4)) {
             constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance();
           }
           endpointLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -71620,7 +71163,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 3;
+        constraintCase_ = 4;
         onChanged();;
         return endpointLocationBuilder_;
       }
@@ -71628,33 +71171,33 @@ public final class ContextOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> endpointPriorityBuilder_;
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        * @return Whether the endpointPriority field is set.
        */
       @java.lang.Override
       public boolean hasEndpointPriority() {
-        return constraintCase_ == 4;
+        return constraintCase_ == 5;
       }
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        * @return The endpointPriority.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() {
         if (endpointPriorityBuilder_ == null) {
-          if (constraintCase_ == 4) {
+          if (constraintCase_ == 5) {
             return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_;
           }
           return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance();
         } else {
-          if (constraintCase_ == 4) {
+          if (constraintCase_ == 5) {
             return endpointPriorityBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        */
       public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) {
         if (endpointPriorityBuilder_ == null) {
@@ -71666,11 +71209,11 @@ public final class ContextOuterClass {
         } else {
           endpointPriorityBuilder_.setMessage(value);
         }
-        constraintCase_ = 4;
+        constraintCase_ = 5;
         return this;
       }
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        */
       public Builder setEndpointPriority(
           context.ContextOuterClass.Constraint_EndPointPriority.Builder builderForValue) {
@@ -71680,15 +71223,15 @@ public final class ContextOuterClass {
         } else {
           endpointPriorityBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 4;
+        constraintCase_ = 5;
         return this;
       }
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        */
       public Builder mergeEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) {
         if (endpointPriorityBuilder_ == null) {
-          if (constraintCase_ == 4 &&
+          if (constraintCase_ == 5 &&
               constraint_ != context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.newBuilder((context.ContextOuterClass.Constraint_EndPointPriority) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -71697,26 +71240,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 4) {
+          if (constraintCase_ == 5) {
             endpointPriorityBuilder_.mergeFrom(value);
           }
           endpointPriorityBuilder_.setMessage(value);
         }
-        constraintCase_ = 4;
+        constraintCase_ = 5;
         return this;
       }
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        */
       public Builder clearEndpointPriority() {
         if (endpointPriorityBuilder_ == null) {
-          if (constraintCase_ == 4) {
+          if (constraintCase_ == 5) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 4) {
+          if (constraintCase_ == 5) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -71725,33 +71268,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        */
       public context.ContextOuterClass.Constraint_EndPointPriority.Builder getEndpointPriorityBuilder() {
         return getEndpointPriorityFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() {
-        if ((constraintCase_ == 4) && (endpointPriorityBuilder_ != null)) {
+        if ((constraintCase_ == 5) && (endpointPriorityBuilder_ != null)) {
           return endpointPriorityBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 4) {
+          if (constraintCase_ == 5) {
             return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_;
           }
           return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_EndPointPriority endpoint_priority = 4;</code>
+       * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> 
           getEndpointPriorityFieldBuilder() {
         if (endpointPriorityBuilder_ == null) {
-          if (!(constraintCase_ == 4)) {
+          if (!(constraintCase_ == 5)) {
             constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance();
           }
           endpointPriorityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -71761,7 +71304,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 4;
+        constraintCase_ = 5;
         onChanged();;
         return endpointPriorityBuilder_;
       }
@@ -71769,33 +71312,33 @@ public final class ContextOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> slaCapacityBuilder_;
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        * @return Whether the slaCapacity field is set.
        */
       @java.lang.Override
       public boolean hasSlaCapacity() {
-        return constraintCase_ == 5;
+        return constraintCase_ == 6;
       }
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        * @return The slaCapacity.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() {
         if (slaCapacityBuilder_ == null) {
-          if (constraintCase_ == 5) {
+          if (constraintCase_ == 6) {
             return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_;
           }
           return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance();
         } else {
-          if (constraintCase_ == 5) {
+          if (constraintCase_ == 6) {
             return slaCapacityBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        */
       public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) {
         if (slaCapacityBuilder_ == null) {
@@ -71807,11 +71350,11 @@ public final class ContextOuterClass {
         } else {
           slaCapacityBuilder_.setMessage(value);
         }
-        constraintCase_ = 5;
+        constraintCase_ = 6;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        */
       public Builder setSlaCapacity(
           context.ContextOuterClass.Constraint_SLA_Capacity.Builder builderForValue) {
@@ -71821,15 +71364,15 @@ public final class ContextOuterClass {
         } else {
           slaCapacityBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 5;
+        constraintCase_ = 6;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        */
       public Builder mergeSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) {
         if (slaCapacityBuilder_ == null) {
-          if (constraintCase_ == 5 &&
+          if (constraintCase_ == 6 &&
               constraint_ != context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.newBuilder((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -71838,26 +71381,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 5) {
+          if (constraintCase_ == 6) {
             slaCapacityBuilder_.mergeFrom(value);
           }
           slaCapacityBuilder_.setMessage(value);
         }
-        constraintCase_ = 5;
+        constraintCase_ = 6;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        */
       public Builder clearSlaCapacity() {
         if (slaCapacityBuilder_ == null) {
-          if (constraintCase_ == 5) {
+          if (constraintCase_ == 6) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 5) {
+          if (constraintCase_ == 6) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -71866,33 +71409,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        */
       public context.ContextOuterClass.Constraint_SLA_Capacity.Builder getSlaCapacityBuilder() {
         return getSlaCapacityFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() {
-        if ((constraintCase_ == 5) && (slaCapacityBuilder_ != null)) {
+        if ((constraintCase_ == 6) && (slaCapacityBuilder_ != null)) {
           return slaCapacityBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 5) {
+          if (constraintCase_ == 6) {
             return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_;
           }
           return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_SLA_Capacity sla_capacity = 5;</code>
+       * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> 
           getSlaCapacityFieldBuilder() {
         if (slaCapacityBuilder_ == null) {
-          if (!(constraintCase_ == 5)) {
+          if (!(constraintCase_ == 6)) {
             constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance();
           }
           slaCapacityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -71902,7 +71445,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 5;
+        constraintCase_ = 6;
         onChanged();;
         return slaCapacityBuilder_;
       }
@@ -71910,33 +71453,33 @@ public final class ContextOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> slaLatencyBuilder_;
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        * @return Whether the slaLatency field is set.
        */
       @java.lang.Override
       public boolean hasSlaLatency() {
-        return constraintCase_ == 6;
+        return constraintCase_ == 7;
       }
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        * @return The slaLatency.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() {
         if (slaLatencyBuilder_ == null) {
-          if (constraintCase_ == 6) {
+          if (constraintCase_ == 7) {
             return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_;
           }
           return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance();
         } else {
-          if (constraintCase_ == 6) {
+          if (constraintCase_ == 7) {
             return slaLatencyBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        */
       public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) {
         if (slaLatencyBuilder_ == null) {
@@ -71948,11 +71491,11 @@ public final class ContextOuterClass {
         } else {
           slaLatencyBuilder_.setMessage(value);
         }
-        constraintCase_ = 6;
+        constraintCase_ = 7;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        */
       public Builder setSlaLatency(
           context.ContextOuterClass.Constraint_SLA_Latency.Builder builderForValue) {
@@ -71962,15 +71505,15 @@ public final class ContextOuterClass {
         } else {
           slaLatencyBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 6;
+        constraintCase_ = 7;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        */
       public Builder mergeSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) {
         if (slaLatencyBuilder_ == null) {
-          if (constraintCase_ == 6 &&
+          if (constraintCase_ == 7 &&
               constraint_ != context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.newBuilder((context.ContextOuterClass.Constraint_SLA_Latency) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -71979,26 +71522,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 6) {
+          if (constraintCase_ == 7) {
             slaLatencyBuilder_.mergeFrom(value);
           }
           slaLatencyBuilder_.setMessage(value);
         }
-        constraintCase_ = 6;
+        constraintCase_ = 7;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        */
       public Builder clearSlaLatency() {
         if (slaLatencyBuilder_ == null) {
-          if (constraintCase_ == 6) {
+          if (constraintCase_ == 7) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 6) {
+          if (constraintCase_ == 7) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -72007,33 +71550,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        */
       public context.ContextOuterClass.Constraint_SLA_Latency.Builder getSlaLatencyBuilder() {
         return getSlaLatencyFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() {
-        if ((constraintCase_ == 6) && (slaLatencyBuilder_ != null)) {
+        if ((constraintCase_ == 7) && (slaLatencyBuilder_ != null)) {
           return slaLatencyBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 6) {
+          if (constraintCase_ == 7) {
             return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_;
           }
           return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_SLA_Latency sla_latency = 6;</code>
+       * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> 
           getSlaLatencyFieldBuilder() {
         if (slaLatencyBuilder_ == null) {
-          if (!(constraintCase_ == 6)) {
+          if (!(constraintCase_ == 7)) {
             constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance();
           }
           slaLatencyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -72043,7 +71586,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 6;
+        constraintCase_ = 7;
         onChanged();;
         return slaLatencyBuilder_;
       }
@@ -72051,33 +71594,33 @@ public final class ContextOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> slaAvailabilityBuilder_;
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        * @return Whether the slaAvailability field is set.
        */
       @java.lang.Override
       public boolean hasSlaAvailability() {
-        return constraintCase_ == 7;
+        return constraintCase_ == 8;
       }
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        * @return The slaAvailability.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() {
         if (slaAvailabilityBuilder_ == null) {
-          if (constraintCase_ == 7) {
+          if (constraintCase_ == 8) {
             return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_;
           }
           return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance();
         } else {
-          if (constraintCase_ == 7) {
+          if (constraintCase_ == 8) {
             return slaAvailabilityBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        */
       public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) {
         if (slaAvailabilityBuilder_ == null) {
@@ -72089,11 +71632,11 @@ public final class ContextOuterClass {
         } else {
           slaAvailabilityBuilder_.setMessage(value);
         }
-        constraintCase_ = 7;
+        constraintCase_ = 8;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        */
       public Builder setSlaAvailability(
           context.ContextOuterClass.Constraint_SLA_Availability.Builder builderForValue) {
@@ -72103,15 +71646,15 @@ public final class ContextOuterClass {
         } else {
           slaAvailabilityBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 7;
+        constraintCase_ = 8;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        */
       public Builder mergeSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) {
         if (slaAvailabilityBuilder_ == null) {
-          if (constraintCase_ == 7 &&
+          if (constraintCase_ == 8 &&
               constraint_ != context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.newBuilder((context.ContextOuterClass.Constraint_SLA_Availability) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -72120,26 +71663,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 7) {
+          if (constraintCase_ == 8) {
             slaAvailabilityBuilder_.mergeFrom(value);
           }
           slaAvailabilityBuilder_.setMessage(value);
         }
-        constraintCase_ = 7;
+        constraintCase_ = 8;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        */
       public Builder clearSlaAvailability() {
         if (slaAvailabilityBuilder_ == null) {
-          if (constraintCase_ == 7) {
+          if (constraintCase_ == 8) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 7) {
+          if (constraintCase_ == 8) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -72148,33 +71691,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        */
       public context.ContextOuterClass.Constraint_SLA_Availability.Builder getSlaAvailabilityBuilder() {
         return getSlaAvailabilityFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() {
-        if ((constraintCase_ == 7) && (slaAvailabilityBuilder_ != null)) {
+        if ((constraintCase_ == 8) && (slaAvailabilityBuilder_ != null)) {
           return slaAvailabilityBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 7) {
+          if (constraintCase_ == 8) {
             return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_;
           }
           return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_SLA_Availability sla_availability = 7;</code>
+       * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> 
           getSlaAvailabilityFieldBuilder() {
         if (slaAvailabilityBuilder_ == null) {
-          if (!(constraintCase_ == 7)) {
+          if (!(constraintCase_ == 8)) {
             constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance();
           }
           slaAvailabilityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -72184,7 +71727,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 7;
+        constraintCase_ = 8;
         onChanged();;
         return slaAvailabilityBuilder_;
       }
@@ -72192,33 +71735,33 @@ public final class ContextOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> slaIsolationBuilder_;
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        * @return Whether the slaIsolation field is set.
        */
       @java.lang.Override
       public boolean hasSlaIsolation() {
-        return constraintCase_ == 8;
+        return constraintCase_ == 9;
       }
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        * @return The slaIsolation.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() {
         if (slaIsolationBuilder_ == null) {
-          if (constraintCase_ == 8) {
+          if (constraintCase_ == 9) {
             return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_;
           }
           return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance();
         } else {
-          if (constraintCase_ == 8) {
+          if (constraintCase_ == 9) {
             return slaIsolationBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        */
       public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) {
         if (slaIsolationBuilder_ == null) {
@@ -72230,11 +71773,11 @@ public final class ContextOuterClass {
         } else {
           slaIsolationBuilder_.setMessage(value);
         }
-        constraintCase_ = 8;
+        constraintCase_ = 9;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        */
       public Builder setSlaIsolation(
           context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder builderForValue) {
@@ -72244,15 +71787,15 @@ public final class ContextOuterClass {
         } else {
           slaIsolationBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 8;
+        constraintCase_ = 9;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        */
       public Builder mergeSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) {
         if (slaIsolationBuilder_ == null) {
-          if (constraintCase_ == 8 &&
+          if (constraintCase_ == 9 &&
               constraint_ != context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -72261,26 +71804,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 8) {
+          if (constraintCase_ == 9) {
             slaIsolationBuilder_.mergeFrom(value);
           }
           slaIsolationBuilder_.setMessage(value);
         }
-        constraintCase_ = 8;
+        constraintCase_ = 9;
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        */
       public Builder clearSlaIsolation() {
         if (slaIsolationBuilder_ == null) {
-          if (constraintCase_ == 8) {
+          if (constraintCase_ == 9) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 8) {
+          if (constraintCase_ == 9) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -72289,33 +71832,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        */
       public context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder getSlaIsolationBuilder() {
         return getSlaIsolationFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() {
-        if ((constraintCase_ == 8) && (slaIsolationBuilder_ != null)) {
+        if ((constraintCase_ == 9) && (slaIsolationBuilder_ != null)) {
           return slaIsolationBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 8) {
+          if (constraintCase_ == 9) {
             return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_;
           }
           return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 8;</code>
+       * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> 
           getSlaIsolationFieldBuilder() {
         if (slaIsolationBuilder_ == null) {
-          if (!(constraintCase_ == 8)) {
+          if (!(constraintCase_ == 9)) {
             constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance();
           }
           slaIsolationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -72325,7 +71868,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 8;
+        constraintCase_ = 9;
         onChanged();;
         return slaIsolationBuilder_;
       }
@@ -72333,33 +71876,33 @@ public final class ContextOuterClass {
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> exclusionsBuilder_;
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        * @return Whether the exclusions field is set.
        */
       @java.lang.Override
       public boolean hasExclusions() {
-        return constraintCase_ == 9;
+        return constraintCase_ == 10;
       }
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        * @return The exclusions.
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_Exclusions getExclusions() {
         if (exclusionsBuilder_ == null) {
-          if (constraintCase_ == 9) {
+          if (constraintCase_ == 10) {
             return (context.ContextOuterClass.Constraint_Exclusions) constraint_;
           }
           return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance();
         } else {
-          if (constraintCase_ == 9) {
+          if (constraintCase_ == 10) {
             return exclusionsBuilder_.getMessage();
           }
           return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        */
       public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions value) {
         if (exclusionsBuilder_ == null) {
@@ -72371,11 +71914,11 @@ public final class ContextOuterClass {
         } else {
           exclusionsBuilder_.setMessage(value);
         }
-        constraintCase_ = 9;
+        constraintCase_ = 10;
         return this;
       }
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        */
       public Builder setExclusions(
           context.ContextOuterClass.Constraint_Exclusions.Builder builderForValue) {
@@ -72385,15 +71928,15 @@ public final class ContextOuterClass {
         } else {
           exclusionsBuilder_.setMessage(builderForValue.build());
         }
-        constraintCase_ = 9;
+        constraintCase_ = 10;
         return this;
       }
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        */
       public Builder mergeExclusions(context.ContextOuterClass.Constraint_Exclusions value) {
         if (exclusionsBuilder_ == null) {
-          if (constraintCase_ == 9 &&
+          if (constraintCase_ == 10 &&
               constraint_ != context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance()) {
             constraint_ = context.ContextOuterClass.Constraint_Exclusions.newBuilder((context.ContextOuterClass.Constraint_Exclusions) constraint_)
                 .mergeFrom(value).buildPartial();
@@ -72402,26 +71945,26 @@ public final class ContextOuterClass {
           }
           onChanged();
         } else {
-          if (constraintCase_ == 9) {
+          if (constraintCase_ == 10) {
             exclusionsBuilder_.mergeFrom(value);
           }
           exclusionsBuilder_.setMessage(value);
         }
-        constraintCase_ = 9;
+        constraintCase_ = 10;
         return this;
       }
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        */
       public Builder clearExclusions() {
         if (exclusionsBuilder_ == null) {
-          if (constraintCase_ == 9) {
+          if (constraintCase_ == 10) {
             constraintCase_ = 0;
             constraint_ = null;
             onChanged();
           }
         } else {
-          if (constraintCase_ == 9) {
+          if (constraintCase_ == 10) {
             constraintCase_ = 0;
             constraint_ = null;
           }
@@ -72430,33 +71973,33 @@ public final class ContextOuterClass {
         return this;
       }
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        */
       public context.ContextOuterClass.Constraint_Exclusions.Builder getExclusionsBuilder() {
         return getExclusionsFieldBuilder().getBuilder();
       }
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        */
       @java.lang.Override
       public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() {
-        if ((constraintCase_ == 9) && (exclusionsBuilder_ != null)) {
+        if ((constraintCase_ == 10) && (exclusionsBuilder_ != null)) {
           return exclusionsBuilder_.getMessageOrBuilder();
         } else {
-          if (constraintCase_ == 9) {
+          if (constraintCase_ == 10) {
             return (context.ContextOuterClass.Constraint_Exclusions) constraint_;
           }
           return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance();
         }
       }
       /**
-       * <code>.context.Constraint_Exclusions exclusions = 9;</code>
+       * <code>.context.Constraint_Exclusions exclusions = 10;</code>
        */
       private com.google.protobuf.SingleFieldBuilderV3<
           context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> 
           getExclusionsFieldBuilder() {
         if (exclusionsBuilder_ == null) {
-          if (!(constraintCase_ == 9)) {
+          if (!(constraintCase_ == 10)) {
             constraint_ = context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance();
           }
           exclusionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
@@ -72466,7 +72009,7 @@ public final class ContextOuterClass {
                   isClean());
           constraint_ = null;
         }
-        constraintCase_ = 9;
+        constraintCase_ = 10;
         onChanged();;
         return exclusionsBuilder_;
       }
@@ -74645,131 +74188,136 @@ public final class ContextOuterClass {
       "\030\001 \001(\010\022%\n\ndevice_ids\030\002 \003(\0132\021.context.Dev" +
       "iceId\022)\n\014endpoint_ids\030\003 \003(\0132\023.context.En" +
       "dPointId\022!\n\010link_ids\030\004 \003(\0132\017.context.Lin" +
-      "kId\"\254\004\n\nConstraint\022,\n\006custom\030\001 \001(\0132\032.con" +
-      "text.Constraint_CustomH\000\0220\n\010schedule\030\002 \001" +
-      "(\0132\034.context.Constraint_ScheduleH\000\022A\n\021en" +
-      "dpoint_location\030\003 \001(\0132$.context.Constrai" +
-      "nt_EndPointLocationH\000\022A\n\021endpoint_priori" +
-      "ty\030\004 \001(\0132$.context.Constraint_EndPointPr" +
-      "iorityH\000\0228\n\014sla_capacity\030\005 \001(\0132 .context" +
-      ".Constraint_SLA_CapacityH\000\0226\n\013sla_latenc" +
-      "y\030\006 \001(\0132\037.context.Constraint_SLA_Latency" +
-      "H\000\022@\n\020sla_availability\030\007 \001(\0132$.context.C" +
-      "onstraint_SLA_AvailabilityH\000\022@\n\rsla_isol" +
-      "ation\030\010 \001(\0132\'.context.Constraint_SLA_Iso" +
-      "lation_levelH\000\0224\n\nexclusions\030\t \001(\0132\036.con" +
-      "text.Constraint_ExclusionsH\000B\014\n\nconstrai" +
-      "nt\"^\n\022TeraFlowController\022&\n\ncontext_id\030\001" +
-      " \001(\0132\022.context.ContextId\022\022\n\nip_address\030\002" +
-      " \001(\t\022\014\n\004port\030\003 \001(\r\"U\n\024AuthenticationResu" +
-      "lt\022&\n\ncontext_id\030\001 \001(\0132\022.context.Context" +
-      "Id\022\025\n\rauthenticated\030\002 \001(\010*j\n\rEventTypeEn" +
-      "um\022\027\n\023EVENTTYPE_UNDEFINED\020\000\022\024\n\020EVENTTYPE" +
-      "_CREATE\020\001\022\024\n\020EVENTTYPE_UPDATE\020\002\022\024\n\020EVENT" +
-      "TYPE_REMOVE\020\003*\367\001\n\020DeviceDriverEnum\022\032\n\026DE" +
-      "VICEDRIVER_UNDEFINED\020\000\022\033\n\027DEVICEDRIVER_O" +
-      "PENCONFIG\020\001\022\036\n\032DEVICEDRIVER_TRANSPORT_AP" +
-      "I\020\002\022\023\n\017DEVICEDRIVER_P4\020\003\022&\n\"DEVICEDRIVER" +
-      "_IETF_NETWORK_TOPOLOGY\020\004\022\033\n\027DEVICEDRIVER" +
-      "_ONF_TR_352\020\005\022\023\n\017DEVICEDRIVER_XR\020\006\022\033\n\027DE" +
-      "VICEDRIVER_IETF_L2VPN\020\007*\217\001\n\033DeviceOperat" +
-      "ionalStatusEnum\022%\n!DEVICEOPERATIONALSTAT" +
-      "US_UNDEFINED\020\000\022$\n DEVICEOPERATIONALSTATU" +
-      "S_DISABLED\020\001\022#\n\037DEVICEOPERATIONALSTATUS_" +
-      "ENABLED\020\002*\201\001\n\017ServiceTypeEnum\022\027\n\023SERVICE" +
-      "TYPE_UNKNOWN\020\000\022\024\n\020SERVICETYPE_L3NM\020\001\022\024\n\020" +
-      "SERVICETYPE_L2NM\020\002\022)\n%SERVICETYPE_TAPI_C" +
-      "ONNECTIVITY_SERVICE\020\003*\304\001\n\021ServiceStatusE" +
-      "num\022\033\n\027SERVICESTATUS_UNDEFINED\020\000\022\031\n\025SERV" +
-      "ICESTATUS_PLANNED\020\001\022\030\n\024SERVICESTATUS_ACT" +
-      "IVE\020\002\022\032\n\026SERVICESTATUS_UPDATING\020\003\022!\n\035SER" +
-      "VICESTATUS_PENDING_REMOVAL\020\004\022\036\n\032SERVICES" +
-      "TATUS_SLA_VIOLATED\020\005*\251\001\n\017SliceStatusEnum" +
-      "\022\031\n\025SLICESTATUS_UNDEFINED\020\000\022\027\n\023SLICESTAT" +
-      "US_PLANNED\020\001\022\024\n\020SLICESTATUS_INIT\020\002\022\026\n\022SL" +
-      "ICESTATUS_ACTIVE\020\003\022\026\n\022SLICESTATUS_DEINIT" +
-      "\020\004\022\034\n\030SLICESTATUS_SLA_VIOLATED\020\005*]\n\020Conf" +
-      "igActionEnum\022\032\n\026CONFIGACTION_UNDEFINED\020\000" +
-      "\022\024\n\020CONFIGACTION_SET\020\001\022\027\n\023CONFIGACTION_D" +
-      "ELETE\020\002*\203\002\n\022IsolationLevelEnum\022\020\n\014NO_ISO" +
-      "LATION\020\000\022\026\n\022PHYSICAL_ISOLATION\020\001\022\025\n\021LOGI" +
-      "CAL_ISOLATION\020\002\022\025\n\021PROCESS_ISOLATION\020\003\022\035" +
-      "\n\031PHYSICAL_MEMORY_ISOLATION\020\004\022\036\n\032PHYSICA" +
-      "L_NETWORK_ISOLATION\020\005\022\036\n\032VIRTUAL_RESOURC" +
-      "E_ISOLATION\020\006\022\037\n\033NETWORK_FUNCTIONS_ISOLA" +
-      "TION\020\007\022\025\n\021SERVICE_ISOLATION\020\0102\245\026\n\016Contex" +
-      "tService\022:\n\016ListContextIds\022\016.context.Emp" +
-      "ty\032\026.context.ContextIdList\"\000\0226\n\014ListCont" +
-      "exts\022\016.context.Empty\032\024.context.ContextLi" +
-      "st\"\000\0224\n\nGetContext\022\022.context.ContextId\032\020" +
-      ".context.Context\"\000\0224\n\nSetContext\022\020.conte" +
-      "xt.Context\032\022.context.ContextId\"\000\0225\n\rRemo" +
-      "veContext\022\022.context.ContextId\032\016.context." +
-      "Empty\"\000\022=\n\020GetContextEvents\022\016.context.Em" +
-      "pty\032\025.context.ContextEvent\"\0000\001\022@\n\017ListTo" +
-      "pologyIds\022\022.context.ContextId\032\027.context." +
-      "TopologyIdList\"\000\022=\n\016ListTopologies\022\022.con" +
-      "text.ContextId\032\025.context.TopologyList\"\000\022" +
-      "7\n\013GetTopology\022\023.context.TopologyId\032\021.co" +
-      "ntext.Topology\"\000\022E\n\022GetTopologyDetails\022\023" +
-      ".context.TopologyId\032\030.context.TopologyDe" +
-      "tails\"\000\0227\n\013SetTopology\022\021.context.Topolog" +
-      "y\032\023.context.TopologyId\"\000\0227\n\016RemoveTopolo" +
-      "gy\022\023.context.TopologyId\032\016.context.Empty\"" +
-      "\000\022?\n\021GetTopologyEvents\022\016.context.Empty\032\026" +
-      ".context.TopologyEvent\"\0000\001\0228\n\rListDevice" +
-      "Ids\022\016.context.Empty\032\025.context.DeviceIdLi" +
-      "st\"\000\0224\n\013ListDevices\022\016.context.Empty\032\023.co" +
-      "ntext.DeviceList\"\000\0221\n\tGetDevice\022\021.contex" +
-      "t.DeviceId\032\017.context.Device\"\000\0221\n\tSetDevi" +
-      "ce\022\017.context.Device\032\021.context.DeviceId\"\000" +
-      "\0223\n\014RemoveDevice\022\021.context.DeviceId\032\016.co" +
-      "ntext.Empty\"\000\022;\n\017GetDeviceEvents\022\016.conte" +
-      "xt.Empty\032\024.context.DeviceEvent\"\0000\001\022<\n\014Se" +
-      "lectDevice\022\025.context.DeviceFilter\032\023.cont" +
-      "ext.DeviceList\"\000\022I\n\021ListEndPointNames\022\027." +
-      "context.EndPointIdList\032\031.context.EndPoin" +
-      "tNameList\"\000\0224\n\013ListLinkIds\022\016.context.Emp" +
-      "ty\032\023.context.LinkIdList\"\000\0220\n\tListLinks\022\016" +
-      ".context.Empty\032\021.context.LinkList\"\000\022+\n\007G" +
-      "etLink\022\017.context.LinkId\032\r.context.Link\"\000" +
-      "\022+\n\007SetLink\022\r.context.Link\032\017.context.Lin" +
-      "kId\"\000\022/\n\nRemoveLink\022\017.context.LinkId\032\016.c" +
-      "ontext.Empty\"\000\0227\n\rGetLinkEvents\022\016.contex" +
-      "t.Empty\032\022.context.LinkEvent\"\0000\001\022>\n\016ListS" +
-      "erviceIds\022\022.context.ContextId\032\026.context." +
-      "ServiceIdList\"\000\022:\n\014ListServices\022\022.contex" +
-      "t.ContextId\032\024.context.ServiceList\"\000\0224\n\nG" +
-      "etService\022\022.context.ServiceId\032\020.context." +
-      "Service\"\000\0224\n\nSetService\022\020.context.Servic" +
-      "e\032\022.context.ServiceId\"\000\0226\n\014UnsetService\022" +
-      "\020.context.Service\032\022.context.ServiceId\"\000\022" +
-      "5\n\rRemoveService\022\022.context.ServiceId\032\016.c" +
-      "ontext.Empty\"\000\022=\n\020GetServiceEvents\022\016.con" +
-      "text.Empty\032\025.context.ServiceEvent\"\0000\001\022?\n" +
-      "\rSelectService\022\026.context.ServiceFilter\032\024" +
-      ".context.ServiceList\"\000\022:\n\014ListSliceIds\022\022" +
-      ".context.ContextId\032\024.context.SliceIdList" +
-      "\"\000\0226\n\nListSlices\022\022.context.ContextId\032\022.c" +
-      "ontext.SliceList\"\000\022.\n\010GetSlice\022\020.context" +
-      ".SliceId\032\016.context.Slice\"\000\022.\n\010SetSlice\022\016" +
-      ".context.Slice\032\020.context.SliceId\"\000\0220\n\nUn" +
-      "setSlice\022\016.context.Slice\032\020.context.Slice" +
-      "Id\"\000\0221\n\013RemoveSlice\022\020.context.SliceId\032\016." +
-      "context.Empty\"\000\0229\n\016GetSliceEvents\022\016.cont" +
-      "ext.Empty\032\023.context.SliceEvent\"\0000\001\0229\n\013Se" +
-      "lectSlice\022\024.context.SliceFilter\032\022.contex" +
-      "t.SliceList\"\000\022D\n\021ListConnectionIds\022\022.con" +
-      "text.ServiceId\032\031.context.ConnectionIdLis" +
-      "t\"\000\022@\n\017ListConnections\022\022.context.Service" +
-      "Id\032\027.context.ConnectionList\"\000\022=\n\rGetConn" +
-      "ection\022\025.context.ConnectionId\032\023.context." +
-      "Connection\"\000\022=\n\rSetConnection\022\023.context." +
-      "Connection\032\025.context.ConnectionId\"\000\022;\n\020R" +
-      "emoveConnection\022\025.context.ConnectionId\032\016" +
-      ".context.Empty\"\000\022C\n\023GetConnectionEvents\022" +
-      "\016.context.Empty\032\030.context.ConnectionEven" +
-      "t\"\0000\001b\006proto3"
+      "kId\"\333\004\n\nConstraint\022-\n\006action\030\001 \001(\0162\035.con" +
+      "text.ConstraintActionEnum\022,\n\006custom\030\002 \001(" +
+      "\0132\032.context.Constraint_CustomH\000\0220\n\010sched" +
+      "ule\030\003 \001(\0132\034.context.Constraint_ScheduleH" +
+      "\000\022A\n\021endpoint_location\030\004 \001(\0132$.context.C" +
+      "onstraint_EndPointLocationH\000\022A\n\021endpoint" +
+      "_priority\030\005 \001(\0132$.context.Constraint_End" +
+      "PointPriorityH\000\0228\n\014sla_capacity\030\006 \001(\0132 ." +
+      "context.Constraint_SLA_CapacityH\000\0226\n\013sla" +
+      "_latency\030\007 \001(\0132\037.context.Constraint_SLA_" +
+      "LatencyH\000\022@\n\020sla_availability\030\010 \001(\0132$.co" +
+      "ntext.Constraint_SLA_AvailabilityH\000\022@\n\rs" +
+      "la_isolation\030\t \001(\0132\'.context.Constraint_" +
+      "SLA_Isolation_levelH\000\0224\n\nexclusions\030\n \001(" +
+      "\0132\036.context.Constraint_ExclusionsH\000B\014\n\nc" +
+      "onstraint\"^\n\022TeraFlowController\022&\n\nconte" +
+      "xt_id\030\001 \001(\0132\022.context.ContextId\022\022\n\nip_ad" +
+      "dress\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n\024Authenticat" +
+      "ionResult\022&\n\ncontext_id\030\001 \001(\0132\022.context." +
+      "ContextId\022\025\n\rauthenticated\030\002 \001(\010*j\n\rEven" +
+      "tTypeEnum\022\027\n\023EVENTTYPE_UNDEFINED\020\000\022\024\n\020EV" +
+      "ENTTYPE_CREATE\020\001\022\024\n\020EVENTTYPE_UPDATE\020\002\022\024" +
+      "\n\020EVENTTYPE_REMOVE\020\003*\231\002\n\020DeviceDriverEnu" +
+      "m\022\032\n\026DEVICEDRIVER_UNDEFINED\020\000\022\033\n\027DEVICED" +
+      "RIVER_OPENCONFIG\020\001\022\036\n\032DEVICEDRIVER_TRANS" +
+      "PORT_API\020\002\022\023\n\017DEVICEDRIVER_P4\020\003\022&\n\"DEVIC" +
+      "EDRIVER_IETF_NETWORK_TOPOLOGY\020\004\022\033\n\027DEVIC" +
+      "EDRIVER_ONF_TR_352\020\005\022\023\n\017DEVICEDRIVER_XR\020" +
+      "\006\022\033\n\027DEVICEDRIVER_IETF_L2VPN\020\007\022 \n\034DEVICE" +
+      "DRIVER_GNMI_OPENCONFIG\020\010*\217\001\n\033DeviceOpera" +
+      "tionalStatusEnum\022%\n!DEVICEOPERATIONALSTA" +
+      "TUS_UNDEFINED\020\000\022$\n DEVICEOPERATIONALSTAT" +
+      "US_DISABLED\020\001\022#\n\037DEVICEOPERATIONALSTATUS" +
+      "_ENABLED\020\002*\201\001\n\017ServiceTypeEnum\022\027\n\023SERVIC" +
+      "ETYPE_UNKNOWN\020\000\022\024\n\020SERVICETYPE_L3NM\020\001\022\024\n" +
+      "\020SERVICETYPE_L2NM\020\002\022)\n%SERVICETYPE_TAPI_" +
+      "CONNECTIVITY_SERVICE\020\003*\304\001\n\021ServiceStatus" +
+      "Enum\022\033\n\027SERVICESTATUS_UNDEFINED\020\000\022\031\n\025SER" +
+      "VICESTATUS_PLANNED\020\001\022\030\n\024SERVICESTATUS_AC" +
+      "TIVE\020\002\022\032\n\026SERVICESTATUS_UPDATING\020\003\022!\n\035SE" +
+      "RVICESTATUS_PENDING_REMOVAL\020\004\022\036\n\032SERVICE" +
+      "STATUS_SLA_VIOLATED\020\005*\251\001\n\017SliceStatusEnu" +
+      "m\022\031\n\025SLICESTATUS_UNDEFINED\020\000\022\027\n\023SLICESTA" +
+      "TUS_PLANNED\020\001\022\024\n\020SLICESTATUS_INIT\020\002\022\026\n\022S" +
+      "LICESTATUS_ACTIVE\020\003\022\026\n\022SLICESTATUS_DEINI" +
+      "T\020\004\022\034\n\030SLICESTATUS_SLA_VIOLATED\020\005*]\n\020Con" +
+      "figActionEnum\022\032\n\026CONFIGACTION_UNDEFINED\020" +
+      "\000\022\024\n\020CONFIGACTION_SET\020\001\022\027\n\023CONFIGACTION_" +
+      "DELETE\020\002*m\n\024ConstraintActionEnum\022\036\n\032CONS" +
+      "TRAINTACTION_UNDEFINED\020\000\022\030\n\024CONSTRAINTAC" +
+      "TION_SET\020\001\022\033\n\027CONSTRAINTACTION_DELETE\020\002*" +
+      "\203\002\n\022IsolationLevelEnum\022\020\n\014NO_ISOLATION\020\000" +
+      "\022\026\n\022PHYSICAL_ISOLATION\020\001\022\025\n\021LOGICAL_ISOL" +
+      "ATION\020\002\022\025\n\021PROCESS_ISOLATION\020\003\022\035\n\031PHYSIC" +
+      "AL_MEMORY_ISOLATION\020\004\022\036\n\032PHYSICAL_NETWOR" +
+      "K_ISOLATION\020\005\022\036\n\032VIRTUAL_RESOURCE_ISOLAT" +
+      "ION\020\006\022\037\n\033NETWORK_FUNCTIONS_ISOLATION\020\007\022\025" +
+      "\n\021SERVICE_ISOLATION\020\0102\245\026\n\016ContextService" +
+      "\022:\n\016ListContextIds\022\016.context.Empty\032\026.con" +
+      "text.ContextIdList\"\000\0226\n\014ListContexts\022\016.c" +
+      "ontext.Empty\032\024.context.ContextList\"\000\0224\n\n" +
+      "GetContext\022\022.context.ContextId\032\020.context" +
+      ".Context\"\000\0224\n\nSetContext\022\020.context.Conte" +
+      "xt\032\022.context.ContextId\"\000\0225\n\rRemoveContex" +
+      "t\022\022.context.ContextId\032\016.context.Empty\"\000\022" +
+      "=\n\020GetContextEvents\022\016.context.Empty\032\025.co" +
+      "ntext.ContextEvent\"\0000\001\022@\n\017ListTopologyId" +
+      "s\022\022.context.ContextId\032\027.context.Topology" +
+      "IdList\"\000\022=\n\016ListTopologies\022\022.context.Con" +
+      "textId\032\025.context.TopologyList\"\000\0227\n\013GetTo" +
+      "pology\022\023.context.TopologyId\032\021.context.To" +
+      "pology\"\000\022E\n\022GetTopologyDetails\022\023.context" +
+      ".TopologyId\032\030.context.TopologyDetails\"\000\022" +
+      "7\n\013SetTopology\022\021.context.Topology\032\023.cont" +
+      "ext.TopologyId\"\000\0227\n\016RemoveTopology\022\023.con" +
+      "text.TopologyId\032\016.context.Empty\"\000\022?\n\021Get" +
+      "TopologyEvents\022\016.context.Empty\032\026.context" +
+      ".TopologyEvent\"\0000\001\0228\n\rListDeviceIds\022\016.co" +
+      "ntext.Empty\032\025.context.DeviceIdList\"\000\0224\n\013" +
+      "ListDevices\022\016.context.Empty\032\023.context.De" +
+      "viceList\"\000\0221\n\tGetDevice\022\021.context.Device" +
+      "Id\032\017.context.Device\"\000\0221\n\tSetDevice\022\017.con" +
+      "text.Device\032\021.context.DeviceId\"\000\0223\n\014Remo" +
+      "veDevice\022\021.context.DeviceId\032\016.context.Em" +
+      "pty\"\000\022;\n\017GetDeviceEvents\022\016.context.Empty" +
+      "\032\024.context.DeviceEvent\"\0000\001\022<\n\014SelectDevi" +
+      "ce\022\025.context.DeviceFilter\032\023.context.Devi" +
+      "ceList\"\000\022I\n\021ListEndPointNames\022\027.context." +
+      "EndPointIdList\032\031.context.EndPointNameLis" +
+      "t\"\000\0224\n\013ListLinkIds\022\016.context.Empty\032\023.con" +
+      "text.LinkIdList\"\000\0220\n\tListLinks\022\016.context" +
+      ".Empty\032\021.context.LinkList\"\000\022+\n\007GetLink\022\017" +
+      ".context.LinkId\032\r.context.Link\"\000\022+\n\007SetL" +
+      "ink\022\r.context.Link\032\017.context.LinkId\"\000\022/\n" +
+      "\nRemoveLink\022\017.context.LinkId\032\016.context.E" +
+      "mpty\"\000\0227\n\rGetLinkEvents\022\016.context.Empty\032" +
+      "\022.context.LinkEvent\"\0000\001\022>\n\016ListServiceId" +
+      "s\022\022.context.ContextId\032\026.context.ServiceI" +
+      "dList\"\000\022:\n\014ListServices\022\022.context.Contex" +
+      "tId\032\024.context.ServiceList\"\000\0224\n\nGetServic" +
+      "e\022\022.context.ServiceId\032\020.context.Service\"" +
+      "\000\0224\n\nSetService\022\020.context.Service\032\022.cont" +
+      "ext.ServiceId\"\000\0226\n\014UnsetService\022\020.contex" +
+      "t.Service\032\022.context.ServiceId\"\000\0225\n\rRemov" +
+      "eService\022\022.context.ServiceId\032\016.context.E" +
+      "mpty\"\000\022=\n\020GetServiceEvents\022\016.context.Emp" +
+      "ty\032\025.context.ServiceEvent\"\0000\001\022?\n\rSelectS" +
+      "ervice\022\026.context.ServiceFilter\032\024.context" +
+      ".ServiceList\"\000\022:\n\014ListSliceIds\022\022.context" +
+      ".ContextId\032\024.context.SliceIdList\"\000\0226\n\nLi" +
+      "stSlices\022\022.context.ContextId\032\022.context.S" +
+      "liceList\"\000\022.\n\010GetSlice\022\020.context.SliceId" +
+      "\032\016.context.Slice\"\000\022.\n\010SetSlice\022\016.context" +
+      ".Slice\032\020.context.SliceId\"\000\0220\n\nUnsetSlice" +
+      "\022\016.context.Slice\032\020.context.SliceId\"\000\0221\n\013" +
+      "RemoveSlice\022\020.context.SliceId\032\016.context." +
+      "Empty\"\000\0229\n\016GetSliceEvents\022\016.context.Empt" +
+      "y\032\023.context.SliceEvent\"\0000\001\0229\n\013SelectSlic" +
+      "e\022\024.context.SliceFilter\032\022.context.SliceL" +
+      "ist\"\000\022D\n\021ListConnectionIds\022\022.context.Ser" +
+      "viceId\032\031.context.ConnectionIdList\"\000\022@\n\017L" +
+      "istConnections\022\022.context.ServiceId\032\027.con" +
+      "text.ConnectionList\"\000\022=\n\rGetConnection\022\025" +
+      ".context.ConnectionId\032\023.context.Connecti" +
+      "on\"\000\022=\n\rSetConnection\022\023.context.Connecti" +
+      "on\032\025.context.ConnectionId\"\000\022;\n\020RemoveCon" +
+      "nection\022\025.context.ConnectionId\032\016.context" +
+      ".Empty\"\000\022C\n\023GetConnectionEvents\022\016.contex" +
+      "t.Empty\032\030.context.ConnectionEvent\"\0000\001b\006p" +
+      "roto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -75226,7 +74774,7 @@ public final class ContextOuterClass {
     internal_static_context_Constraint_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_context_Constraint_descriptor,
-        new java.lang.String[] { "Custom", "Schedule", "EndpointLocation", "EndpointPriority", "SlaCapacity", "SlaLatency", "SlaAvailability", "SlaIsolation", "Exclusions", "Constraint", });
+        new java.lang.String[] { "Action", "Custom", "Schedule", "EndpointLocation", "EndpointPriority", "SlaCapacity", "SlaLatency", "SlaAvailability", "SlaIsolation", "Exclusions", "Constraint", });
     internal_static_context_TeraFlowController_descriptor =
       getDescriptor().getMessageTypes().get(75);
     internal_static_context_TeraFlowController_fieldAccessorTable = new
diff --git a/src/policy/target/kubernetes/kubernetes.yml b/src/policy/target/kubernetes/kubernetes.yml
index f1079230f5e5efb75fb14d6cd6f3ad3fb5c9d2e3..5b8723595e2582e85c25abff19cba942c6a5ca31 100644
--- a/src/policy/target/kubernetes/kubernetes.yml
+++ b/src/policy/target/kubernetes/kubernetes.yml
@@ -1,23 +1,10 @@
-# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
 ---
 apiVersion: v1
 kind: Service
 metadata:
   annotations:
-    app.quarkus.io/commit-id: 23832f2975e3c8967e9685f7e3a5f5458d04527a
-    app.quarkus.io/build-timestamp: 2023-04-04 - 11:56:04 +0000
+    app.quarkus.io/commit-id: 8d0654b519e90fe0127e7d1419adce25fa3a179d
+    app.quarkus.io/build-timestamp: 2023-07-10 - 09:41:26 +0000
     prometheus.io/scrape: "true"
     prometheus.io/path: /q/metrics
     prometheus.io/port: "8080"
@@ -42,8 +29,8 @@ apiVersion: apps/v1
 kind: Deployment
 metadata:
   annotations:
-    app.quarkus.io/commit-id: 23832f2975e3c8967e9685f7e3a5f5458d04527a
-    app.quarkus.io/build-timestamp: 2023-04-04 - 11:56:04 +0000
+    app.quarkus.io/commit-id: 8d0654b519e90fe0127e7d1419adce25fa3a179d
+    app.quarkus.io/build-timestamp: 2023-07-10 - 09:41:26 +0000
     prometheus.io/scrape: "true"
     prometheus.io/path: /q/metrics
     prometheus.io/port: "8080"
@@ -60,8 +47,8 @@ spec:
   template:
     metadata:
       annotations:
-        app.quarkus.io/commit-id: 23832f2975e3c8967e9685f7e3a5f5458d04527a
-        app.quarkus.io/build-timestamp: 2023-04-04 - 11:56:04 +0000
+        app.quarkus.io/commit-id: 8d0654b519e90fe0127e7d1419adce25fa3a179d
+        app.quarkus.io/build-timestamp: 2023-07-10 - 09:41:26 +0000
         prometheus.io/scrape: "true"
         prometheus.io/path: /q/metrics
         prometheus.io/port: "8080"
@@ -76,12 +63,12 @@ spec:
               valueFrom:
                 fieldRef:
                   fieldPath: metadata.namespace
-            - name: MONITORING_SERVICE_HOST
-              value: monitoringservice
             - name: CONTEXT_SERVICE_HOST
               value: contextservice
             - name: SERVICE_SERVICE_HOST
               value: serviceservice
+            - name: MONITORING_SERVICE_HOST
+              value: monitoringservice
           image: labs.etsi.org:5050/tfs/controller/policy:0.1.0
           imagePullPolicy: Always
           livenessProbe: