added-yang-linter-and-resolved-all-error-produced-by it

Change-Id: Iba95a07bb1ed6230b9a900448bf294355a58285c
diff --git a/Makefile b/Makefile
index 1c595d7..f785a23 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@
 all: test
 
 test: # @HELP run the acceptance tests
-test: deps
+test: deps yang-lint
 
 roc-test: # @HELP run the integration tests
 roc-test: deps # @HELP run the integration tests
@@ -27,3 +27,13 @@
         BEGIN {FS = ": *# *@HELP"}; \
         {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}; \
     '
+
+yang-lint:
+	#pyang --lint ./config-models/*.x/files/yang/*.yang
+	pyang --lint ./config-models/aether-1.x/files/yang/*.yang
+	pyang --lint ./config-models/aether-2.x/files/yang/*.yang
+	pyang --lint ./config-models/aether-2.1.x/files/yang/*.yang
+	pyang --lint ./config-models/aether-2.2.x/files/yang/*.yang
+	pyang --lint ./config-models/aether-3.x/files/yang/*.yang
+	pyang --lint ./config-models/aether-4.x/files/yang/*.yang
+	pyang --lint ./config-models/plproxy-1.x/files/yang/*.yang
diff --git a/config-models/aether-1.x/Chart.yaml b/config-models/aether-1.x/Chart.yaml
index 40a8be0..01dadf4 100644
--- a/config-models/aether-1.x/Chart.yaml
+++ b/config-models/aether-1.x/Chart.yaml
@@ -4,7 +4,7 @@
 
 apiVersion: v2
 name: config-model-aether
-version: 1.0.4
+version: 1.0.5
 kubeVersion: ">=1.18.0"
 appVersion: 1.0.0
 description: Aether config model
diff --git a/config-models/aether-1.x/files/yang/access-profile.yang b/config-models/aether-1.x/files/yang/access-profile.yang
index 29e10a1..cad01fc 100755
--- a/config-models/aether-1.x/files/yang/access-profile.yang
+++ b/config-models/aether-1.x/files/yang/access-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef access-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for access-profile-id";
   }
 
   container access-profile {
@@ -45,7 +46,7 @@
         }
         description "type of profile";
       }
-  
+
       leaf filter {
         type string {
           length 0..32;
@@ -60,5 +61,5 @@
         description "description of this profile";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-1.x/files/yang/aether-subscriber.yang b/config-models/aether-1.x/files/yang/aether-subscriber.yang
index 963217f..d4e3fbd 100644
--- a/config-models/aether-1.x/files/yang/aether-subscriber.yang
+++ b/config-models/aether-1.x/files/yang/aether-subscriber.yang
@@ -31,24 +31,28 @@
       type string {
           length 1..31;
       }
+    description "The typedef for ueid";
   }
 
   typedef mcc {
       type uint32 {
         range 0..999;
       }
+    description "The typedef for mcc";
   }
 
   typedef mnc {
       type uint32 {
         range 0..999;
       }
+    description "The typedef for mnc";
   }
 
   typedef tac {
       type uint32 {
         range 0..99999999;
       }
+    description "The typedef for tac";
   }
 
   container subscriber {
@@ -60,8 +64,8 @@
         "List of subscriber devices";
 
       leaf ueid {
+	type ueid;
         description "identifier for this subscriber, may or may not be an IMSI";
-        type ueid;
       }
 
       container serving-plmn {
@@ -77,6 +81,7 @@
           type tac;
           description "type allocation code";
         }
+	description "The contaiber for serving-plmn";
       }
 
       leaf requested-apn {
@@ -113,14 +118,14 @@
         leaf up-profile {
           type leafref {
             path "/up:up-profile/up:up-profile/up:id";
-          }          
+          }
           description
             "Link to user plane profile";
         }
         leaf qos-profile {
           type leafref {
             path "/qos:qos-profile/qos:qos-profile/qos:id";
-          }              
+          }
           description
             "Link to qos profile";
         }
@@ -129,7 +134,7 @@
           leaf access-profile {
             type leafref {
               path "/ap:access-profile/ap:access-profile/ap:id";
-            }            
+            }
 //            type ap:access-profile-id;
             description
                 "Link to access profile";
@@ -140,8 +145,10 @@
             description
               "Allow or disallow this ue to use this access profile";
           }
+          description "The list for access-profile";
         }
+        description "The container for profiles";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-1.x/files/yang/apn-profile.yang b/config-models/aether-1.x/files/yang/apn-profile.yang
index 20e1763..b6f1cf5 100755
--- a/config-models/aether-1.x/files/yang/apn-profile.yang
+++ b/config-models/aether-1.x/files/yang/apn-profile.yang
@@ -20,12 +20,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef apn-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for apn-profile-id";
   }
 
   container apn-profile {
@@ -78,7 +79,7 @@
           length 1..100;
         }
         description "description of this profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-1.x/files/yang/ietf-inet-types.yang b/config-models/aether-1.x/files/yang/ietf-inet-types.yang
index eacefb6..fa57f75 100644
--- a/config-models/aether-1.x/files/yang/ietf-inet-types.yang
+++ b/config-models/aether-1.x/files/yang/ietf-inet-types.yang
@@ -354,11 +354,11 @@
 
   typedef domain-name {
     type string {
+      length "1..253";
       pattern
         '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
       + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
       + '|\.';
-      length "1..253";
     }
     description
      "The domain-name type represents a DNS domain name.  The
diff --git a/config-models/aether-1.x/files/yang/qos-profile.yang b/config-models/aether-1.x/files/yang/qos-profile.yang
index 257f4ff..c0d8025 100755
--- a/config-models/aether-1.x/files/yang/qos-profile.yang
+++ b/config-models/aether-1.x/files/yang/qos-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef qos-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for qos-profile-id";
   }
 
   container qos-profile {
@@ -44,8 +45,8 @@
           type uint32 {
             range 0..4294967295;
           }
+	  units bps;
           default 0;
-          units bps;
           description
             "Upstream aggregate maximum bit rate";
         }
@@ -53,13 +54,14 @@
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Downstream aggregate maximum bit rate";
-        }        
+        }
+        description "The container for apn-ambr";
       }
-      
+
       leaf description {
         type string {
           length 1..100;
@@ -67,5 +69,5 @@
         description "description of this profile";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-1.x/files/yang/up-profile.yang b/config-models/aether-1.x/files/yang/up-profile.yang
index 6a43bf4..9fac55c 100755
--- a/config-models/aether-1.x/files/yang/up-profile.yang
+++ b/config-models/aether-1.x/files/yang/up-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef up-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for up-profile-id";
   }
 
   container up-profile {
@@ -58,7 +59,7 @@
           length 1..100;
         }
         description "description of this profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/Chart.yaml b/config-models/aether-2.1.x/Chart.yaml
index fb7fc19..93cfa93 100644
--- a/config-models/aether-2.1.x/Chart.yaml
+++ b/config-models/aether-2.1.x/Chart.yaml
@@ -4,7 +4,7 @@
 
 apiVersion: v2
 name: config-model-aether-2
-version: 2.1.4
+version: 2.1.5
 kubeVersion: ">=1.18.0"
 appVersion: 2.1.0
 description: Aether config model
diff --git a/config-models/aether-2.1.x/files/yang/access-profile.yang b/config-models/aether-2.1.x/files/yang/access-profile.yang
index d58a674..080ab14 100755
--- a/config-models/aether-2.1.x/files/yang/access-profile.yang
+++ b/config-models/aether-2.1.x/files/yang/access-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef access-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for access-profile-id";
   }
 
   container access-profile {
@@ -44,7 +45,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf type {
         type string {
@@ -52,7 +53,7 @@
         }
         description "type of profile";
       }
-  
+
       leaf filter {
         type string {
           length 0..32;
@@ -67,5 +68,5 @@
         description "description of this profile";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/aether-subscriber.yang b/config-models/aether-2.1.x/files/yang/aether-subscriber.yang
index 30f3e52..a3e7220 100755
--- a/config-models/aether-2.1.x/files/yang/aether-subscriber.yang
+++ b/config-models/aether-2.1.x/files/yang/aether-subscriber.yang
@@ -11,7 +11,7 @@
   import up-profile{ prefix up; }
   import access-profile{ prefix ap; }
   import security-profile{ prefix sec; }
-  import enterprise{ prefix ent; }  
+  import enterprise{ prefix ent; }
   import ietf-yang-types{ prefix ietf; }
 
   organization "Open Networking Foundation.";
@@ -29,18 +29,21 @@
       type uint32 {
         range 0..999;
       }
+    description "The typedef for mcc";
   }
 
   typedef mnc {
       type uint32 {
         range 0..999;
       }
+    description "The typedef for mnc";
   }
 
   typedef tac {
       type uint32 {
         range 0..99999999;
       }
+    description "The typedef for tac";
   }
 
   container subscriber {
@@ -52,8 +55,8 @@
         "List of subscriber devices";
 
       leaf id {
+	type ietf:uuid;
         description "identifier for this subscriber, typically a UUID";
-        type ietf:uuid;
       }
 
       leaf display-name {
@@ -61,7 +64,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }      
+      }
 
       choice imsi {
         case wildcard {
@@ -69,16 +72,20 @@
             type string {
               length 1..15;
             }
+            description "leaf for imsi-wildcard";
           }
         }
         case range {
           leaf imsi-range-from {
             type uint64;
+            description "leaf for imsi-range-from";
           }
           leaf imsi-range-to {
             type uint64;
+            description "leaf for imsi-range-to";
           }
         }
+        description "The choice for imsi";
       }
 
       container serving-plmn {
@@ -94,6 +101,7 @@
           type tac;
           description "type allocation code";
         }
+        description "The container for serving-plmn";
       }
 
       leaf requested-apn {
@@ -122,7 +130,7 @@
       leaf enterprise {
         type leafref {
           path "/ent:enterprise/ent:enterprise/ent:id";
-        }              
+        }
         description
           "Link to enterprise that owns this UE range";
       }
@@ -138,14 +146,14 @@
         leaf up-profile {
           type leafref {
             path "/up:up-profile/up:up-profile/up:id";
-          }          
+          }
           description
             "Link to user plane profile";
         }
         leaf qos-profile {
           type leafref {
             path "/qos:qos-profile/qos:qos-profile/qos:id";
-          }              
+          }
           description
             "Link to qos profile";
         }
@@ -154,7 +162,7 @@
           leaf access-profile {
             type leafref {
               path "/ap:access-profile/ap:access-profile/ap:id";
-            }            
+            }
             description
                 "Link to access profile";
           }
@@ -164,15 +172,17 @@
             description
               "Allow or disallow this ue to use this access profile";
           }
+	  description "The list for access-profile";
         }
         leaf security-profile {
           type leafref {
             path "/sec:security-profile/sec:security-profile/sec:id";
-          }              
+          }
           description
             "Link to security profile";
         }
+        description "The container for profiles";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/apn-profile.yang b/config-models/aether-2.1.x/files/yang/apn-profile.yang
index 27361dc..8445cc8 100755
--- a/config-models/aether-2.1.x/files/yang/apn-profile.yang
+++ b/config-models/aether-2.1.x/files/yang/apn-profile.yang
@@ -21,12 +21,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef apn-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for apn-profile-id";
   }
 
   container apn-profile {
@@ -47,7 +48,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf apn-name {
         type string {
@@ -96,5 +97,5 @@
           "Link to service group";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/connectivity-service.yang b/config-models/aether-2.1.x/files/yang/connectivity-service.yang
index f12340b..139a93f 100755
--- a/config-models/aether-2.1.x/files/yang/connectivity-service.yang
+++ b/config-models/aether-2.1.x/files/yang/connectivity-service.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for connectivity-service-id";
   }
 
   container connectivity-service {
@@ -43,7 +44,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type string {
@@ -65,7 +66,7 @@
       leaf pcrf-endpoint {
         type inet:uri;
         description "url of the pcrf service";
-      }         
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/enterprise.yang b/config-models/aether-2.1.x/files/yang/enterprise.yang
index 38cb4b8..25dd051 100755
--- a/config-models/aether-2.1.x/files/yang/enterprise.yang
+++ b/config-models/aether-2.1.x/files/yang/enterprise.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for enterprise-id";
   }
 
   container enterprise {
@@ -43,7 +44,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type string {
@@ -57,7 +58,7 @@
         leaf connectivity-service {
           type leafref {
             path "/cs:connectivity-service/cs:connectivity-service/cs:id";
-          }            
+          }
           description
             "Link to connectivity services where configuration should be pushed for this enterprise's devices";
         }
@@ -67,7 +68,8 @@
           description
             "Allow or disallow pushes to this connectivity service";
         }
-      }              
+	description "The list for connectivity-service";
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/ietf-inet-types.yang b/config-models/aether-2.1.x/files/yang/ietf-inet-types.yang
index eacefb6..fa57f75 100644
--- a/config-models/aether-2.1.x/files/yang/ietf-inet-types.yang
+++ b/config-models/aether-2.1.x/files/yang/ietf-inet-types.yang
@@ -354,11 +354,11 @@
 
   typedef domain-name {
     type string {
+      length "1..253";
       pattern
         '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
       + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
       + '|\.';
-      length "1..253";
     }
     description
      "The domain-name type represents a DNS domain name.  The
diff --git a/config-models/aether-2.1.x/files/yang/qos-profile.yang b/config-models/aether-2.1.x/files/yang/qos-profile.yang
index 5ad91b4..a150263 100755
--- a/config-models/aether-2.1.x/files/yang/qos-profile.yang
+++ b/config-models/aether-2.1.x/files/yang/qos-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef qos-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for qos-profile-id";
   }
 
   container qos-profile {
@@ -44,15 +45,15 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       container apn-ambr {
         leaf uplink {
           type uint32 {
             range 0..4294967295;
           }
+	  units bps;
           default 0;
-          units bps;
           description
             "Upstream aggregate maximum bit rate";
         }
@@ -60,11 +61,12 @@
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Downstream aggregate maximum bit rate";
-        }        
+        }
+        description "The container for apn-ambr";
       }
 
       leaf qci {
@@ -80,11 +82,11 @@
         leaf priority {
           type uint32 {
             range 0..15;
-          }          
+          }
           default 0;
           description
             "Priority";
-        }        
+        }
         leaf preemption-capability {
           type boolean;
           default true;
@@ -98,8 +100,8 @@
             "This bearer may be dropped for a bearer with higher priority";
         }
         description "Evolved-ARP";
-      }        
-      
+      }
+
       leaf description {
         type string {
           length 1..100;
@@ -107,5 +109,5 @@
         description "description of this profile";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/security-profile.yang b/config-models/aether-2.1.x/files/yang/security-profile.yang
index a8a3069..00413b1 100755
--- a/config-models/aether-2.1.x/files/yang/security-profile.yang
+++ b/config-models/aether-2.1.x/files/yang/security-profile.yang
@@ -21,6 +21,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for security-profile-id";
   }
 
   container security-profile {
@@ -41,7 +42,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf key {
         type string {
@@ -67,7 +68,7 @@
           length 1..100;
         }
         description "description of this security profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/service-group.yang b/config-models/aether-2.1.x/files/yang/service-group.yang
index 9f2e7da..8b4add1 100755
--- a/config-models/aether-2.1.x/files/yang/service-group.yang
+++ b/config-models/aether-2.1.x/files/yang/service-group.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typede for service-group-id";
   }
 
   typedef service-kind {
@@ -30,6 +31,7 @@
       length 1..32;
       pattern "default|on-demand";
     }
+    description "The typedef for service-kind";
   }
 
   container service-group {
@@ -61,20 +63,21 @@
           description
               "Link to service policy";
         }
-        leaf kind {    
+        leaf kind {
           type service-kind;
           default "default";
           description
             "Type of service link";
         }
-      }      
+        description "The container for service-policies";
+      }
 
       leaf description {
         type string {
           length 1..100;
         }
         description "description of this service group";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/service-policy.yang b/config-models/aether-2.1.x/files/yang/service-policy.yang
index a0db158..fa83a38 100755
--- a/config-models/aether-2.1.x/files/yang/service-policy.yang
+++ b/config-models/aether-2.1.x/files/yang/service-policy.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for service-policy-id";
   }
 
   container service-policy {
@@ -61,15 +62,15 @@
         default 9;
         description
           "Evolved-ARP";
-      }      
+      }
 
       container ambr {
         leaf uplink {
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Upstream aggregate maximum bit rate";
         }
@@ -77,11 +78,12 @@
           type uint32 {
             range 0..4294967295;
           }
+	  units bps;
           default 0;
-          units bps;
           description
             "Downstream aggregate maximum bit rate";
-        }        
+        }
+        description "The container for ambr";
       }
 
       list rules {
@@ -99,7 +101,8 @@
           description
             "Enable or disable this service to use this rule";
         }
-      }       
+        description "The list for rules";
+      }
 
       leaf description {
         type string {
@@ -108,5 +111,5 @@
         description "description of this profile";
       }      
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/service-rule.yang b/config-models/aether-2.1.x/files/yang/service-rule.yang
index 5dce127..b39c9e9 100755
--- a/config-models/aether-2.1.x/files/yang/service-rule.yang
+++ b/config-models/aether-2.1.x/files/yang/service-rule.yang
@@ -21,6 +21,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for service-rule-id";
   }
 
   container service-rule {
@@ -64,11 +65,11 @@
           leaf priority {
             type uint32 {
               range 0..15;
-            }          
+            }
             default 0;
             description
               "Priority";
-          }        
+          }
           leaf preemption-capability {
             type boolean;
             default true;
@@ -89,8 +90,8 @@
             type uint32 {
               range 0..4294967295;
             }
+	    units bps;
             default 0;
-            units bps;
             description
               "Upstream maximum requested bandwidth";
           }
@@ -98,11 +99,12 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Downstream maximum requested bandwidth";
-          }        
+          }
+          description "The container for maximum-requested-bandwidth";
         }
 
         container guaranteed-bitrate {
@@ -110,8 +112,8 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Upstream guaranteed bitrate";
           }
@@ -119,11 +121,12 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Downstream guaranteed bitrate";
-          }        
+          }
+          description "The container for guaranteed-bitrate";
         }
 
         container aggregate-maximum-bitrate {
@@ -131,8 +134,8 @@
             type uint32 {
               range 0..4294967295;
             }
+	    units bps;
             default 0;
-            units bps;
             description
               "Upstream aggregate maximum bitrate";
           }
@@ -140,14 +143,16 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Downstream aggregate maximum bitrate";
-          }        
+          }
+	  description "The container for aggregate-maximum-bitrate";
         }
+        description "The container for qos";
       }
-  
+
       container flow {
         leaf specification {
           type string {
@@ -155,6 +160,7 @@
           }
           description "specification of this flow";
         }
+        description "The container for flow";
       }
 
       leaf description {
@@ -162,7 +168,7 @@
           length 1..100;
         }
         description "description of this rule";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.1.x/files/yang/up-profile.yang b/config-models/aether-2.1.x/files/yang/up-profile.yang
index 9a38b02..bf17f89 100755
--- a/config-models/aether-2.1.x/files/yang/up-profile.yang
+++ b/config-models/aether-2.1.x/files/yang/up-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef up-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for up-profile-id";
   }
 
   container up-profile {
@@ -44,7 +45,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf user-plane {
         type string {
@@ -65,7 +66,7 @@
           length 1..100;
         }
         description "description of this profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/Chart.yaml b/config-models/aether-2.2.x/Chart.yaml
index cbeac17..9226faa 100644
--- a/config-models/aether-2.2.x/Chart.yaml
+++ b/config-models/aether-2.2.x/Chart.yaml
@@ -4,7 +4,7 @@
 
 apiVersion: v2
 name: config-model-aether
-version: 2.2.3
+version: 2.2.4
 kubeVersion: ">=1.18.0"
 appVersion: 2.2.0
 description: Aether config model
diff --git a/config-models/aether-2.2.x/files/yang/access-profile.yang b/config-models/aether-2.2.x/files/yang/access-profile.yang
index d58a674..080ab14 100755
--- a/config-models/aether-2.2.x/files/yang/access-profile.yang
+++ b/config-models/aether-2.2.x/files/yang/access-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef access-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for access-profile-id";
   }
 
   container access-profile {
@@ -44,7 +45,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf type {
         type string {
@@ -52,7 +53,7 @@
         }
         description "type of profile";
       }
-  
+
       leaf filter {
         type string {
           length 0..32;
@@ -67,5 +68,5 @@
         description "description of this profile";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/aether-subscriber.yang b/config-models/aether-2.2.x/files/yang/aether-subscriber.yang
index 30f3e52..5cfa67e 100755
--- a/config-models/aether-2.2.x/files/yang/aether-subscriber.yang
+++ b/config-models/aether-2.2.x/files/yang/aether-subscriber.yang
@@ -11,7 +11,7 @@
   import up-profile{ prefix up; }
   import access-profile{ prefix ap; }
   import security-profile{ prefix sec; }
-  import enterprise{ prefix ent; }  
+  import enterprise{ prefix ent; }
   import ietf-yang-types{ prefix ietf; }
 
   organization "Open Networking Foundation.";
@@ -29,18 +29,21 @@
       type uint32 {
         range 0..999;
       }
+    description "The typede for mcc";
   }
 
   typedef mnc {
       type uint32 {
         range 0..999;
       }
+    description "The typede for mnc";
   }
 
   typedef tac {
       type uint32 {
         range 0..99999999;
       }
+    description "The typede for tac";
   }
 
   container subscriber {
@@ -52,8 +55,8 @@
         "List of subscriber devices";
 
       leaf id {
-        description "identifier for this subscriber, typically a UUID";
         type ietf:uuid;
+        description "identifier for this subscriber, typically a UUID";
       }
 
       leaf display-name {
@@ -61,7 +64,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }      
+      }
 
       choice imsi {
         case wildcard {
@@ -69,16 +72,20 @@
             type string {
               length 1..15;
             }
+            description "The leaf for imsi-wildcard";
           }
         }
         case range {
           leaf imsi-range-from {
             type uint64;
+            description "The leaf for imsi-range-from";
           }
           leaf imsi-range-to {
             type uint64;
+            description "The leaf for imsi-range-to";
           }
         }
+        description "The choise for imsi";
       }
 
       container serving-plmn {
@@ -94,6 +101,7 @@
           type tac;
           description "type allocation code";
         }
+        description "The container for serving-plmn";
       }
 
       leaf requested-apn {
@@ -122,7 +130,7 @@
       leaf enterprise {
         type leafref {
           path "/ent:enterprise/ent:enterprise/ent:id";
-        }              
+        }
         description
           "Link to enterprise that owns this UE range";
       }
@@ -138,14 +146,14 @@
         leaf up-profile {
           type leafref {
             path "/up:up-profile/up:up-profile/up:id";
-          }          
+          }
           description
             "Link to user plane profile";
         }
         leaf qos-profile {
           type leafref {
             path "/qos:qos-profile/qos:qos-profile/qos:id";
-          }              
+          }
           description
             "Link to qos profile";
         }
@@ -154,7 +162,7 @@
           leaf access-profile {
             type leafref {
               path "/ap:access-profile/ap:access-profile/ap:id";
-            }            
+            }
             description
                 "Link to access profile";
           }
@@ -164,15 +172,17 @@
             description
               "Allow or disallow this ue to use this access profile";
           }
+          description "The list for access-profile";
         }
         leaf security-profile {
           type leafref {
             path "/sec:security-profile/sec:security-profile/sec:id";
-          }              
+          }
           description
             "Link to security profile";
         }
+        description "The container for profiles";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/apn-profile.yang b/config-models/aether-2.2.x/files/yang/apn-profile.yang
index 27361dc..8445cc8 100755
--- a/config-models/aether-2.2.x/files/yang/apn-profile.yang
+++ b/config-models/aether-2.2.x/files/yang/apn-profile.yang
@@ -21,12 +21,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef apn-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for apn-profile-id";
   }
 
   container apn-profile {
@@ -47,7 +48,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf apn-name {
         type string {
@@ -96,5 +97,5 @@
           "Link to service group";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/connectivity-service.yang b/config-models/aether-2.2.x/files/yang/connectivity-service.yang
index f12340b..139a93f 100755
--- a/config-models/aether-2.2.x/files/yang/connectivity-service.yang
+++ b/config-models/aether-2.2.x/files/yang/connectivity-service.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for connectivity-service-id";
   }
 
   container connectivity-service {
@@ -43,7 +44,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type string {
@@ -65,7 +66,7 @@
       leaf pcrf-endpoint {
         type inet:uri;
         description "url of the pcrf service";
-      }         
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/enterprise.yang b/config-models/aether-2.2.x/files/yang/enterprise.yang
index 38cb4b8..b556638 100755
--- a/config-models/aether-2.2.x/files/yang/enterprise.yang
+++ b/config-models/aether-2.2.x/files/yang/enterprise.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for enterprise-id";
   }
 
   container enterprise {
@@ -43,7 +44,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type string {
@@ -57,7 +58,7 @@
         leaf connectivity-service {
           type leafref {
             path "/cs:connectivity-service/cs:connectivity-service/cs:id";
-          }            
+          }
           description
             "Link to connectivity services where configuration should be pushed for this enterprise's devices";
         }
@@ -67,7 +68,8 @@
           description
             "Allow or disallow pushes to this connectivity service";
         }
-      }              
+        description "The list for connectivity-service";
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/ietf-inet-types.yang b/config-models/aether-2.2.x/files/yang/ietf-inet-types.yang
index eacefb6..fa57f75 100644
--- a/config-models/aether-2.2.x/files/yang/ietf-inet-types.yang
+++ b/config-models/aether-2.2.x/files/yang/ietf-inet-types.yang
@@ -354,11 +354,11 @@
 
   typedef domain-name {
     type string {
+      length "1..253";
       pattern
         '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
       + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
       + '|\.';
-      length "1..253";
     }
     description
      "The domain-name type represents a DNS domain name.  The
diff --git a/config-models/aether-2.2.x/files/yang/qos-profile.yang b/config-models/aether-2.2.x/files/yang/qos-profile.yang
index 5ad91b4..85b6630 100755
--- a/config-models/aether-2.2.x/files/yang/qos-profile.yang
+++ b/config-models/aether-2.2.x/files/yang/qos-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef qos-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for qos-profile-id";
   }
 
   container qos-profile {
@@ -44,15 +45,15 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       container apn-ambr {
         leaf uplink {
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Upstream aggregate maximum bit rate";
         }
@@ -60,11 +61,12 @@
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Downstream aggregate maximum bit rate";
-        }        
+        }
+        description "The container for apn-ambr";
       }
 
       leaf qci {
@@ -80,11 +82,11 @@
         leaf priority {
           type uint32 {
             range 0..15;
-          }          
+          }
           default 0;
           description
             "Priority";
-        }        
+        }
         leaf preemption-capability {
           type boolean;
           default true;
@@ -98,8 +100,8 @@
             "This bearer may be dropped for a bearer with higher priority";
         }
         description "Evolved-ARP";
-      }        
-      
+      }
+
       leaf description {
         type string {
           length 1..100;
@@ -107,5 +109,5 @@
         description "description of this profile";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/security-profile.yang b/config-models/aether-2.2.x/files/yang/security-profile.yang
index 745b88e..e060487 100755
--- a/config-models/aether-2.2.x/files/yang/security-profile.yang
+++ b/config-models/aether-2.2.x/files/yang/security-profile.yang
@@ -21,6 +21,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for security-profile-id";
   }
 
   container security-profile {
@@ -77,7 +78,7 @@
           length 1..100;
         }
         description "description of this security profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/service-group.yang b/config-models/aether-2.2.x/files/yang/service-group.yang
index 9f2e7da..bb5ddf2 100755
--- a/config-models/aether-2.2.x/files/yang/service-group.yang
+++ b/config-models/aether-2.2.x/files/yang/service-group.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for service-group-id";
   }
 
   typedef service-kind {
@@ -30,6 +31,7 @@
       length 1..32;
       pattern "default|on-demand";
     }
+    description "The typedef for service-kind";
   }
 
   container service-group {
@@ -61,20 +63,21 @@
           description
               "Link to service policy";
         }
-        leaf kind {    
+        leaf kind {
           type service-kind;
           default "default";
           description
             "Type of service link";
         }
-      }      
+        description "The list for service-policies";
+      }
 
       leaf description {
         type string {
           length 1..100;
         }
         description "description of this service group";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/service-policy.yang b/config-models/aether-2.2.x/files/yang/service-policy.yang
index a0db158..d30f1ad 100755
--- a/config-models/aether-2.2.x/files/yang/service-policy.yang
+++ b/config-models/aether-2.2.x/files/yang/service-policy.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for service-policy-id";
   }
 
   container service-policy {
@@ -61,15 +62,15 @@
         default 9;
         description
           "Evolved-ARP";
-      }      
+      }
 
       container ambr {
         leaf uplink {
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Upstream aggregate maximum bit rate";
         }
@@ -77,11 +78,12 @@
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Downstream aggregate maximum bit rate";
-        }        
+        }
+        description "The container for ambr";
       }
 
       list rules {
@@ -99,14 +101,15 @@
           description
             "Enable or disable this service to use this rule";
         }
-      }       
+        description "The list for rules";
+      }
 
       leaf description {
         type string {
           length 1..100;
         }
         description "description of this profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/service-rule.yang b/config-models/aether-2.2.x/files/yang/service-rule.yang
index 5dce127..efb0539 100755
--- a/config-models/aether-2.2.x/files/yang/service-rule.yang
+++ b/config-models/aether-2.2.x/files/yang/service-rule.yang
@@ -21,6 +21,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for service-rule-id";
   }
 
   container service-rule {
@@ -64,11 +65,11 @@
           leaf priority {
             type uint32 {
               range 0..15;
-            }          
+            }
             default 0;
             description
               "Priority";
-          }        
+          }
           leaf preemption-capability {
             type boolean;
             default true;
@@ -89,8 +90,8 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Upstream maximum requested bandwidth";
           }
@@ -98,11 +99,12 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Downstream maximum requested bandwidth";
-          }        
+          }
+          description "The container for maximum-requested-bandwidth";
         }
 
         container guaranteed-bitrate {
@@ -110,8 +112,8 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Upstream guaranteed bitrate";
           }
@@ -119,11 +121,12 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Downstream guaranteed bitrate";
-          }        
+          }
+          description "The container for guaranteed-bitrate";
         }
 
         container aggregate-maximum-bitrate {
@@ -131,8 +134,8 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Upstream aggregate maximum bitrate";
           }
@@ -140,14 +143,16 @@
             type uint32 {
               range 0..4294967295;
             }
-            default 0;
             units bps;
+            default 0;
             description
               "Downstream aggregate maximum bitrate";
-          }        
+          }
+          description "The container for aggregate-maximum-bitrate";
         }
+        description "The container for qos";
       }
-  
+
       container flow {
         leaf specification {
           type string {
@@ -155,6 +160,7 @@
           }
           description "specification of this flow";
         }
+        description "The container for flow";
       }
 
       leaf description {
@@ -162,7 +168,7 @@
           length 1..100;
         }
         description "description of this rule";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.2.x/files/yang/up-profile.yang b/config-models/aether-2.2.x/files/yang/up-profile.yang
index 9a38b02..bf17f89 100755
--- a/config-models/aether-2.2.x/files/yang/up-profile.yang
+++ b/config-models/aether-2.2.x/files/yang/up-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef up-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for up-profile-id";
   }
 
   container up-profile {
@@ -44,7 +45,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf user-plane {
         type string {
@@ -65,7 +66,7 @@
           length 1..100;
         }
         description "description of this profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.x/Chart.yaml b/config-models/aether-2.x/Chart.yaml
index 0378168..b7f98e5 100644
--- a/config-models/aether-2.x/Chart.yaml
+++ b/config-models/aether-2.x/Chart.yaml
@@ -4,7 +4,7 @@
 
 apiVersion: v2
 name: config-model-aether
-version: 2.0.2
+version: 2.0.3
 kubeVersion: ">=1.18.0"
 appVersion: 2.0.0
 description: Aether config model
diff --git a/config-models/aether-2.x/files/yang/access-profile.yang b/config-models/aether-2.x/files/yang/access-profile.yang
index d58a674..080ab14 100755
--- a/config-models/aether-2.x/files/yang/access-profile.yang
+++ b/config-models/aether-2.x/files/yang/access-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef access-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for access-profile-id";
   }
 
   container access-profile {
@@ -44,7 +45,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf type {
         type string {
@@ -52,7 +53,7 @@
         }
         description "type of profile";
       }
-  
+
       leaf filter {
         type string {
           length 0..32;
@@ -67,5 +68,5 @@
         description "description of this profile";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.x/files/yang/aether-subscriber.yang b/config-models/aether-2.x/files/yang/aether-subscriber.yang
index 30f3e52..d1f43c9 100755
--- a/config-models/aether-2.x/files/yang/aether-subscriber.yang
+++ b/config-models/aether-2.x/files/yang/aether-subscriber.yang
@@ -11,7 +11,7 @@
   import up-profile{ prefix up; }
   import access-profile{ prefix ap; }
   import security-profile{ prefix sec; }
-  import enterprise{ prefix ent; }  
+  import enterprise{ prefix ent; }
   import ietf-yang-types{ prefix ietf; }
 
   organization "Open Networking Foundation.";
@@ -29,18 +29,21 @@
       type uint32 {
         range 0..999;
       }
+    description "The typedef for mmc";
   }
 
   typedef mnc {
       type uint32 {
         range 0..999;
       }
+    description "The typedef for mnc";
   }
 
   typedef tac {
       type uint32 {
         range 0..99999999;
       }
+    description "The typedef for tac";
   }
 
   container subscriber {
@@ -52,8 +55,8 @@
         "List of subscriber devices";
 
       leaf id {
-        description "identifier for this subscriber, typically a UUID";
         type ietf:uuid;
+        description "identifier for this subscriber, typically a UUID";
       }
 
       leaf display-name {
@@ -61,7 +64,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }      
+      }
 
       choice imsi {
         case wildcard {
@@ -69,16 +72,20 @@
             type string {
               length 1..15;
             }
+            description "The typedef for imsi-wildcard";
           }
         }
         case range {
           leaf imsi-range-from {
             type uint64;
+            description "The typedef for imsi-range-from";
           }
           leaf imsi-range-to {
             type uint64;
+            description "The typedef for imsi-range-to";
           }
         }
+        description "The choice for imsi";
       }
 
       container serving-plmn {
@@ -94,6 +101,7 @@
           type tac;
           description "type allocation code";
         }
+        description "The container for serving-plmn";
       }
 
       leaf requested-apn {
@@ -122,7 +130,7 @@
       leaf enterprise {
         type leafref {
           path "/ent:enterprise/ent:enterprise/ent:id";
-        }              
+        }
         description
           "Link to enterprise that owns this UE range";
       }
@@ -138,14 +146,14 @@
         leaf up-profile {
           type leafref {
             path "/up:up-profile/up:up-profile/up:id";
-          }          
+          }
           description
             "Link to user plane profile";
         }
         leaf qos-profile {
           type leafref {
             path "/qos:qos-profile/qos:qos-profile/qos:id";
-          }              
+          }
           description
             "Link to qos profile";
         }
@@ -154,7 +162,7 @@
           leaf access-profile {
             type leafref {
               path "/ap:access-profile/ap:access-profile/ap:id";
-            }            
+            }
             description
                 "Link to access profile";
           }
@@ -164,15 +172,17 @@
             description
               "Allow or disallow this ue to use this access profile";
           }
+          description "The list for access-profile";
         }
         leaf security-profile {
           type leafref {
             path "/sec:security-profile/sec:security-profile/sec:id";
-          }              
+          }
           description
             "Link to security profile";
         }
+        description "The container for profiles";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.x/files/yang/apn-profile.yang b/config-models/aether-2.x/files/yang/apn-profile.yang
index df18024..9f2125e 100755
--- a/config-models/aether-2.x/files/yang/apn-profile.yang
+++ b/config-models/aether-2.x/files/yang/apn-profile.yang
@@ -20,12 +20,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef apn-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for apn-profile-id";
   }
 
   container apn-profile {
@@ -46,7 +47,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf apn-name {
         type string {
@@ -85,7 +86,7 @@
           length 1..100;
         }
         description "description of this profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.x/files/yang/connectivity-service.yang b/config-models/aether-2.x/files/yang/connectivity-service.yang
index 1343a0d..e86e360 100755
--- a/config-models/aether-2.x/files/yang/connectivity-service.yang
+++ b/config-models/aether-2.x/files/yang/connectivity-service.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for connectivity-service-id";
   }
 
   container connectivity-service {
@@ -43,7 +44,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type string {
@@ -60,7 +61,7 @@
       leaf hss-endpoint {
         type inet:uri;
         description "url of the hss service";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.x/files/yang/enterprise.yang b/config-models/aether-2.x/files/yang/enterprise.yang
index 38cb4b8..9bc6bbb 100755
--- a/config-models/aether-2.x/files/yang/enterprise.yang
+++ b/config-models/aether-2.x/files/yang/enterprise.yang
@@ -23,6 +23,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for enterprise-id";
   }
 
   container enterprise {
@@ -43,7 +44,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type string {
@@ -57,7 +58,7 @@
         leaf connectivity-service {
           type leafref {
             path "/cs:connectivity-service/cs:connectivity-service/cs:id";
-          }            
+          }
           description
             "Link to connectivity services where configuration should be pushed for this enterprise's devices";
         }
@@ -67,7 +68,8 @@
           description
             "Allow or disallow pushes to this connectivity service";
         }
-      }              
+        description "The container for connectivity-service";
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.x/files/yang/ietf-inet-types.yang b/config-models/aether-2.x/files/yang/ietf-inet-types.yang
index eacefb6..fa57f75 100644
--- a/config-models/aether-2.x/files/yang/ietf-inet-types.yang
+++ b/config-models/aether-2.x/files/yang/ietf-inet-types.yang
@@ -354,11 +354,11 @@
 
   typedef domain-name {
     type string {
+      length "1..253";
       pattern
         '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
       + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
       + '|\.';
-      length "1..253";
     }
     description
      "The domain-name type represents a DNS domain name.  The
diff --git a/config-models/aether-2.x/files/yang/qos-profile.yang b/config-models/aether-2.x/files/yang/qos-profile.yang
index 5ad91b4..85b6630 100755
--- a/config-models/aether-2.x/files/yang/qos-profile.yang
+++ b/config-models/aether-2.x/files/yang/qos-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef qos-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for qos-profile-id";
   }
 
   container qos-profile {
@@ -44,15 +45,15 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       container apn-ambr {
         leaf uplink {
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Upstream aggregate maximum bit rate";
         }
@@ -60,11 +61,12 @@
           type uint32 {
             range 0..4294967295;
           }
-          default 0;
           units bps;
+          default 0;
           description
             "Downstream aggregate maximum bit rate";
-        }        
+        }
+        description "The container for apn-ambr";
       }
 
       leaf qci {
@@ -80,11 +82,11 @@
         leaf priority {
           type uint32 {
             range 0..15;
-          }          
+          }
           default 0;
           description
             "Priority";
-        }        
+        }
         leaf preemption-capability {
           type boolean;
           default true;
@@ -98,8 +100,8 @@
             "This bearer may be dropped for a bearer with higher priority";
         }
         description "Evolved-ARP";
-      }        
-      
+      }
+
       leaf description {
         type string {
           length 1..100;
@@ -107,5 +109,5 @@
         description "description of this profile";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.x/files/yang/security-profile.yang b/config-models/aether-2.x/files/yang/security-profile.yang
index a8a3069..00413b1 100755
--- a/config-models/aether-2.x/files/yang/security-profile.yang
+++ b/config-models/aether-2.x/files/yang/security-profile.yang
@@ -21,6 +21,7 @@
         type string {
             length 1..32;
         }
+    description "The typedef for security-profile-id";
   }
 
   container security-profile {
@@ -41,7 +42,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf key {
         type string {
@@ -67,7 +68,7 @@
           length 1..100;
         }
         description "description of this security profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-2.x/files/yang/up-profile.yang b/config-models/aether-2.x/files/yang/up-profile.yang
index 9a38b02..bf17f89 100755
--- a/config-models/aether-2.x/files/yang/up-profile.yang
+++ b/config-models/aether-2.x/files/yang/up-profile.yang
@@ -18,12 +18,13 @@
   }
 
   // TODO: Think more on whether this should be a UUID or
-  // simply a unique name. If it's a UUID, could fix the 
+  // simply a unique name. If it's a UUID, could fix the
   // string length.
   typedef up-profile-id {
         type string {
             length 1..32;
         }
+    description "The typedef for up-profile-id";
   }
 
   container up-profile {
@@ -44,7 +45,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf user-plane {
         type string {
@@ -65,7 +66,7 @@
           length 1..100;
         }
         description "description of this profile";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/Chart.yaml b/config-models/aether-3.x/Chart.yaml
index 1d77b11..c073e1e 100644
--- a/config-models/aether-3.x/Chart.yaml
+++ b/config-models/aether-3.x/Chart.yaml
@@ -4,7 +4,7 @@
 
 apiVersion: v2
 name: config-model-aether-3
-version: 3.0.14
+version: 3.0.15
 kubeVersion: ">=1.18.0"
 appVersion: 3.0.0
 description: Aether config model
diff --git a/config-models/aether-3.x/files/yang/aether-types.yang b/config-models/aether-3.x/files/yang/aether-types.yang
index fedbdc6..b8de573 100755
--- a/config-models/aether-3.x/files/yang/aether-types.yang
+++ b/config-models/aether-3.x/files/yang/aether-types.yang
@@ -21,12 +21,14 @@
       type string {
         pattern '[0-9]{3}';
       }
+    description "The typedef for mcc";
   }
 
   typedef mnc {
       type string {
         pattern '[0-9]{2,3}';
       }
+    description "The typedef for mnc";
   }
 
   typedef tac {
@@ -34,49 +36,57 @@
         length 4..8;
         pattern '[0-9A-F\.]*';
       }
+    description "The typedef for tac";
   }
 
   typedef ent {
       type uint32 {
         range 0..999;
       }
-  }  
+    description "The typedef for ent";
+  }
 
   typedef dnn {
       type string {
         length 1..32;
       }
-  }  
+    description "The typedef for dnn";
+  }
 
   typedef sst {
       type uint8 {
         range 1..255;
       }
+    description "The typedef for sst";
   }
 
   typedef sd {
       type uint32 {
         range 0..16777215;
       }
+    description "The typedef for sd";
   }
 
   typedef qci {
       type uint8 {
         range 1..32;
       }
+    description "The typedef for qci";
   }
 
   typedef pelr {
       type int8 {
         range 0..10;
       }
+    description "The typedef for pelr";
   }
 
   typedef pdb {
       type uint16 {
         range 0..1000;
       }
-  }  
+    description "The typedef for pdb";
+  }
 
   // "TCP" or "UDP"
   typedef protocol {
@@ -85,6 +95,7 @@
         pattern "TCP|UDP";
       }
       default "TCP";
+    description "The typedef for protocol";
   }
 
   // "ENABLE" | "MAINTENTANCE" | "DISABLE"
@@ -94,16 +105,19 @@
         pattern "ENABLE|MAINTENANCE|DISABLE";
       }
       default "ENABLE";
-  }  
+    description "The typedef for admin-status";
+  }
 
   typedef mtu {
       type inet:port-number;
       default 1492;
+    description "The typedef for mtu";
   }
 
   typedef description {
     type string {
       length 1..1024;
     }
+    description "The typedef for description";
   }
 }
diff --git a/config-models/aether-3.x/files/yang/ap-list.yang b/config-models/aether-3.x/files/yang/ap-list.yang
index 3c1a759..cb0ecde 100755
--- a/config-models/aether-3.x/files/yang/ap-list.yang
+++ b/config-models/aether-3.x/files/yang/ap-list.yang
@@ -13,7 +13,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "An Aether AP List is a named list of access points.";
 
   revision "2021-06-02" {
@@ -25,6 +25,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef ap-list-id";
   }
 
   container ap-list {
@@ -52,7 +53,7 @@
           mandatory true;
           description
               "Type Allocation Code";
-        }        
+        }
         leaf enable {
           type boolean;
           default true;
@@ -61,14 +62,14 @@
         }
         description
           "List of access point addresses";
-      }        
+      }
 
       leaf display-name {
         type string {
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type at:description;
@@ -85,7 +86,7 @@
         mandatory true;
         description
           "Link to enterprise that owns this Access Point List";
-      }       
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/application.yang b/config-models/aether-3.x/files/yang/application.yang
index 2f1a4fc..fcc05e3 100755
--- a/config-models/aether-3.x/files/yang/application.yang
+++ b/config-models/aether-3.x/files/yang/application.yang
@@ -13,7 +13,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "An Aether Application is an application that UE devices may
      connect to. Includes a set of endpoints where services are
      provided.";
@@ -27,6 +27,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for application-id";
   }
 
   container application {
@@ -83,7 +84,8 @@
           type at:protocol;
           description
               "Name of this endpoint";
-        }                   
+        }
+        description "The list for endpoints";
       }
 
       leaf enterprise {
@@ -95,5 +97,5 @@
           "Link to enterprise that owns this Application. May be set to None if the application is global to all Enterprises.";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/connectivity-service.yang b/config-models/aether-3.x/files/yang/connectivity-service.yang
index f3cc3fc..aa97da3 100755
--- a/config-models/aether-3.x/files/yang/connectivity-service.yang
+++ b/config-models/aether-3.x/files/yang/connectivity-service.yang
@@ -12,7 +12,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "An Aether Connectivity service is the linkage between the
      ROC and a core that provides connectivity.";
 
@@ -25,6 +25,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for connectivity-service-id";
   }
 
   container connectivity-service {
@@ -45,7 +46,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type at:description;
@@ -70,7 +71,7 @@
       leaf core-5g-endpoint {
         type inet:uri;
         description "url of the 5g core";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/device-group.yang b/config-models/aether-3.x/files/yang/device-group.yang
index e9c1590..feb0337 100755
--- a/config-models/aether-3.x/files/yang/device-group.yang
+++ b/config-models/aether-3.x/files/yang/device-group.yang
@@ -13,7 +13,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "An aether device group represents a list of device IMSIS.
      This list is expressed as a set of ranges,
          [(from_imsi, to_imsi),
@@ -33,7 +33,8 @@
         type yg:yang-identifier {
             length 1..32;
         }
-  }  
+    description "The typedef for device-group-id";
+  }
 
   container device-group {
     description "The top level container";
@@ -58,19 +59,22 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }      
-      
+      }
+
       list imsis {
         // TODO: imsi-range-from cannot be used as a list index
         key "name";
         leaf name {
           type string;
+          description "The leaf for imsi name";
         }
         leaf imsi-range-from {
           type uint64;
+	  description "The leaf for imsi-range-from";
         }
         leaf imsi-range-to {
           type uint64;
+          description "The leaf for imsi-range-to";
         }
         description
           "List of imsi ranges that comprise this group. It's acceptable for
@@ -80,7 +84,7 @@
       leaf ip-domain {
         type leafref {
           path "/ipd:ip-domain/ipd:ip-domain/ipd:id";
-        }          
+        }
         description
           "Link to ip-domain settings that determine the pool of IP addresses,
            as well as the domain resolver settings to use";
@@ -95,5 +99,5 @@
           "Link to site";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/enterprise.yang b/config-models/aether-3.x/files/yang/enterprise.yang
index 4d91f47..8128e6d 100755
--- a/config-models/aether-3.x/files/yang/enterprise.yang
+++ b/config-models/aether-3.x/files/yang/enterprise.yang
@@ -12,7 +12,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "An Aether Enterprise is an administration entity that
      has ownership of resrouces.";
 
@@ -25,6 +25,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for enterprise-id";
   }
 
   container enterprise {
@@ -45,7 +46,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type at:description;
@@ -57,7 +58,7 @@
         leaf connectivity-service {
           type leafref {
             path "/cs:connectivity-service/cs:connectivity-service/cs:id";
-          }            
+          }
           description
             "Link to connectivity services where configuration should be pushed for this enterprise's devices";
         }
@@ -67,7 +68,8 @@
           description
             "Allow or disallow pushes to this connectivity service";
         }
-      }              
+        description "The list for connectivity-service";
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/ietf-inet-types.yang b/config-models/aether-3.x/files/yang/ietf-inet-types.yang
index eacefb6..fa57f75 100644
--- a/config-models/aether-3.x/files/yang/ietf-inet-types.yang
+++ b/config-models/aether-3.x/files/yang/ietf-inet-types.yang
@@ -354,11 +354,11 @@
 
   typedef domain-name {
     type string {
+      length "1..253";
       pattern
         '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
       + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
       + '|\.';
-      length "1..253";
     }
     description
      "The domain-name type represents a DNS domain name.  The
diff --git a/config-models/aether-3.x/files/yang/ip-domain.yang b/config-models/aether-3.x/files/yang/ip-domain.yang
index 7f2bf73..9efd41d 100755
--- a/config-models/aether-3.x/files/yang/ip-domain.yang
+++ b/config-models/aether-3.x/files/yang/ip-domain.yang
@@ -27,6 +27,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for ip-domain-id";
   }
 
   container ip-domain {
@@ -52,7 +53,7 @@
       leaf dnn {
         type at:dnn;
         description "DNN/APN";
-      }      
+      }
 
       leaf dns-primary {
         type inet:ip-address;
@@ -80,7 +81,7 @@
       leaf mtu {
         type at:mtu;
         description "maximum transmission unit";
-      }           
+      }
 
       leaf description {
         type at:description;
@@ -96,7 +97,7 @@
         mandatory true;
         description
           "Link to enterprise that owns this IP-Domain";
-      }         
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/site.yang b/config-models/aether-3.x/files/yang/site.yang
index 89f8fc7..5c4a31c 100755
--- a/config-models/aether-3.x/files/yang/site.yang
+++ b/config-models/aether-3.x/files/yang/site.yang
@@ -12,7 +12,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "An Aether site is a location where resources are deployed.";
 
   revision "2021-06-02" {
@@ -24,6 +24,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for site-id";
   }
 
   container site {
@@ -49,27 +50,27 @@
       leaf enterprise {
         type leafref {
           path "/ent:enterprise/ent:enterprise/ent:id";
-        }              
+        }
+        mandatory true;
         description
           "Link to enterprise that owns this site";
-        mandatory true;          
       }
 
       container imsi-definition {
         leaf mcc {
           type at:mcc;
+	  mandatory true;
           description "mobile country code";
-          mandatory true;
         }
         leaf mnc {
           type at:mnc;
+	  mandatory true;
           description "mobile network code";
-          mandatory true;
         }
         leaf enterprise {
           type at:ent;
+	  mandatory true;
           description "enterprise-specific identifier";
-          mandatory true;
         }
         leaf format {
           type string {
@@ -89,12 +90,13 @@
           //   3 digit enterprise ID
           //   5 digit subscriber ID
         }
+        description "The container for imsi-definition";
       }
 
       leaf description {
         type at:description;
         description "description of this site";
-      }         
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/template.yang b/config-models/aether-3.x/files/yang/template.yang
index ea040e7..95bda57 100755
--- a/config-models/aether-3.x/files/yang/template.yang
+++ b/config-models/aether-3.x/files/yang/template.yang
@@ -12,7 +12,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "The aether vcs-template holds common parameters used
      by a virtual connectivity service. Templates are used to
      populate a VCS.";
@@ -26,6 +26,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for template-id";
   }
 
   container template {
@@ -71,15 +72,15 @@
       leaf traffic-class {
         type leafref {
           path "/tc:traffic-class/tc:traffic-class/tc:id";
-        }          
+        }
         description
           "Link to traffic class";
-      } 
+      }
 
       leaf description {
         type at:description;
         description "description of this vcs template";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/traffic-class.yang b/config-models/aether-3.x/files/yang/traffic-class.yang
index 636c816..ce9aeb5 100755
--- a/config-models/aether-3.x/files/yang/traffic-class.yang
+++ b/config-models/aether-3.x/files/yang/traffic-class.yang
@@ -11,7 +11,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "The aether traffic class associates qos constants
      with a named class of service";
 
@@ -24,6 +24,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for traffic-class-id";
   }
 
   container traffic-class {
@@ -54,17 +55,17 @@
       leaf pdb {
         type at:pdb;
         description "PDB";
-      }        
+      }
 
       leaf qci {
         type at:qci;
         description "QCI";
-      }      
+      }
 
       leaf description {
         type at:description;
         description "description of this traffic class";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/upf.yang b/config-models/aether-3.x/files/yang/upf.yang
index 1c92214..3c56722 100755
--- a/config-models/aether-3.x/files/yang/upf.yang
+++ b/config-models/aether-3.x/files/yang/upf.yang
@@ -24,6 +24,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for upf-id";
   }
 
   container upf {
@@ -75,7 +76,7 @@
         mandatory true;
         description
           "Link to enterprise that owns this Access Point List";
-      }      
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-3.x/files/yang/vcs.yang b/config-models/aether-3.x/files/yang/vcs.yang
index ab4e370..5799143 100755
--- a/config-models/aether-3.x/files/yang/vcs.yang
+++ b/config-models/aether-3.x/files/yang/vcs.yang
@@ -8,7 +8,7 @@
 
   import template{ prefix vt; }
   import upf { prefix upf; }
-  import ap-list{ prefix apl; }    
+  import ap-list{ prefix apl; }
   import application{ prefix app; }
   import aether-types{ prefix at; }
   import device-group{ prefix dg; }
@@ -18,7 +18,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "An Aether Virtual Cellular Service (VCS) is
      used to connect UE devices with applications";
 
@@ -31,6 +31,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for vcs-id";
   }
 
   container vcs {
@@ -54,13 +55,13 @@
       }
 
       list device-group {
-        key "device-group";   
+        key "device-group";
         leaf device-group {
           type leafref {
             path "/dg:device-group/dg:device-group/dg:id";
-          }          
+          }
           description
-            "Link to device group";          
+            "Link to device group";
         }
         leaf enable {
           type boolean;
@@ -71,19 +72,19 @@
         description
           "A list of device groups. Groups will only participate in
            the VCS if the enable field is set to True";
-      }         
+      }
 
       leaf template {
         type leafref {
           path "/vt:template/vt:template/vt:id";
-        }          
+        }
         description
           "Link to user vcs template that was used to initialize
            this VCS";
       }
 
       list application {
-        key "application";   
+        key "application";
         leaf application {
           type leafref {
             path "/app:application/app:application/app:id";
@@ -102,12 +103,12 @@
           "An ordered list of applications to allow and deny. The deny rules
            will be executed first, followed by the allow rules. The first rule
            to match is returned. An implicit DENY ALL lies at the end.";
-      }      
+      }
 
       leaf upf {
         type leafref {
           path "/upf:upf/upf:upf/upf:id";
-        }          
+        }
         description
           "Link to user plane that implements this vcf";
       }
@@ -115,7 +116,7 @@
       leaf ap {
         type leafref {
           path "/apl:ap-list/apl:ap-list/apl:id";
-        }          
+        }
         description
           "Link to access-point list";
       }
@@ -132,7 +133,7 @@
         mandatory true;
         description
           "Link to enterprise that owns this VCS";
-      }      
+      }
 
       // the following are populated from the template
       leaf sst {
@@ -140,7 +141,7 @@
         mandatory true;
         description "Slice/Service type. Immutable.";
       }
-      
+
       leaf sd {
         type at:sd;
         mandatory true;
@@ -167,5 +168,5 @@
       }
       // end of items populated from the template
     }
-  } 
+  }
 }
diff --git a/config-models/aether-4.x/Chart.yaml b/config-models/aether-4.x/Chart.yaml
index 416ac27..42da325 100644
--- a/config-models/aether-4.x/Chart.yaml
+++ b/config-models/aether-4.x/Chart.yaml
@@ -4,7 +4,7 @@
 
 apiVersion: v2
 name: config-model-aether-4
-version: 4.0.15
+version: 4.0.16
 kubeVersion: ">=1.18.0"
 appVersion: 4.0.0
 description: Aether config model
diff --git a/config-models/aether-4.x/files/yang/ietf-inet-types.yang b/config-models/aether-4.x/files/yang/ietf-inet-types.yang
index eacefb6..fa57f75 100644
--- a/config-models/aether-4.x/files/yang/ietf-inet-types.yang
+++ b/config-models/aether-4.x/files/yang/ietf-inet-types.yang
@@ -354,11 +354,11 @@
 
   typedef domain-name {
     type string {
+      length "1..253";
       pattern
         '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
       + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
       + '|\.';
-      length "1..253";
     }
     description
      "The domain-name type represents a DNS domain name.  The
diff --git a/config-models/aether-4.x/files/yang/onf-aether-types.yang b/config-models/aether-4.x/files/yang/onf-aether-types.yang
index 3672203..679648e 100755
--- a/config-models/aether-4.x/files/yang/onf-aether-types.yang
+++ b/config-models/aether-4.x/files/yang/onf-aether-types.yang
@@ -20,24 +20,28 @@
   typedef bitrate {
       type uint64 {
       }
+    description "The typedef for bitrate";
   }
 
   typedef burst {
       type uint32 {
       }
       default 625000;
+    description "The typedef for burst";
   }
 
   typedef mcc {
       type string {
         pattern '[0-9]{3}';
       }
+    description "The typedef for mcc";
   }
 
   typedef mnc {
       type string {
         pattern '[0-9]{2,3}';
       }
+    description "The typedef for mnc";
   }
 
   typedef tac {
@@ -45,54 +49,63 @@
         length 4..8;
         pattern '[0-9A-F\.]*';
       }
+    description "The typedef for tac";
   }
 
   typedef ent {
       type uint32 {
         range 0..999;
       }
-  }  
+    description "The typedef for ent";
+  }
 
   typedef dnn {
       type string {
         length 1..32;
       }
-  }  
+    description "The typedef for dnn";
+  }
 
   typedef sst {
       type uint8 {
         range 1..255;
       }
+    description "The typedef for sst";
   }
 
   typedef sd {
       type uint32 {
         range 0..16777215;
       }
+    description "The typedef for sd";
   }
 
   typedef qci {
       type uint8 {
         range 1..32;
       }
+    description "The typedef for qci";
   }
 
   typedef arp {
       type uint8 {
         range 1..15;
       }
-  }  
+    description "The typedef for arp";
+  }
 
   typedef pelr {
       type int8 {
         range 0..10;
       }
+    description "The typedef for pelr";
   }
 
   typedef pdb {
       type uint16 {
         range 0..1000;
       }
+    description "The typedef for pdb";
   }
 
   typedef priority {
@@ -100,6 +113,7 @@
       // priorities 201-255 are reserved for system use
       range 0..200;
     }
+    description "The typedef for priority";
   }
 
   // "TCP" or "UDP"
@@ -109,6 +123,7 @@
         pattern "TCP|UDP";
       }
       default "TCP";
+    description "The typedef for protocol";
   }
 
   // "ENABLE" | "MAINTENTANCE" | "DISABLE"
@@ -118,6 +133,7 @@
         pattern "ENABLE|MAINTENANCE|DISABLE";
       }
       default "ENABLE";
+    description "The typedef for admin-status";
   }
 
   typedef behavior {
@@ -125,16 +141,19 @@
         length 0..20;
         pattern "DENY-ALL|ALLOW-ALL|ALLOW-PUBLIC";
       }
+    description "The typedef for behavior";
   }
 
   typedef mtu {
       type inet:port-number;
       default 1492;
+    description "The typedef for mtu";
   }
 
   typedef description {
     type string {
       length 1..1024;
     }
+    description "The typedef for description";
   }
 }
diff --git a/config-models/aether-4.x/files/yang/onf-application.yang b/config-models/aether-4.x/files/yang/onf-application.yang
index cb21a6c..e024462 100755
--- a/config-models/aether-4.x/files/yang/onf-application.yang
+++ b/config-models/aether-4.x/files/yang/onf-application.yang
@@ -28,6 +28,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for application-id";
   }
 
   container application {
@@ -112,6 +113,7 @@
           }
           description "display name to use in GUI or CLI";
         }
+        description "list for endpoint";
       }
 
       leaf enterprise {
diff --git a/config-models/aether-4.x/files/yang/onf-connectivity-service.yang b/config-models/aether-4.x/files/yang/onf-connectivity-service.yang
index dfcd8d0..e1d53b6 100755
--- a/config-models/aether-4.x/files/yang/onf-connectivity-service.yang
+++ b/config-models/aether-4.x/files/yang/onf-connectivity-service.yang
@@ -25,6 +25,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+   description "The typedef for connectivity-service-id";
   }
 
   container connectivity-service {
diff --git a/config-models/aether-4.x/files/yang/onf-device-group.yang b/config-models/aether-4.x/files/yang/onf-device-group.yang
index 87295db..a93c295 100755
--- a/config-models/aether-4.x/files/yang/onf-device-group.yang
+++ b/config-models/aether-4.x/files/yang/onf-device-group.yang
@@ -34,6 +34,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for device-group-id";
   }
 
   container device-group {
@@ -71,9 +72,13 @@
         }
         leaf imsi-range-from {
           type uint64;
+          description
+              "value of imsi-range-from";
         }
         leaf imsi-range-to {
           type uint64;
+          description
+              "value of imsi-range-to";
         }
         leaf display-name {
           type string {
@@ -102,24 +107,24 @@
           leaf uplink {
             type at:bitrate;
             units bps;
-            description "Per-device MBR uplink data rate in bps";
             mandatory true;
+            description "Per-device MBR uplink data rate in bps";
           }
 
           leaf downlink {
             type at:bitrate;
             units bps;
-            description "Per-device MBR downlink data rate in bps";
             mandatory true;
+            description "Per-device MBR downlink data rate in bps";
           }
         }
         leaf traffic-class {
           type leafref {
             path "/tc:traffic-class/tc:traffic-class/tc:id";
           }
+          mandatory true;
           description
             "Link to traffic class";
-          mandatory true;
         }
       }
 
@@ -127,9 +132,9 @@
         type leafref {
           path "/st:site/st:site/st:id";
         }
+        mandatory true;
         description
           "Link to site";
-        mandatory true;
       }
     }
   }
diff --git a/config-models/aether-4.x/files/yang/onf-enterprise.yang b/config-models/aether-4.x/files/yang/onf-enterprise.yang
index ec61bf4..16ad5f9 100755
--- a/config-models/aether-4.x/files/yang/onf-enterprise.yang
+++ b/config-models/aether-4.x/files/yang/onf-enterprise.yang
@@ -12,7 +12,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "An Aether Enterprise is an administration entity that
      has ownership of resrouces.";
 
@@ -25,6 +25,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+   description "The typedef for enterprise-id";
   }
 
   container enterprise {
@@ -45,7 +46,7 @@
             length 1..80;
         }
         description "display name to use in GUI or CLI";
-      }     
+      }
 
       leaf description {
         type at:description;
@@ -57,7 +58,7 @@
         leaf connectivity-service {
           type leafref {
             path "/cs:connectivity-service/cs:connectivity-service/cs:id";
-          }            
+          }
           description
             "Link to connectivity services where configuration should be pushed for this enterprise's devices";
         }
@@ -67,7 +68,8 @@
           description
             "Allow or disallow pushes to this connectivity service";
         }
-      }              
+        description "The list for connectivity-service";
+      }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-4.x/files/yang/onf-ip-domain.yang b/config-models/aether-4.x/files/yang/onf-ip-domain.yang
index fdd8c2b..e896cc5 100755
--- a/config-models/aether-4.x/files/yang/onf-ip-domain.yang
+++ b/config-models/aether-4.x/files/yang/onf-ip-domain.yang
@@ -27,6 +27,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for ip-domain-id";
   }
 
   container ip-domain {
diff --git a/config-models/aether-4.x/files/yang/onf-site.yang b/config-models/aether-4.x/files/yang/onf-site.yang
index 7118c97..b5f22c4 100755
--- a/config-models/aether-4.x/files/yang/onf-site.yang
+++ b/config-models/aether-4.x/files/yang/onf-site.yang
@@ -25,6 +25,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for site-id";
   }
 
   container site {
@@ -112,32 +113,34 @@
           description
             "List of edge monitoring devices";
         }
+        description
+            "container for monitoring";
       }
 
       leaf enterprise {
         type leafref {
           path "/ent:enterprise/ent:enterprise/ent:id";
         }
+        mandatory true;
         description
           "Link to enterprise that owns this site";
-        mandatory true;
       }
 
       container imsi-definition {
         leaf mcc {
           type at:mcc;
-          description "mobile country code";
           mandatory true;
+          description "mobile country code";
         }
         leaf mnc {
           type at:mnc;
-          description "mobile network code";
           mandatory true;
+          description "mobile network code";
         }
         leaf enterprise {
           type at:ent;
-          description "enterprise-specific identifier";
           mandatory true;
+          description "enterprise-specific identifier";
         }
         leaf format {
           type string {
@@ -157,6 +160,7 @@
           //   3 digit enterprise ID
           //   5 digit subscriber ID
         }
+        description "container for imsi-defination";
       }
 
       leaf description {
diff --git a/config-models/aether-4.x/files/yang/onf-template.yang b/config-models/aether-4.x/files/yang/onf-template.yang
index 334dc11..bbd94ef 100755
--- a/config-models/aether-4.x/files/yang/onf-template.yang
+++ b/config-models/aether-4.x/files/yang/onf-template.yang
@@ -11,7 +11,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "The aether vcs-template holds common parameters used
      by a virtual connectivity service. Templates are used to
      populate a VCS.";
@@ -25,6 +25,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for template-id";
   }
 
   container template {
@@ -99,5 +100,5 @@
         description "description of this vcs template";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-4.x/files/yang/onf-traffic-class.yang b/config-models/aether-4.x/files/yang/onf-traffic-class.yang
index f4f6cdf..a592267 100755
--- a/config-models/aether-4.x/files/yang/onf-traffic-class.yang
+++ b/config-models/aether-4.x/files/yang/onf-traffic-class.yang
@@ -11,7 +11,7 @@
 
   organization "Open Networking Foundation.";
   contact "Scott Baker";
-  description 
+  description
     "The aether traffic class associates qos constants
      with a named class of service";
 
@@ -24,6 +24,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for traffic-class-id";
   }
 
   container traffic-class {
@@ -71,5 +72,5 @@
         description "description of this traffic class";
       }
     }
-  } 
+  }
 }
diff --git a/config-models/aether-4.x/files/yang/onf-upf.yang b/config-models/aether-4.x/files/yang/onf-upf.yang
index a8a7c4c..5c8be50 100755
--- a/config-models/aether-4.x/files/yang/onf-upf.yang
+++ b/config-models/aether-4.x/files/yang/onf-upf.yang
@@ -25,6 +25,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+   description "The typedef for upf-id";
   }
 
   container upf {
@@ -57,7 +58,7 @@
       leaf config-endpoint {
         type inet:uri;
         description "url for configuring the UPF";
-      }         
+      }
 
       leaf display-name {
         type string {
diff --git a/config-models/aether-4.x/files/yang/onf-vcs.yang b/config-models/aether-4.x/files/yang/onf-vcs.yang
index 9597f9a..c275565 100755
--- a/config-models/aether-4.x/files/yang/onf-vcs.yang
+++ b/config-models/aether-4.x/files/yang/onf-vcs.yang
@@ -29,6 +29,7 @@
         type yg:yang-identifier {
             length 1..32;
         }
+    description "The typedef for vcs-id";
   }
 
   container vcs {
@@ -132,9 +133,9 @@
         type leafref {
           path "/st:site/st:site/st:id";
         }
+	mandatory true;
         description
           "Link to site where this VCS is deployed";
-        mandatory true;
       }
 
       // the following are populated from the template
diff --git a/config-models/plproxy-1.x/Chart.yaml b/config-models/plproxy-1.x/Chart.yaml
index b0d52ae..ac62ff5 100755
--- a/config-models/plproxy-1.x/Chart.yaml
+++ b/config-models/plproxy-1.x/Chart.yaml
@@ -4,7 +4,7 @@
 
 apiVersion: v2
 name: config-model-plproxy
-version: 1.0.0
+version: 1.0.1
 kubeVersion: ">=1.18.0"
 appVersion: 1.0.0
 description: Prom label proxy config model
diff --git a/config-models/plproxy-1.x/files/yang/prom-label-proxy.yang b/config-models/plproxy-1.x/files/yang/prom-label-proxy.yang
index 294b5de..abc5c66 100755
--- a/config-models/plproxy-1.x/files/yang/prom-label-proxy.yang
+++ b/config-models/plproxy-1.x/files/yang/prom-label-proxy.yang
@@ -5,6 +5,7 @@
 module prom-label-proxy {

   namespace "http://opennetworking.org/promlabelproxy/config/";

   prefix plp;

+

   organization "Open Networking Foundation.";

   contact "Amit Wankhede";

   description "A Aether groups and prom label configuration";

diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..f2a3656
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,3 @@
+# SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+pyang~=2.5.0