diff --git a/config-models/aether-2.0.x/files/yang/onf-slice.yang b/config-models/aether-2.0.x/files/yang/onf-slice.yang
new file mode 100755
index 0000000..98bfdd8
--- /dev/null
+++ b/config-models/aether-2.0.x/files/yang/onf-slice.yang
@@ -0,0 +1,169 @@
+// SPDX-FileCopyrightText: 2021 Open Networking Foundation
+//
+// SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
+
+submodule onf-slice {
+  belongs-to onf-enterprise { prefix ent; }
+
+  import ietf-yang-types{ prefix yg; }
+  import onf-aether-types{ prefix at; }
+
+  include onf-upf;
+  include onf-device-group;
+  include onf-application;
+
+  organization "Open Networking Foundation.";
+  contact "Scott Baker";
+  description
+    "An Aether Slice is
+     used to connect devices with applications";
+
+  revision "2022-01-14" {
+    description "Refactored as submodule";
+    reference "RFC 6020";
+  }
+
+  revision "2021-09-10" {
+    description "An Aether Slice";
+    reference "RFC 6087";
+  }
+
+  typedef slice-id {
+        type yg:yang-identifier {
+            length 1..32;
+        }
+    description "The typedef for slice-id";
+  }
+
+  grouping slice {
+    description "The slice grouping";
+
+    list slice {
+      key "slice-id";
+      description
+        "List of Slices";
+
+      leaf slice-id {
+        type slice-id;
+        description "ID for this slice.";
+      }
+
+      leaf display-name {
+        type string {
+            length 1..80;
+        }
+        description "display name to use in GUI or CLI";
+      }
+
+      list device-group {
+        key "device-group";
+        leaf device-group {
+          type leafref {
+            path "../../../device-group/dg-id";
+          }
+          description
+            "Link to device group";
+        }
+        leaf enable {
+          type boolean;
+          default true;
+          description
+            "Enable this device group";
+        }
+        description
+          "A list of device groups. Groups will only participate in
+           the Slice if the enable field is set to True";
+      }
+
+      leaf default-behavior {
+        type at:behavior;
+        mandatory true;
+        description
+          "Default behavior if no filter rules match";
+      }
+
+      list filter {
+        key "application";
+        leaf application {
+          type leafref {
+            path "../../../../application/app-id";
+          }
+          mandatory true;
+          description
+            "Link to application";
+        }
+        leaf priority {
+          type at:priority;
+          default 0;
+          description
+            "Priority of this application";
+        }
+        leaf allow {
+          type boolean;
+          default true;
+          description
+            "Allow or deny this application";
+        }
+        description
+          "A list of applications to allow and/or deny. Rules are executed in
+           priority order. The first rule to match will determine the fate
+           of the packet.";
+      }
+
+      leaf upf {
+        type leafref {
+          path "../../upf/upf-id";
+        }
+        description
+          "Link to user plane that implements this vcf";
+      }
+
+      leaf description {
+        type at:description;
+        description "description of this slice";
+      }
+
+      // the following are populated from the template
+      leaf sst {
+        type at:sst;
+        mandatory true;
+        description "Slice/Service type. Immutable.";
+      }
+
+      leaf sd {
+        type at:sd;
+        mandatory true;
+        description "Slice differentiator. Immutable.";
+      }
+
+      container mbr {
+        description "Per slice Maximum Bit Rate";
+        leaf uplink {
+          type at:bitrate;
+          units bps;
+          description "Per-Slice MBR uplink data rate in bps";
+        }
+
+        leaf downlink {
+          type at:bitrate;
+          units bps;
+          description "Per-Slice MBR downlink data rate in bps";
+        }
+
+        leaf uplink-burst-size {
+          type at:burst;
+          units bytes;
+          description "Per-Slice Uplink burst size";
+        }
+
+        leaf downlink-burst-size {
+          type at:burst;
+          units bytes;
+          description "Per-Slice Downlink burst size";
+        }
+      }
+
+      // end of items populated from the template
+    }
+  }
+}
