diff --git a/api/models/iana-if-type.yang b/api/models/iana-if-type.yang
deleted file mode 100644
index 7bfee36478edc7c65677cfe48b2630bffff791cb..0000000000000000000000000000000000000000
--- a/api/models/iana-if-type.yang
+++ /dev/null
@@ -1,1619 +0,0 @@
-module iana-if-type {
-  namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
-  prefix ianaift;
-
-  import ietf-interfaces {
-    prefix if;
-  }
-
-  organization "IANA";
-  contact
-    "        Internet Assigned Numbers Authority
-
-     Postal: ICANN
-             12025 Waterfront Drive, Suite 300
-             Los Angeles, CA 90094-2536
-             United States
-
-     Tel:    +1 310 301 5800
-     <mailto:iana&iana.org>";
-  description
-    "This YANG module defines YANG identities for IANA-registered
-     interface types.
-
-     This YANG module is maintained by IANA and reflects the
-     'ifType definitions' registry.
-
-     The latest revision of this YANG module can be obtained from
-     the IANA web site.
-
-     Requests for new values should be made to IANA via
-     email (iana&iana.org).
-
-     Copyright (c) 2014 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (http://trustee.ietf.org/license-info).
-
-     The initial version of this YANG module is part of RFC 7224;
-     see the RFC itself for full legal notices.";
-  reference
-    "IANA 'ifType definitions' registry.
-     <http://www.iana.org/assignments/smi-numbers>";
-
-  revision 2017-01-19 {
-    description
-      "Registered ifType 289.";
-  }
-
-  revision 2016-11-23 {
-    description
-      "Registered ifTypes 283-288.";
-  }
-
-  revision 2016-06-09 {
-    description
-      "Registered ifType 282.";
-  }
-  revision 2016-05-03 {
-    description
-      "Registered ifType 281.";
-  }
-  revision 2015-06-12 {
-    description
-      "Corrected formatting issue.";
-  }  
-  revision 2014-09-24 {
-    description
-      "Registered ifType 280.";
-  }
-  revision 2014-09-19 {
-    description
-      "Registered ifType 279.";
-  }
-  revision 2014-07-03 {
-    description
-      "Registered ifTypes 277-278.";
-  }
-  revision 2014-05-19 {
-    description
-      "Updated the contact address.";
-  }
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7224: IANA Interface Type YANG Module";
-  }
-
-  identity iana-interface-type {
-    base if:interface-type;
-    description
-      "This identity is used as a base for all interface types
-       defined in the 'ifType definitions' registry.";
-  }
-
-  identity other {
-    base iana-interface-type;
-  }
-  identity regular1822 {
-    base iana-interface-type;
-  }
-  identity hdh1822 {
-    base iana-interface-type;
-  }
-  identity ddnX25 {
-    base iana-interface-type;
-  }
-  identity rfc877x25 {
-    base iana-interface-type;
-    reference
-      "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
-  }
-  identity ethernetCsmacd {
-    base iana-interface-type;
-    description
-      "For all Ethernet-like interfaces, regardless of speed,
-       as per RFC 3635.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88023Csmacd {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity iso88024TokenBus {
-    base iana-interface-type;
-  }
-  identity iso88025TokenRing {
-    base iana-interface-type;
-  }
-  identity iso88026Man {
-    base iana-interface-type;
-  }
-  identity starLan {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Deprecated via RFC 3635.
-       Use ethernetCsmacd(6) instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity proteon10Mbit {
-    base iana-interface-type;
-  }
-  identity proteon80Mbit {
-    base iana-interface-type;
-  }
-  identity hyperchannel {
-    base iana-interface-type;
-  }
-  identity fddi {
-    base iana-interface-type;
-    reference
-      "RFC 1512 - FDDI Management Information Base";
-  }
-  identity lapb {
-    base iana-interface-type;
-    reference
-      "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
-  }
-  identity sdlc {
-    base iana-interface-type;
-  }
-  identity ds1 {
-    base iana-interface-type;
-    description
-      "DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity e1 {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-    reference
-      "RFC 4805 - Definitions of Managed Objects for the
-                  DS1, J1, E1, DS2, and E2 Interface Types";
-  }
-  identity basicISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity primaryISDN {
-    base iana-interface-type;
-    description
-      "No longer used.  See also RFC 2127.";
-  }
-  identity propPointToPointSerial {
-    base iana-interface-type;
-    description
-      "Proprietary serial.";
-  }
-  identity ppp {
-    base iana-interface-type;
-  }
-  identity softwareLoopback {
-    base iana-interface-type;
-  }
-  identity eon {
-    base iana-interface-type;
-    description
-      "CLNP over IP.";
-  }
-  identity ethernet3Mbit {
-    base iana-interface-type;
-  }
-  identity nsip {
-    base iana-interface-type;
-    description
-      "XNS over IP.";
-  }
-  identity slip {
-    base iana-interface-type;
-    description
-      "Generic SLIP.";
-  }
-  identity ultra {
-    base iana-interface-type;
-    description
-      "Ultra Technologies.";
-  }
-  identity ds3 {
-    base iana-interface-type;
-    description
-      "DS3-MIB.";
-    reference
-      "RFC 3896 - Definitions of Managed Objects for the
-                  DS3/E3 Interface Type";
-  }
-  identity sip {
-    base iana-interface-type;
-    description
-      "SMDS, coffee.";
-    reference
-      "RFC 1694 - Definitions of Managed Objects for SMDS
-                  Interfaces using SMIv2";
-  }
-  identity frameRelay {
-    base iana-interface-type;
-    description
-      "DTE only.";
-    reference
-      "RFC 2115 - Management Information Base for Frame Relay
-                  DTEs Using SMIv2";
-  }
-  identity rs232 {
-    base iana-interface-type;
-    reference
-      "RFC 1659 - Definitions of Managed Objects for RS-232-like
-                  Hardware Devices using SMIv2";
-  }
-  identity para {
-    base iana-interface-type;
-    description
-      "Parallel-port.";
-    reference
-      "RFC 1660 - Definitions of Managed Objects for
-                  Parallel-printer-like Hardware Devices using
-                  SMIv2";
-  }
-  identity arcnet {
-    base iana-interface-type;
-    description
-      "ARCnet.";
-  }
-  identity arcnetPlus {
-    base iana-interface-type;
-    description
-      "ARCnet Plus.";
-  }
-  identity atm {
-    base iana-interface-type;
-    description
-      "ATM cells.";
-  }
-  identity miox25 {
-    base iana-interface-type;
-    reference
-      "RFC 1461 - SNMP MIB extension for Multiprotocol
-                  Interconnect over X.25";
-  }
-  identity sonet {
-    base iana-interface-type;
-    description
-      "SONET or SDH.";
-  }
-  identity x25ple {
-    base iana-interface-type;
-    reference
-      "RFC 2127 - ISDN Management Information Base using SMIv2";
-  }
-  identity iso88022llc {
-    base iana-interface-type;
-  }
-  identity localTalk {
-    base iana-interface-type;
-  }
-  identity smdsDxi {
-    base iana-interface-type;
-  }
-  identity frameRelayService {
-    base iana-interface-type;
-    description
-      "FRNETSERV-MIB.";
-    reference
-      "RFC 2954 - Definitions of Managed Objects for Frame
-                  Relay Service";
-  }
-  identity v35 {
-    base iana-interface-type;
-  }
-  identity hssi {
-    base iana-interface-type;
-  }
-  identity hippi {
-    base iana-interface-type;
-  }
-  identity modem {
-    base iana-interface-type;
-    description
-      "Generic modem.";
-  }
-  identity aal5 {
-    base iana-interface-type;
-    description
-      "AAL5 over ATM.";
-  }
-  identity sonetPath {
-    base iana-interface-type;
-  }
-  identity sonetVT {
-    base iana-interface-type;
-  }
-  identity smdsIcip {
-    base iana-interface-type;
-    description
-      "SMDS InterCarrier Interface.";
-  }
-  identity propVirtual {
-    base iana-interface-type;
-    description
-      "Proprietary virtual/internal.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity propMultiplexor {
-    base iana-interface-type;
-    description
-      "Proprietary multiplexing.";
-    reference
-      "RFC 2863 - The Interfaces Group MIB";
-  }
-  identity ieee80212 {
-    base iana-interface-type;
-    description
-      "100BaseVG.";
-  }
-  identity fibreChannel {
-    base iana-interface-type;
-    description
-      "Fibre Channel.";
-  }
-  identity hippiInterface {
-    base iana-interface-type;
-    description
-      "HIPPI interfaces.";
-  }
-  identity frameRelayInterconnect {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; use either
-       frameRelay(32) or frameRelayService(44).";
-  }
-  identity aflane8023 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.3.";
-  }
-  identity aflane8025 {
-    base iana-interface-type;
-    description
-      "ATM Emulated LAN for 802.5.";
-  }
-  identity cctEmul {
-    base iana-interface-type;
-    description
-      "ATM Emulated circuit.";
-  }
-  identity fastEther {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity isdn {
-    base iana-interface-type;
-    description
-      "ISDN and X.25.";
-    reference
-      "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
-                  in the Packet Mode";
-  }
-  identity v11 {
-    base iana-interface-type;
-    description
-      "CCITT V.11/X.21.";
-  }
-  identity v36 {
-    base iana-interface-type;
-    description
-      "CCITT V.36.";
-  }
-  identity g703at64k {
-    base iana-interface-type;
-    description
-      "CCITT G703 at 64Kbps.";
-  }
-  identity g703at2mb {
-    base iana-interface-type;
-    status obsolete;
-    description
-      "Obsolete; see DS1-MIB.";
-  }
-  identity qllc {
-    base iana-interface-type;
-    description
-      "SNA QLLC.";
-  }
-  identity fastEtherFX {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity channel {
-    base iana-interface-type;
-    description
-      "Channel.";
-  }
-  identity ieee80211 {
-    base iana-interface-type;
-    description
-      "Radio spread spectrum.";
-  }
-  identity ibm370parChan {
-    base iana-interface-type;
-    description
-      "IBM System 360/370 OEMI Channel.";
-  }
-  identity escon {
-    base iana-interface-type;
-    description
-      "IBM Enterprise Systems Connection.";
-  }
-  identity dlsw {
-    base iana-interface-type;
-    description
-      "Data Link Switching.";
-  }
-  identity isdns {
-    base iana-interface-type;
-    description
-      "ISDN S/T interface.";
-  }
-  identity isdnu {
-    base iana-interface-type;
-    description
-      "ISDN U interface.";
-  }
-  identity lapd {
-    base iana-interface-type;
-    description
-      "Link Access Protocol D.";
-  }
-  identity ipSwitch {
-    base iana-interface-type;
-    description
-      "IP Switching Objects.";
-  }
-  identity rsrb {
-    base iana-interface-type;
-    description
-      "Remote Source Route Bridging.";
-  }
-  identity atmLogical {
-    base iana-interface-type;
-    description
-      "ATM Logical Port.";
-    reference
-      "RFC 3606 - Definitions of Supplemental Managed Objects
-                  for ATM Interface";
-  }
-  identity ds0 {
-    base iana-interface-type;
-    description
-      "Digital Signal Level 0.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity ds0Bundle {
-    base iana-interface-type;
-    description
-      "Group of ds0s on the same ds1.";
-    reference
-      "RFC 2494 - Definitions of Managed Objects for the DS0
-                  and DS0 Bundle Interface Type";
-  }
-  identity bsc {
-    base iana-interface-type;
-    description
-      "Bisynchronous Protocol.";
-  }
-  identity async {
-    base iana-interface-type;
-    description
-      "Asynchronous Protocol.";
-  }
-  identity cnr {
-    base iana-interface-type;
-    description
-      "Combat Net Radio.";
-  }
-  identity iso88025Dtr {
-    base iana-interface-type;
-    description
-      "ISO 802.5r DTR.";
-  }
-  identity eplrs {
-    base iana-interface-type;
-    description
-      "Ext Pos Loc Report Sys.";
-  }
-  identity arap {
-    base iana-interface-type;
-    description
-      "Appletalk Remote Access Protocol.";
-  }
-  identity propCnls {
-    base iana-interface-type;
-    description
-      "Proprietary Connectionless Protocol.";
-  }
-  identity hostPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.29 PAD Protocol.";
-  }
-  identity termPad {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X.3 PAD Facility.";
-  }
-  identity frameRelayMPI {
-    base iana-interface-type;
-    description
-      "Multiproto Interconnect over FR.";
-  }
-  identity x213 {
-    base iana-interface-type;
-    description
-      "CCITT-ITU X213.";
-  }
-  identity adsl {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop.";
-  }
-  identity radsl {
-    base iana-interface-type;
-    description
-      "Rate-Adapt. Digital Subscriber Loop.";
-  }
-  identity sdsl {
-    base iana-interface-type;
-    description
-      "Symmetric Digital Subscriber Loop.";
-  }
-  identity vdsl {
-    base iana-interface-type;
-    description
-      "Very H-Speed Digital Subscrib. Loop.";
-  }
-  identity iso88025CRFPInt {
-    base iana-interface-type;
-    description
-      "ISO 802.5 CRFP.";
-  }
-  identity myrinet {
-    base iana-interface-type;
-    description
-      "Myricom Myrinet.";
-  }
-  identity voiceEM {
-    base iana-interface-type;
-    description
-      "Voice recEive and transMit.";
-  }
-  identity voiceFXO {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Office.";
-  }
-  identity voiceFXS {
-    base iana-interface-type;
-    description
-      "Voice Foreign Exchange Station.";
-  }
-  identity voiceEncap {
-    base iana-interface-type;
-    description
-      "Voice encapsulation.";
-  }
-  identity voiceOverIp {
-    base iana-interface-type;
-    description
-      "Voice over IP encapsulation.";
-  }
-  identity atmDxi {
-    base iana-interface-type;
-    description
-      "ATM DXI.";
-  }
-  identity atmFuni {
-    base iana-interface-type;
-    description
-      "ATM FUNI.";
-  }
-  identity atmIma {
-    base iana-interface-type;
-    description
-      "ATM IMA.";
-  }
-  identity pppMultilinkBundle {
-    base iana-interface-type;
-    description
-      "PPP Multilink Bundle.";
-  }
-  identity ipOverCdlc {
-    base iana-interface-type;
-    description
-      "IBM ipOverCdlc.";
-  }
-  identity ipOverClaw {
-    base iana-interface-type;
-    description
-      "IBM Common Link Access to Workstn.";
-  }
-  identity stackToStack {
-    base iana-interface-type;
-    description
-      "IBM stackToStack.";
-  }
-  identity virtualIpAddress {
-    base iana-interface-type;
-    description
-      "IBM VIPA.";
-  }
-  identity mpc {
-    base iana-interface-type;
-    description
-      "IBM multi-protocol channel support.";
-  }
-  identity ipOverAtm {
-    base iana-interface-type;
-    description
-      "IBM ipOverAtm.";
-    reference
-      "RFC 2320 - Definitions of Managed Objects for Classical IP
-                  and ARP Over ATM Using SMIv2 (IPOA-MIB)";
-  }
-  identity iso88025Fiber {
-    base iana-interface-type;
-    description
-      "ISO 802.5j Fiber Token Ring.";
-  }
-  identity tdlc {
-    base iana-interface-type;
-    description
-      "IBM twinaxial data link control.";
-  }
-  identity gigabitEthernet {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Obsoleted via RFC 3635.
-       ethernetCsmacd(6) should be used instead.";
-    reference
-      "RFC 3635 - Definitions of Managed Objects for the
-                  Ethernet-like Interface Types";
-  }
-  identity hdlc {
-    base iana-interface-type;
-    description
-      "HDLC.";
-  }
-  identity lapf {
-    base iana-interface-type;
-    description
-      "LAP F.";
-  }
-  identity v37 {
-    base iana-interface-type;
-    description
-      "V.37.";
-  }
-  identity x25mlp {
-    base iana-interface-type;
-    description
-      "Multi-Link Protocol.";
-  }
-  identity x25huntGroup {
-    base iana-interface-type;
-    description
-      "X25 Hunt Group.";
-  }
-  identity transpHdlc {
-    base iana-interface-type;
-    description
-      "Transp HDLC.";
-  }
-  identity interleave {
-    base iana-interface-type;
-    description
-      "Interleave channel.";
-  }
-  identity fast {
-    base iana-interface-type;
-    description
-      "Fast channel.";
-  }
-  identity ip {
-    base iana-interface-type;
-    description
-      "IP (for APPN HPR in IP networks).";
-  }
-  identity docsCableMaclayer {
-    base iana-interface-type;
-    description
-      "CATV Mac Layer.";
-  }
-  identity docsCableDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream interface.";
-  }
-  identity docsCableUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream interface.";
-  }
-  identity a12MppSwitch {
-    base iana-interface-type;
-    description
-      "Avalon Parallel Processor.";
-  }
-  identity tunnel {
-    base iana-interface-type;
-    description
-      "Encapsulation interface.";
-  }
-  identity coffee {
-    base iana-interface-type;
-    description
-      "Coffee pot.";
-    reference
-      "RFC 2325 - Coffee MIB";
-  }
-  identity ces {
-    base iana-interface-type;
-    description
-      "Circuit Emulation Service.";
-  }
-  identity atmSubInterface {
-    base iana-interface-type;
-    description
-      "ATM Sub Interface.";
-  }
-  identity l2vlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using 802.1Q.";
-  }
-  identity l3ipvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IP.";
-  }
-  identity l3ipxvlan {
-    base iana-interface-type;
-    description
-      "Layer 3 Virtual LAN using IPX.";
-  }
-  identity digitalPowerline {
-    base iana-interface-type;
-    description
-      "IP over Power Lines.";
-  }
-  identity mediaMailOverIp {
-    base iana-interface-type;
-    description
-      "Multimedia Mail over IP.";
-  }
-  identity dtm {
-    base iana-interface-type;
-    description
-      "Dynamic synchronous Transfer Mode.";
-  }
-  identity dcn {
-    base iana-interface-type;
-    description
-      "Data Communications Network.";
-  }
-  identity ipForward {
-    base iana-interface-type;
-    description
-      "IP Forwarding Interface.";
-  }
-  identity msdsl {
-    base iana-interface-type;
-    description
-      "Multi-rate Symmetric DSL.";
-  }
-  identity ieee1394 {
-    base iana-interface-type;
-
-    description
-      "IEEE1394 High Performance Serial Bus.";
-  }
-  identity if-gsn {
-    base iana-interface-type;
-    description
-      "HIPPI-6400.";
-  }
-  identity dvbRccMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCC MAC Layer.";
-  }
-  identity dvbRccDownstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Downstream Channel.";
-  }
-  identity dvbRccUpstream {
-    base iana-interface-type;
-    description
-      "DVB-RCC Upstream Channel.";
-  }
-  identity atmVirtual {
-    base iana-interface-type;
-    description
-      "ATM Virtual Interface.";
-  }
-  identity mplsTunnel {
-    base iana-interface-type;
-    description
-      "MPLS Tunnel Virtual Interface.";
-  }
-  identity srp {
-    base iana-interface-type;
-    description
-      "Spatial Reuse Protocol.";
-  }
-  identity voiceOverAtm {
-    base iana-interface-type;
-    description
-      "Voice over ATM.";
-  }
-  identity voiceOverFrameRelay {
-    base iana-interface-type;
-    description
-      "Voice Over Frame Relay.";
-  }
-  identity idsl {
-    base iana-interface-type;
-    description
-      "Digital Subscriber Loop over ISDN.";
-  }
-  identity compositeLink {
-    base iana-interface-type;
-    description
-      "Avici Composite Link Interface.";
-  }
-  identity ss7SigLink {
-    base iana-interface-type;
-    description
-      "SS7 Signaling Link.";
-  }
-  identity propWirelessP2P {
-    base iana-interface-type;
-    description
-      "Prop. P2P wireless interface.";
-  }
-  identity frForward {
-    base iana-interface-type;
-    description
-      "Frame Forward Interface.";
-  }
-  identity rfc1483 {
-    base iana-interface-type;
-    description
-      "Multiprotocol over ATM AAL5.";
-    reference
-      "RFC 1483 - Multiprotocol Encapsulation over ATM
-                  Adaptation Layer 5";
-  }
-  identity usb {
-    base iana-interface-type;
-    description
-      "USB Interface.";
-  }
-  identity ieee8023adLag {
-    base iana-interface-type;
-    description
-      "IEEE 802.3ad Link Aggregate.";
-  }
-  identity bgppolicyaccounting {
-    base iana-interface-type;
-    description
-      "BGP Policy Accounting.";
-  }
-  identity frf16MfrBundle {
-    base iana-interface-type;
-    description
-      "FRF.16 Multilink Frame Relay.";
-  }
-  identity h323Gatekeeper {
-    base iana-interface-type;
-    description
-      "H323 Gatekeeper.";
-  }
-  identity h323Proxy {
-    base iana-interface-type;
-    description
-      "H323 Voice and Video Proxy.";
-  }
-  identity mpls {
-    base iana-interface-type;
-    description
-      "MPLS.";
-  }
-  identity mfSigLink {
-    base iana-interface-type;
-    description
-      "Multi-frequency signaling link.";
-  }
-  identity hdsl2 {
-    base iana-interface-type;
-    description
-      "High Bit-Rate DSL - 2nd generation.";
-  }
-  identity shdsl {
-    base iana-interface-type;
-    description
-      "Multirate HDSL2.";
-  }
-  identity ds1FDL {
-    base iana-interface-type;
-    description
-      "Facility Data Link (4Kbps) on a DS1.";
-  }
-  identity pos {
-    base iana-interface-type;
-    description
-      "Packet over SONET/SDH Interface.";
-  }
-  identity dvbAsiIn {
-    base iana-interface-type;
-    description
-      "DVB-ASI Input.";
-  }
-  identity dvbAsiOut {
-    base iana-interface-type;
-    description
-      "DVB-ASI Output.";
-  }
-  identity plc {
-    base iana-interface-type;
-    description
-      "Power Line Communications.";
-  }
-  identity nfas {
-    base iana-interface-type;
-    description
-      "Non-Facility Associated Signaling.";
-  }
-  identity tr008 {
-    base iana-interface-type;
-    description
-      "TR008.";
-  }
-  identity gr303RDT {
-    base iana-interface-type;
-    description
-      "Remote Digital Terminal.";
-  }
-  identity gr303IDT {
-    base iana-interface-type;
-    description
-      "Integrated Digital Terminal.";
-  }
-  identity isup {
-    base iana-interface-type;
-    description
-      "ISUP.";
-  }
-  identity propDocsWirelessMaclayer {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Maclayer.";
-  }
-  identity propDocsWirelessDownstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Downstream.";
-  }
-  identity propDocsWirelessUpstream {
-    base iana-interface-type;
-    description
-      "Cisco proprietary Upstream.";
-  }
-  identity hiperlan2 {
-    base iana-interface-type;
-    description
-      "HIPERLAN Type 2 Radio Interface.";
-  }
-  identity propBWAp2Mp {
-    base iana-interface-type;
-    description
-      "PropBroadbandWirelessAccesspt2Multipt (use of this value
-       for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
-       is deprecated, and ieee80216WMAN(237) should be used
-       instead).";
-  }
-  identity sonetOverheadChannel {
-    base iana-interface-type;
-    description
-      "SONET Overhead Channel.";
-  }
-  identity digitalWrapperOverheadChannel {
-    base iana-interface-type;
-    description
-      "Digital Wrapper.";
-  }
-  identity aal2 {
-    base iana-interface-type;
-    description
-      "ATM adaptation layer 2.";
-  }
-  identity radioMAC {
-    base iana-interface-type;
-    description
-      "MAC layer over radio links.";
-  }
-  identity atmRadio {
-    base iana-interface-type;
-    description
-      "ATM over radio links.";
-  }
-  identity imt {
-    base iana-interface-type;
-    description
-      "Inter-Machine Trunks.";
-  }
-  identity mvl {
-    base iana-interface-type;
-    description
-      "Multiple Virtual Lines DSL.";
-  }
-  identity reachDSL {
-    base iana-interface-type;
-    description
-      "Long Reach DSL.";
-  }
-  identity frDlciEndPt {
-    base iana-interface-type;
-    description
-      "Frame Relay DLCI End Point.";
-  }
-  identity atmVciEndPt {
-    base iana-interface-type;
-    description
-      "ATM VCI End Point.";
-  }
-  identity opticalChannel {
-    base iana-interface-type;
-    description
-      "Optical Channel.";
-  }
-  identity opticalTransport {
-    base iana-interface-type;
-    description
-      "Optical Transport.";
-  }
-  identity propAtm {
-    base iana-interface-type;
-    description
-      "Proprietary ATM.";
-  }
-  identity voiceOverCable {
-    base iana-interface-type;
-    description
-      "Voice Over Cable Interface.";
-  }
-  identity infiniband {
-    base iana-interface-type;
-    description
-      "Infiniband.";
-  }
-  identity teLink {
-    base iana-interface-type;
-    description
-      "TE Link.";
-  }
-  identity q2931 {
-    base iana-interface-type;
-    description
-      "Q.2931.";
-  }
-  identity virtualTg {
-    base iana-interface-type;
-    description
-      "Virtual Trunk Group.";
-  }
-  identity sipTg {
-    base iana-interface-type;
-    description
-      "SIP Trunk Group.";
-  }
-  identity sipSig {
-    base iana-interface-type;
-    description
-      "SIP Signaling.";
-  }
-  identity docsCableUpstreamChannel {
-    base iana-interface-type;
-    description
-      "CATV Upstream Channel.";
-  }
-  identity econet {
-    base iana-interface-type;
-    description
-      "Acorn Econet.";
-  }
-  identity pon155 {
-    base iana-interface-type;
-    description
-      "FSAN 155Mb Symetrical PON interface.";
-  }
-  identity pon622 {
-    base iana-interface-type;
-    description
-      "FSAN 622Mb Symetrical PON interface.";
-  }
-  identity bridge {
-    base iana-interface-type;
-    description
-      "Transparent bridge interface.";
-  }
-  identity linegroup {
-    base iana-interface-type;
-    description
-      "Interface common to multiple lines.";
-  }
-  identity voiceEMFGD {
-    base iana-interface-type;
-    description
-      "Voice E&M Feature Group D.";
-  }
-  identity voiceFGDEANA {
-    base iana-interface-type;
-    description
-      "Voice FGD Exchange Access North American.";
-  }
-  identity voiceDID {
-    base iana-interface-type;
-    description
-      "Voice Direct Inward Dialing.";
-  }
-  identity mpegTransport {
-    base iana-interface-type;
-    description
-      "MPEG transport interface.";
-  }
-  identity sixToFour {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "6to4 interface (DEPRECATED).";
-    reference
-      "RFC 4087 - IP Tunnel MIB";
-  }
-  identity gtp {
-    base iana-interface-type;
-    description
-      "GTP (GPRS Tunneling Protocol).";
-  }
-  identity pdnEtherLoop1 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 1.";
-  }
-  identity pdnEtherLoop2 {
-    base iana-interface-type;
-    description
-      "Paradyne EtherLoop 2.";
-  }
-  identity opticalChannelGroup {
-    base iana-interface-type;
-    description
-      "Optical Channel Group.";
-  }
-  identity homepna {
-    base iana-interface-type;
-    description
-      "HomePNA ITU-T G.989.";
-  }
-  identity gfp {
-    base iana-interface-type;
-    description
-      "Generic Framing Procedure (GFP).";
-  }
-  identity ciscoISLvlan {
-    base iana-interface-type;
-    description
-      "Layer 2 Virtual LAN using Cisco ISL.";
-  }
-  identity actelisMetaLOOP {
-    base iana-interface-type;
-    description
-      "Acteleis proprietary MetaLOOP High Speed Link.";
-  }
-  identity fcipLink {
-    base iana-interface-type;
-    description
-      "FCIP Link.";
-  }
-  identity rpr {
-    base iana-interface-type;
-    description
-      "Resilient Packet Ring Interface Type.";
-  }
-  identity qam {
-    base iana-interface-type;
-    description
-      "RF Qam Interface.";
-  }
-  identity lmp {
-    base iana-interface-type;
-    description
-      "Link Management Protocol.";
-    reference
-      "RFC 4327 - Link Management Protocol (LMP) Management
-                  Information Base (MIB)";
-  }
-  identity cblVectaStar {
-    base iana-interface-type;
-    description
-      "Cambridge Broadband Networks Limited VectaStar.";
-  }
-  identity docsCableMCmtsDownstream {
-    base iana-interface-type;
-    description
-      "CATV Modular CMTS Downstream Interface.";
-  }
-  identity adsl2 {
-    base iana-interface-type;
-    status deprecated;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2
-       (DEPRECATED/OBSOLETED - please use adsl2plus(238)
-       instead).";
-    reference
-      "RFC 4706 - Definitions of Managed Objects for Asymmetric
-                  Digital Subscriber Line 2 (ADSL2)";
-  }
-  identity macSecControlledIF {
-    base iana-interface-type;
-    description
-      "MACSecControlled.";
-  }
-  identity macSecUncontrolledIF {
-    base iana-interface-type;
-    description
-      "MACSecUncontrolled.";
-  }
-  identity aviciOpticalEther {
-    base iana-interface-type;
-    description
-      "Avici Optical Ethernet Aggregate.";
-  }
-  identity atmbond {
-    base iana-interface-type;
-    description
-      "atmbond.";
-  }
-  identity voiceFGDOS {
-    base iana-interface-type;
-    description
-      "Voice FGD Operator Services.";
-  }
-  identity mocaVersion1 {
-    base iana-interface-type;
-    description
-      "MultiMedia over Coax Alliance (MoCA) Interface
-       as documented in information provided privately to IANA.";
-  }
-  identity ieee80216WMAN {
-    base iana-interface-type;
-    description
-      "IEEE 802.16 WMAN interface.";
-  }
-  identity adsl2plus {
-    base iana-interface-type;
-    description
-      "Asymmetric Digital Subscriber Loop Version 2 -
-       Version 2 Plus and all variants.";
-  }
-  identity dvbRcsMacLayer {
-    base iana-interface-type;
-    description
-      "DVB-RCS MAC Layer.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbTdm {
-    base iana-interface-type;
-    description
-      "DVB Satellite TDM.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity dvbRcsTdma {
-    base iana-interface-type;
-    description
-      "DVB-RCS TDMA.";
-    reference
-      "RFC 5728 - The SatLabs Group DVB-RCS MIB";
-  }
-  identity x86Laps {
-    base iana-interface-type;
-    description
-      "LAPS based on ITU-T X.86/Y.1323.";
-  }
-  identity wwanPP {
-    base iana-interface-type;
-    description
-      "3GPP WWAN.";
-  }
-  identity wwanPP2 {
-    base iana-interface-type;
-    description
-      "3GPP2 WWAN.";
-  }
-  identity voiceEBS {
-    base iana-interface-type;
-    description
-      "Voice P-phone EBS physical interface.";
-  }
-  identity ifPwType {
-    base iana-interface-type;
-    description
-      "Pseudowire interface type.";
-    reference
-      "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
-  }
-  identity ilan {
-    base iana-interface-type;
-    description
-      "Internal LAN on a bridge per IEEE 802.1ap.";
-  }
-  identity pip {
-    base iana-interface-type;
-    description
-      "Provider Instance Port on a bridge per IEEE 802.1ah PBB.";
-  }
-  identity aluELP {
-    base iana-interface-type;
-    description
-      "Alcatel-Lucent Ethernet Link Protection.";
-  }
-  identity gpon {
-    base iana-interface-type;
-    description
-      "Gigabit-capable passive optical networks (G-PON) as per
-       ITU-T G.948.";
-  }
-  identity vdsl2 {
-    base iana-interface-type;
-    description
-      "Very high speed digital subscriber line Version 2
-       (as per ITU-T Recommendation G.993.2).";
-    reference
-      "RFC 5650 - Definitions of Managed Objects for Very High
-                  Speed Digital Subscriber Line 2 (VDSL2)";
-  }
-  identity capwapDot11Profile {
-    base iana-interface-type;
-    description
-      "WLAN Profile Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapDot11Bss {
-    base iana-interface-type;
-    description
-      "WLAN BSS Interface.";
-    reference
-      "RFC 5834 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Binding MIB for
-                  IEEE 802.11";
-  }
-  identity capwapWtpVirtualRadio {
-    base iana-interface-type;
-    description
-      "WTP Virtual Radio Interface.";
-    reference
-      "RFC 5833 - Control and Provisioning of Wireless Access
-                  Points (CAPWAP) Protocol Base MIB";
-  }
-  identity bits {
-    base iana-interface-type;
-    description
-      "bitsport.";
-  }
-  identity docsCableUpstreamRfPort {
-    base iana-interface-type;
-    description
-      "DOCSIS CATV Upstream RF Port.";
-  }
-  identity cableDownstreamRfPort {
-    base iana-interface-type;
-    description
-      "CATV downstream RF Port.";
-  }
-  identity vmwareVirtualNic {
-    base iana-interface-type;
-    description
-      "VMware Virtual Network Interface.";
-  }
-  identity ieee802154 {
-    base iana-interface-type;
-    description
-      "IEEE 802.15.4 WPAN interface.";
-    reference
-      "IEEE 802.15.4-2006";
-  }
-  identity otnOdu {
-    base iana-interface-type;
-    description
-      "OTN Optical Data Unit.";
-  }
-  identity otnOtu {
-    base iana-interface-type;
-    description
-      "OTN Optical channel Transport Unit.";
-  }
-  identity ifVfiType {
-    base iana-interface-type;
-    description
-      "VPLS Forwarding Instance Interface Type.";
-  }
-  identity g9981 {
-    base iana-interface-type;
-    description
-      "G.998.1 bonded interface.";
-  }
-  identity g9982 {
-    base iana-interface-type;
-    description
-      "G.998.2 bonded interface.";
-  }
-  identity g9983 {
-    base iana-interface-type;
-    description
-      "G.998.3 bonded interface.";
-  }
-
-  identity aluEpon {
-    base iana-interface-type;
-    description
-      "Ethernet Passive Optical Networks (E-PON).";
-  }
-  identity aluEponOnu {
-    base iana-interface-type;
-    description
-      "EPON Optical Network Unit.";
-  }
-  identity aluEponPhysicalUni {
-    base iana-interface-type;
-    description
-      "EPON physical User to Network interface.";
-  }
-  identity aluEponLogicalLink {
-    base iana-interface-type;
-    description
-      "The emulation of a point-to-point link over the EPON
-       layer.";
-  }
-  identity aluGponOnu {
-    base iana-interface-type;
-    description
-      "GPON Optical Network Unit.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity aluGponPhysicalUni {
-    base iana-interface-type;
-    description
-      "GPON physical User to Network interface.";
-    reference
-      "ITU-T G.984.2";
-  }
-  identity vmwareNicTeam {
-    base iana-interface-type;
-    description
-      "VMware NIC Team.";
-  }
-  identity docsOfdmDownstream {
-    base iana-interface-type;
-    description
-      "CATV Downstream OFDM interface.";
-  }
-  identity docsOfdmaUpstream {
-    base iana-interface-type;
-    description
-      "CATV Upstream OFDMA interface.";
-  }
-  identity gfast {
-    base iana-interface-type;
-    description
-      "G.fast port.";
-    reference
-      "ITU-T G.9701";
-  }
-  identity sdci {
-    base iana-interface-type;
-    description
-      "SDCI (IO-Link).";
-    reference
-      "IEC 61131-9 Edition 1.0 2013-09";
-  }
-  identity xboxWireless {
-    base iana-interface-type;
-    description
-      "Xbox wireless.";
-  }
-  identity fastdsl {
-    base iana-interface-type;
-    description
-      "FastDSL.";
-    reference
-      "BBF TR-355";
-  }
-  identity docsCableScte55d1FwdOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Forward Channel.";
-  }
-  identity docsCableScte55d1RetOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-1 OOB Return Channel.";
-  }
-  identity docsCableScte55d2DsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Downstream Channel.";
-  }
-  identity docsCableScte55d2UsOob {
-    base iana-interface-type;
-    description
-      "Cable SCTE 55-2 OOB Upstream Channel.";
-  }
-  identity docsCableNdf {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Forward.";
-  }
-  identity docsCableNdr {
-    base iana-interface-type;
-    description
-      "Cable Narrowband Digital Return.";
-  }
-  identity ptm {
-    base iana-interface-type;
-    description
-      "Packet Transfer Mode.";
-  }
-}
diff --git a/api/models/ietf-inet-types.yang b/api/models/ietf-inet-types.yang
deleted file mode 100644
index eacefb6363de1beb543567a0fa705571b7dc57a2..0000000000000000000000000000000000000000
--- a/api/models/ietf-inet-types.yang
+++ /dev/null
@@ -1,458 +0,0 @@
-module ietf-inet-types {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";
-  prefix "inet";
-
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
-    WG List:  <mailto:netmod@ietf.org>
-
-    WG Chair: David Kessens
-              <mailto:david.kessens@nsn.com>
-
-    WG Chair: Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>
-
-    Editor:   Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-  description
-   "This module contains a collection of generally useful derived
-    YANG data types for Internet addresses and related things.
-
-    Copyright (c) 2013 IETF Trust and the persons identified as
-    authors of the code.  All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD License
-    set forth in Section 4.c of the IETF Trust's Legal Provisions
-    Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC 6991; see
-    the RFC itself for full legal notices.";
-
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
-      - ip-address-no-zone
-      - ipv4-address-no-zone
-      - ipv6-address-no-zone";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
-
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of types related to protocol fields ***/
-
-  typedef ip-version {
-    type enumeration {
-      enum unknown {
-        value "0";
-        description
-         "An unknown or unspecified version of the Internet
-          protocol.";
-      }
-      enum ipv4 {
-        value "1";
-        description
-         "The IPv4 protocol as defined in RFC 791.";
-      }
-      enum ipv6 {
-        value "2";
-        description
-         "The IPv6 protocol as defined in RFC 2460.";
-      }
-    }
-    description
-     "This value represents the version of the IP protocol.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetVersion textual convention of the SMIv2.";
-    reference
-     "RFC  791: Internet Protocol
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  typedef dscp {
-    type uint8 {
-      range "0..63";
-    }
-    description
-     "The dscp type represents a Differentiated Services Code Point
-      that may be used for marking packets in a traffic stream.
-      In the value set and its semantics, this type is equivalent
-      to the Dscp textual convention of the SMIv2.";
-    reference
-     "RFC 3289: Management Information Base for the Differentiated
-                Services Architecture
-      RFC 2474: Definition of the Differentiated Services Field
-                (DS Field) in the IPv4 and IPv6 Headers
-      RFC 2780: IANA Allocation Guidelines For Values In
-                the Internet Protocol and Related Headers";
-  }
-
-  typedef ipv6-flow-label {
-    type uint32 {
-      range "0..1048575";
-    }
-    description
-     "The ipv6-flow-label type represents the flow identifier or Flow
-      Label in an IPv6 packet header that may be used to
-      discriminate traffic flows.
-
-      In the value set and its semantics, this type is equivalent
-      to the IPv6FlowLabel textual convention of the SMIv2.";
-    reference
-     "RFC 3595: Textual Conventions for IPv6 Flow Label
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";
-  }
-
-  typedef port-number {
-    type uint16 {
-      range "0..65535";
-    }
-    description
-     "The port-number type represents a 16-bit port number of an
-      Internet transport-layer protocol such as UDP, TCP, DCCP, or
-      SCTP.  Port numbers are assigned by IANA.  A current list of
-      all assignments is available from <http://www.iana.org/>.
-
-      Note that the port number value zero is reserved by IANA.  In
-      situations where the value zero does not make sense, it can
-      be excluded by subtyping the port-number type.
-      In the value set and its semantics, this type is equivalent
-      to the InetPortNumber textual convention of the SMIv2.";
-    reference
-     "RFC  768: User Datagram Protocol
-      RFC  793: Transmission Control Protocol
-      RFC 4960: Stream Control Transmission Protocol
-      RFC 4340: Datagram Congestion Control Protocol (DCCP)
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  /*** collection of types related to autonomous systems ***/
-
-  typedef as-number {
-    type uint32;
-    description
-     "The as-number type represents autonomous system numbers
-      which identify an Autonomous System (AS).  An AS is a set
-      of routers under a single technical administration, using
-      an interior gateway protocol and common metrics to route
-      packets within the AS, and using an exterior gateway
-      protocol to route packets to other ASes.  IANA maintains
-      the AS number space and has delegated large parts to the
-      regional registries.
-
-      Autonomous system numbers were originally limited to 16
-      bits.  BGP extensions have enlarged the autonomous system
-      number space to 32 bits.  This type therefore uses an uint32
-      base type without a range restriction in order to support
-      a larger autonomous system number space.
-
-      In the value set and its semantics, this type is equivalent
-      to the InetAutonomousSystemNumber textual convention of
-      the SMIv2.";
-    reference
-     "RFC 1930: Guidelines for creation, selection, and registration
-                of an Autonomous System (AS)
-      RFC 4271: A Border Gateway Protocol 4 (BGP-4)
-      RFC 4001: Textual Conventions for Internet Network Addresses
-      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)
-                Number Space";
-  }
-
-  /*** collection of types related to IP addresses and hostnames ***/
-
-  typedef ip-address {
-    type union {
-      type inet:ipv4-address;
-      type inet:ipv6-address;
-    }
-    description
-     "The ip-address type represents an IP address and is IP
-      version neutral.  The format of the textual representation
-      implies the IP version.  This type supports scoped addresses
-      by allowing zone identifiers in the address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-      + '(%[\p{N}\p{L}]+)?';
-    }
-    description
-      "The ipv4-address type represents an IPv4 address in
-       dotted-quad notation.  The IPv4 address may include a zone
-       index, separated by a % sign.
-
-       The zone index is used to disambiguate identical address
-       values.  For link-local addresses, the zone index will
-       typically be the interface index number or the name of an
-       interface.  If the zone index is not present, the default
-       zone of the device will be used.
-
-       The canonical format for the zone index is the numerical
-       format";
-  }
-
-  typedef ipv6-address {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(%[\p{N}\p{L}]+)?';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(%.+)?';
-    }
-    description
-     "The ipv6-address type represents an IPv6 address in full,
-      mixed, shortened, and shortened-mixed notation.  The IPv6
-      address may include a zone index, separated by a % sign.
-
-      The zone index is used to disambiguate identical address
-      values.  For link-local addresses, the zone index will
-      typically be the interface index number or the name of an
-      interface.  If the zone index is not present, the default
-      zone of the device will be used.
-
-      The canonical format of IPv6 addresses uses the textual
-      representation defined in Section 4 of RFC 5952.  The
-      canonical format for the zone index is the numerical
-      format as described in Section 11.2 of RFC 4007.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-address-no-zone {
-    type union {
-      type inet:ipv4-address-no-zone;
-      type inet:ipv6-address-no-zone;
-    }
-    description
-     "The ip-address-no-zone type represents an IP address and is
-      IP version neutral.  The format of the textual representation
-      implies the IP version.  This type does not support scoped
-      addresses since it does not allow zone identifiers in the
-      address format.";
-    reference
-     "RFC 4007: IPv6 Scoped Address Architecture";
-  }
-
-  typedef ipv4-address-no-zone {
-    type inet:ipv4-address {
-      pattern '[0-9\.]*';
-    }
-    description
-      "An IPv4 address without a zone index.  This type, derived from
-       ipv4-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-  }
-
-  typedef ipv6-address-no-zone {
-    type inet:ipv6-address {
-      pattern '[0-9a-fA-F:\.]*';
-    }
-    description
-      "An IPv6 address without a zone index.  This type, derived from
-       ipv6-address, may be used in situations where the zone is
-       known from the context and hence no zone index is needed.";
-    reference
-     "RFC 4291: IP Version 6 Addressing Architecture
-      RFC 4007: IPv6 Scoped Address Architecture
-      RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  typedef ip-prefix {
-    type union {
-      type inet:ipv4-prefix;
-      type inet:ipv6-prefix;
-    }
-    description
-     "The ip-prefix type represents an IP prefix and is IP
-      version neutral.  The format of the textual representations
-      implies the IP version.";
-  }
-
-  typedef ipv4-prefix {
-    type string {
-      pattern
-         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
-       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';
-    }
-    description
-     "The ipv4-prefix type represents an IPv4 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 32.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The canonical format of an IPv4 prefix has all bits of
-      the IPv4 address set to zero that are not part of the
-      IPv4 prefix.";
-  }
-
-  typedef ipv6-prefix {
-    type string {
-      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
-            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
-            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
-            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
-            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';
-      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
-            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
-            + '(/.+)';
-    }
-
-    description
-     "The ipv6-prefix type represents an IPv6 address prefix.
-      The prefix length is given by the number following the
-      slash character and must be less than or equal to 128.
-
-      A prefix length value of n corresponds to an IP address
-      mask that has n contiguous 1-bits from the most
-      significant bit (MSB) and all other bits set to 0.
-
-      The IPv6 address should have all bits that do not belong
-      to the prefix set to zero.
-
-      The canonical format of an IPv6 prefix has all bits of
-      the IPv6 address set to zero that are not part of the
-      IPv6 prefix.  Furthermore, the IPv6 address is represented
-      as defined in Section 4 of RFC 5952.";
-    reference
-     "RFC 5952: A Recommendation for IPv6 Address Text
-                Representation";
-  }
-
-  /*** collection of domain name and URI types ***/
-
-  typedef domain-name {
-    type string {
-      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
-      name SHOULD be fully qualified whenever possible.
-
-      Internet domain names are only loosely specified.  Section
-      3.5 of RFC 1034 recommends a syntax (modified in Section
-      2.1 of RFC 1123).  The pattern above is intended to allow
-      for current practice in domain name use, and some possible
-      future expansion.  It is designed to hold various types of
-      domain names, including names used for A or AAAA records
-      (host names) and other records, such as SRV records.  Note
-      that Internet host names have a stricter syntax (described
-      in RFC 952) than the DNS recommendations in RFCs 1034 and
-      1123, and that systems that want to store host names in
-      schema nodes using the domain-name type are recommended to
-      adhere to this stricter standard to ensure interoperability.
-
-      The encoding of DNS names in the DNS protocol is limited
-      to 255 characters.  Since the encoding consists of labels
-      prefixed by a length bytes and there is a trailing NULL
-      byte, only 253 characters can appear in the textual dotted
-      notation.
-
-      The description clause of schema nodes using the domain-name
-      type MUST describe when and how these names are resolved to
-      IP addresses.  Note that the resolution of a domain-name value
-      may require to query multiple DNS records (e.g., A for IPv4
-      and AAAA for IPv6).  The order of the resolution process and
-      which DNS record takes precedence can either be defined
-      explicitly or may depend on the configuration of the
-      resolver.
-
-      Domain-name values use the US-ASCII encoding.  Their canonical
-      format uses lowercase US-ASCII characters.  Internationalized
-      domain names MUST be A-labels as per RFC 5890.";
-    reference
-     "RFC  952: DoD Internet Host Table Specification
-      RFC 1034: Domain Names - Concepts and Facilities
-      RFC 1123: Requirements for Internet Hosts -- Application
-                and Support
-      RFC 2782: A DNS RR for specifying the location of services
-                (DNS SRV)
-      RFC 5890: Internationalized Domain Names in Applications
-                (IDNA): Definitions and Document Framework";
-  }
-
-  typedef host {
-    type union {
-      type inet:ip-address;
-      type inet:domain-name;
-    }
-    description
-     "The host type represents either an IP address or a DNS
-      domain name.";
-  }
-
-  typedef uri {
-    type string;
-    description
-     "The uri type represents a Uniform Resource Identifier
-      (URI) as defined by STD 66.
-
-      Objects using the uri type MUST be in US-ASCII encoding,
-      and MUST be normalized as described by RFC 3986 Sections
-      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary
-      percent-encoding is removed, and all case-insensitive
-      characters are set to lowercase except for hexadecimal
-      digits, which are normalized to uppercase as described in
-      Section 6.2.2.1.
-
-      The purpose of this normalization is to help provide
-      unique URIs.  Note that this normalization is not
-      sufficient to provide uniqueness.  Two URIs that are
-      textually distinct after this normalization may still be
-      equivalent.
-
-      Objects using the uri type may restrict the schemes that
-      they permit.  For example, 'data:' and 'urn:' schemes
-      might not be appropriate.
-
-      A zero-length URI is not a valid URI.  This can be used to
-      express 'URI absent' where required.
-
-      In the value set and its semantics, this type is equivalent
-      to the Uri SMIv2 textual convention defined in RFC 5017.";
-    reference
-     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax
-      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest
-                Group: Uniform Resource Identifiers (URIs), URLs,
-                and Uniform Resource Names (URNs): Clarifications
-                and Recommendations
-      RFC 5017: MIB Textual Conventions for Uniform Resource
-                Identifiers (URIs)";
-  }
-
-}
diff --git a/api/models/ietf-interfaces.yang b/api/models/ietf-interfaces.yang
deleted file mode 100644
index f66c205ce076e65b2ded1d388c944a91829a48b5..0000000000000000000000000000000000000000
--- a/api/models/ietf-interfaces.yang
+++ /dev/null
@@ -1,1123 +0,0 @@
-module ietf-interfaces {
-  yang-version 1.1;
-  namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
-  prefix if;
-
-  import ietf-yang-types {
-    prefix yang;
-  }
-
-  organization
-    "IETF NETMOD (Network Modeling) Working Group";
-
-  contact
-    "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
-     WG List:  <mailto:netmod@ietf.org>
-
-     Editor:   Martin Bjorklund
-               <mailto:mbj@tail-f.com>";
-
-  description
-    "This module contains a collection of YANG definitions for
-     managing network interfaces.
-
-     Copyright (c) 2018 IETF Trust and the persons identified as
-     authors of the code.  All rights reserved.
-
-     Redistribution and use in source and binary forms, with or
-     without modification, is permitted pursuant to, and subject
-     to the license terms contained in, the Simplified BSD License
-     set forth in Section 4.c of the IETF Trust's Legal Provisions
-     Relating to IETF Documents
-     (https://trustee.ietf.org/license-info).
-
-     This version of this YANG module is part of RFC 8343; see
-     the RFC itself for full legal notices.";
-
-  revision 2018-02-20 {
-    description
-      "Updated to support NMDA.";
-    reference
-      "RFC 8343: A YANG Data Model for Interface Management";
-  }
-
-  revision 2014-05-08 {
-    description
-      "Initial revision.";
-    reference
-      "RFC 7223: A YANG Data Model for Interface Management";
-  }
-
-  /*
-   * Typedefs
-   */
-
-  typedef interface-ref {
-    type leafref {
-      path "/if:interfaces/if:interface/if:name";
-    }
-    description
-      "This type is used by data models that need to reference
-       interfaces.";
-  }
-
-  /*
-   * Identities
-   */
-
-  identity interface-type {
-    description
-      "Base identity from which specific interface types are
-       derived.";
-  }
-
-  /*
-   * Features
-   */
-
-  feature arbitrary-names {
-    description
-      "This feature indicates that the device allows user-controlled
-       interfaces to be named arbitrarily.";
-  }
-  feature pre-provisioning {
-    description
-      "This feature indicates that the device supports
-       pre-provisioning of interface configuration, i.e., it is
-       possible to configure an interface whose physical interface
-       hardware is not present on the device.";
-  }
-  feature if-mib {
-    description
-      "This feature indicates that the device implements
-       the IF-MIB.";
-    reference
-      "RFC 2863: The Interfaces Group MIB";
-  }
-
-  /*
-   * Data nodes
-   */
-
-  container interfaces {
-    description
-      "Interface parameters.";
-
-    list interface {
-      key "name";
-
-      description
-        "The list of interfaces on the device.
-
-         The status of an interface is available in this list in the
-         operational state.  If the configuration of a
-         system-controlled interface cannot be used by the system
-         (e.g., the interface hardware present does not match the
-         interface type), then the configuration is not applied to
-         the system-controlled interface shown in the operational
-         state.  If the configuration of a user-controlled interface
-         cannot be used by the system, the configured interface is
-         not instantiated in the operational state.
-
-         System-controlled interfaces created by the system are
-         always present in this list in the operational state,
-         whether or not they are configured.";
-
-     leaf name {
-        type string;
-        description
-          "The name of the interface.
-
-           A device MAY restrict the allowed values for this leaf,
-           possibly depending on the type of the interface.
-           For system-controlled interfaces, this leaf is the
-           device-specific name of the interface.
-
-           If a client tries to create configuration for a
-           system-controlled interface that is not present in the
-           operational state, the server MAY reject the request if
-           the implementation does not support pre-provisioning of
-           interfaces or if the name refers to an interface that can
-           never exist in the system.  A Network Configuration
-           Protocol (NETCONF) server MUST reply with an rpc-error
-           with the error-tag 'invalid-value' in this case.
-
-           If the device supports pre-provisioning of interface
-           configuration, the 'pre-provisioning' feature is
-           advertised.
-
-           If the device allows arbitrarily named user-controlled
-           interfaces, the 'arbitrary-names' feature is advertised.
-
-           When a configured user-controlled interface is created by
-           the system, it is instantiated with the same name in the
-           operational state.
-
-           A server implementation MAY map this leaf to the ifName
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifName.  The definition of
-           such a mechanism is outside the scope of this document.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
-      }
-
-      leaf description {
-        type string;
-        description
-          "A textual description of the interface.
-
-           A server implementation MAY map this leaf to the ifAlias
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifAlias.  The definition of
-           such a mechanism is outside the scope of this document.
-
-           Since ifAlias is defined to be stored in non-volatile
-           storage, the MIB implementation MUST map ifAlias to the
-           value of 'description' in the persistently stored
-           configuration.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAlias";
-      }
-
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        description
-          "The type of the interface.
-
-           When an interface entry is created, a server MAY
-           initialize the type leaf with a valid value, e.g., if it
-           is possible to derive the type from the name of the
-           interface.
-
-           If a client tries to set the type of an interface to a
-           value that can never be used by the system, e.g., if the
-           type is not supported or if the type does not match the
-           name of the interface, the server MUST reject the request.
-           A NETCONF server MUST reply with an rpc-error with the
-           error-tag 'invalid-value' in this case.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-
-      leaf enabled {
-        type boolean;
-        default "true";
-        description
-          "This leaf contains the configured, desired state of the
-           interface.
-
-           Systems that implement the IF-MIB use the value of this
-           leaf in the intended configuration to set
-           IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-           has been initialized, as described in RFC 2863.
-
-           Changes in this leaf in the intended configuration are
-           reflected in ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-
-      leaf link-up-down-trap-enable {
-        if-feature if-mib;
-        type enumeration {
-          enum enabled {
-            value 1;
-            description
-              "The device will generate linkUp/linkDown SNMP
-               notifications for this interface.";
-          }
-          enum disabled {
-            value 2;
-            description
-              "The device will not generate linkUp/linkDown SNMP
-               notifications for this interface.";
-          }
-        }
-        description
-          "Controls whether linkUp/linkDown SNMP notifications
-           should be generated for this interface.
-
-           If this node is not configured, the value 'enabled' is
-           operationally used by the server for interfaces that do
-           not operate on top of any other interface (i.e., there are
-           no 'lower-layer-if' entries), and 'disabled' otherwise.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifLinkUpDownTrapEnable";
-      }
-
-      leaf admin-status {
-        if-feature if-mib;
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "Not ready to pass packets and not in some test mode.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.";
-          }
-        }
-        config false;
-        mandatory true;
-        description
-          "The desired state of the interface.
-
-           This leaf has the same read semantics as ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-
-      leaf oper-status {
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-
-            description
-              "The interface does not pass any packets.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.  No operational packets can
-               be passed.";
-          }
-          enum unknown {
-            value 4;
-            description
-              "Status cannot be determined for some reason.";
-          }
-          enum dormant {
-            value 5;
-            description
-              "Waiting for some external event.";
-          }
-          enum not-present {
-            value 6;
-            description
-              "Some component (typically hardware) is missing.";
-          }
-          enum lower-layer-down {
-            value 7;
-            description
-              "Down due to state of lower-layer interface(s).";
-          }
-        }
-        config false;
-        mandatory true;
-        description
-          "The current operational state of the interface.
-
-           This leaf has the same semantics as ifOperStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      }
-
-      leaf last-change {
-        type yang:date-and-time;
-        config false;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
-      }
-
-      leaf if-index {
-        if-feature if-mib;
-        type int32 {
-          range "1..2147483647";
-        }
-        config false;
-        mandatory true;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
-      }
-
-      leaf phys-address {
-        type yang:phys-address;
-        config false;
-        description
-          "The interface's address at its protocol sub-layer.  For
-           example, for an 802.x interface, this object normally
-           contains a Media Access Control (MAC) address.  The
-           interface's media-specific modules must define the bit
-           and byte ordering and the format of the value of this
-           object.  For interfaces that do not have such an address
-           (e.g., a serial line), this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
-      }
-
-      leaf-list higher-layer-if {
-        type interface-ref;
-        config false;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-
-      leaf-list lower-layer-if {
-        type interface-ref;
-        config false;
-
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-
-      leaf speed {
-        type yang:gauge64;
-        units "bits/second";
-        config false;
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces that do not vary in
-             bandwidth or for those where no accurate estimation can
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that have no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
-      }
-
-      container statistics {
-        config false;
-        description
-          "A collection of interface-related statistics objects.";
-
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          mandatory true;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-
-        leaf in-octets {
-          type yang:counter64;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were not addressed to a
-             multicast or broadcast address at this sub-layer.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a broadcast
-             address at this sub-layer.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a multicast
-             address at this sub-layer.  For a MAC-layer protocol,
-             this includes both Group and Functional addresses.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-
-        leaf in-discards {
-          type yang:counter32;
-          description
-            "The number of inbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-
-        leaf in-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-
-        leaf in-unknown-protos {
-          type yang:counter32;
-
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface that were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing, the number of
-             transmission units received via the interface that were
-             discarded because of an unknown or unsupported protocol.
-             For any interface that does not support protocol
-             multiplexing, this counter is not present.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-
-        leaf out-octets {
-          type yang:counter64;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC-layer
-             protocol, this includes both Group and Functional
-             addresses.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-
-        leaf out-discards {
-          type yang:counter32;
-          description
-            "The number of outbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-
-        leaf out-errors {
-          type yang:counter32;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
-      }
-
-    }
-  }
-
-  /*
-   * Legacy typedefs
-   */
-
-  typedef interface-state-ref {
-    type leafref {
-      path "/if:interfaces-state/if:interface/if:name";
-    }
-    status deprecated;
-    description
-      "This type is used by data models that need to reference
-       the operationally present interfaces.";
-  }
-
-  /*
-   * Legacy operational state data nodes
-   */
-
-  container interfaces-state {
-    config false;
-    status deprecated;
-    description
-      "Data nodes for the operational state of interfaces.";
-
-    list interface {
-      key "name";
-      status deprecated;
-
-      description
-        "The list of interfaces on the device.
-
-         System-controlled interfaces created by the system are
-         always present in this list, whether or not they are
-         configured.";
-
-      leaf name {
-        type string;
-        status deprecated;
-        description
-          "The name of the interface.
-
-           A server implementation MAY map this leaf to the ifName
-           MIB object.  Such an implementation needs to use some
-           mechanism to handle the differences in size and characters
-           allowed between this leaf and ifName.  The definition of
-           such a mechanism is outside the scope of this document.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifName";
-      }
-
-      leaf type {
-        type identityref {
-          base interface-type;
-        }
-        mandatory true;
-        status deprecated;
-        description
-          "The type of the interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifType";
-      }
-
-      leaf admin-status {
-        if-feature if-mib;
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "Not ready to pass packets and not in some test mode.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.";
-          }
-        }
-        mandatory true;
-        status deprecated;
-        description
-          "The desired state of the interface.
-
-           This leaf has the same read semantics as ifAdminStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      }
-
-      leaf oper-status {
-        type enumeration {
-          enum up {
-            value 1;
-            description
-              "Ready to pass packets.";
-          }
-          enum down {
-            value 2;
-            description
-              "The interface does not pass any packets.";
-          }
-          enum testing {
-            value 3;
-            description
-              "In some test mode.  No operational packets can
-               be passed.";
-          }
-          enum unknown {
-            value 4;
-            description
-              "Status cannot be determined for some reason.";
-          }
-          enum dormant {
-            value 5;
-            description
-              "Waiting for some external event.";
-          }
-          enum not-present {
-            value 6;
-            description
-              "Some component (typically hardware) is missing.";
-          }
-          enum lower-layer-down {
-            value 7;
-            description
-              "Down due to state of lower-layer interface(s).";
-          }
-        }
-        mandatory true;
-        status deprecated;
-        description
-          "The current operational state of the interface.
-
-           This leaf has the same semantics as ifOperStatus.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      }
-
-      leaf last-change {
-        type yang:date-and-time;
-        status deprecated;
-        description
-          "The time the interface entered its current operational
-           state.  If the current state was entered prior to the
-           last re-initialization of the local network management
-           subsystem, then this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifLastChange";
-      }
-
-      leaf if-index {
-        if-feature if-mib;
-        type int32 {
-          range "1..2147483647";
-        }
-        mandatory true;
-        status deprecated;
-        description
-          "The ifIndex value for the ifEntry represented by this
-           interface.";
-
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifIndex";
-      }
-
-      leaf phys-address {
-        type yang:phys-address;
-        status deprecated;
-        description
-          "The interface's address at its protocol sub-layer.  For
-           example, for an 802.x interface, this object normally
-           contains a Media Access Control (MAC) address.  The
-           interface's media-specific modules must define the bit
-           and byte ordering and the format of the value of this
-           object.  For interfaces that do not have such an address
-           (e.g., a serial line), this node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
-      }
-
-      leaf-list higher-layer-if {
-        type interface-state-ref;
-        status deprecated;
-        description
-          "A list of references to interfaces layered on top of this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-
-      leaf-list lower-layer-if {
-        type interface-state-ref;
-        status deprecated;
-        description
-          "A list of references to interfaces layered underneath this
-           interface.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifStackTable";
-      }
-
-      leaf speed {
-        type yang:gauge64;
-        units "bits/second";
-        status deprecated;
-        description
-            "An estimate of the interface's current bandwidth in bits
-             per second.  For interfaces that do not vary in
-             bandwidth or for those where no accurate estimation can
-
-             be made, this node should contain the nominal bandwidth.
-             For interfaces that have no concept of bandwidth, this
-             node is not present.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifSpeed, ifHighSpeed";
-      }
-
-      container statistics {
-        status deprecated;
-        description
-          "A collection of interface-related statistics objects.";
-
-        leaf discontinuity-time {
-          type yang:date-and-time;
-          mandatory true;
-          status deprecated;
-          description
-            "The time on the most recent occasion at which any one or
-             more of this interface's counters suffered a
-             discontinuity.  If no such discontinuities have occurred
-             since the last re-initialization of the local management
-             subsystem, then this node contains the time the local
-             management subsystem re-initialized itself.";
-        }
-
-        leaf in-octets {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The total number of octets received on the interface,
-             including framing characters.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-        }
-
-        leaf in-unicast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were not addressed to a
-             multicast or broadcast address at this sub-layer.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-        }
-
-        leaf in-broadcast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a broadcast
-             address at this sub-layer.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInBroadcastPkts";
-        }
-
-        leaf in-multicast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The number of packets, delivered by this sub-layer to a
-             higher (sub-)layer, that were addressed to a multicast
-             address at this sub-layer.  For a MAC-layer protocol,
-             this includes both Group and Functional addresses.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCInMulticastPkts";
-        }
-
-        leaf in-discards {
-          type yang:counter32;
-          status deprecated;
-
-          description
-            "The number of inbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being deliverable to a higher-layer
-             protocol.  One possible reason for discarding such a
-             packet could be to free up buffer space.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-        }
-
-        leaf in-errors {
-          type yang:counter32;
-          status deprecated;
-          description
-            "For packet-oriented interfaces, the number of inbound
-             packets that contained errors preventing them from being
-             deliverable to a higher-layer protocol.  For character-
-             oriented or fixed-length interfaces, the number of
-             inbound transmission units that contained errors
-             preventing them from being deliverable to a higher-layer
-             protocol.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInErrors";
-        }
-
-        leaf in-unknown-protos {
-          type yang:counter32;
-          status deprecated;
-          description
-            "For packet-oriented interfaces, the number of packets
-             received via the interface that were discarded because
-             of an unknown or unsupported protocol.  For
-             character-oriented or fixed-length interfaces that
-             support protocol multiplexing, the number of
-             transmission units received via the interface that were
-             discarded because of an unknown or unsupported protocol.
-             For any interface that does not support protocol
-             multiplexing, this counter is not present.
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-        }
-
-        leaf out-octets {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The total number of octets transmitted out of the
-             interface, including framing characters.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-        }
-
-        leaf out-unicast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were not addressed
-             to a multicast or broadcast address at this sub-layer,
-             including those that were discarded or not sent.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-        }
-
-        leaf out-broadcast-pkts {
-          type yang:counter64;
-          status deprecated;
-
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were addressed to a
-             broadcast address at this sub-layer, including those
-             that were discarded or not sent.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutBroadcastPkts";
-        }
-
-        leaf out-multicast-pkts {
-          type yang:counter64;
-          status deprecated;
-          description
-            "The total number of packets that higher-level protocols
-             requested be transmitted and that were addressed to a
-             multicast address at this sub-layer, including those
-             that were discarded or not sent.  For a MAC-layer
-             protocol, this includes both Group and Functional
-             addresses.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB -
-                       ifHCOutMulticastPkts";
-        }
-
-        leaf out-discards {
-          type yang:counter32;
-          status deprecated;
-          description
-            "The number of outbound packets that were chosen to be
-             discarded even though no errors had been detected to
-             prevent their being transmitted.  One possible reason
-             for discarding such a packet could be to free up buffer
-             space.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-        }
-
-        leaf out-errors {
-          type yang:counter32;
-          status deprecated;
-          description
-            "For packet-oriented interfaces, the number of outbound
-             packets that could not be transmitted because of errors.
-             For character-oriented or fixed-length interfaces, the
-             number of outbound transmission units that could not be
-             transmitted because of errors.
-
-             Discontinuities in the value of this counter can occur
-             at re-initialization of the management system and at
-             other times as indicated by the value of
-             'discontinuity-time'.";
-          reference
-            "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-        }
-      }
-    }
-  }
-}
diff --git a/api/models/ietf-yang-types.yang b/api/models/ietf-yang-types.yang
deleted file mode 100644
index ee58fa3ab0042120d5607b8713d21fa0ba845895..0000000000000000000000000000000000000000
--- a/api/models/ietf-yang-types.yang
+++ /dev/null
@@ -1,474 +0,0 @@
-module ietf-yang-types {
-
-  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";
-  prefix "yang";
-
-  organization
-   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
-
-  contact
-   "WG Web:   <http://tools.ietf.org/wg/netmod/>
-    WG List:  <mailto:netmod@ietf.org>
-
-    WG Chair: David Kessens
-              <mailto:david.kessens@nsn.com>
-
-    WG Chair: Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>
-
-    Editor:   Juergen Schoenwaelder
-              <mailto:j.schoenwaelder@jacobs-university.de>";
-
-  description
-   "This module contains a collection of generally useful derived
-    YANG data types.
-
-    Copyright (c) 2013 IETF Trust and the persons identified as
-    authors of the code.  All rights reserved.
-
-    Redistribution and use in source and binary forms, with or
-    without modification, is permitted pursuant to, and subject
-    to the license terms contained in, the Simplified BSD License
-    set forth in Section 4.c of the IETF Trust's Legal Provisions
-    Relating to IETF Documents
-    (http://trustee.ietf.org/license-info).
-
-    This version of this YANG module is part of RFC 6991; see
-    the RFC itself for full legal notices.";
-
-  revision 2013-07-15 {
-    description
-     "This revision adds the following new data types:
-      - yang-identifier
-      - hex-string
-      - uuid
-      - dotted-quad";
-    reference
-     "RFC 6991: Common YANG Data Types";
-  }
-
-  revision 2010-09-24 {
-    description
-     "Initial revision.";
-    reference
-     "RFC 6021: Common YANG Data Types";
-  }
-
-  /*** collection of counter and gauge types ***/
-
-  typedef counter32 {
-    type uint32;
-    description
-     "The counter32 type represents a non-negative integer
-      that monotonically increases until it reaches a
-      maximum value of 2^32-1 (4294967295 decimal), when it
-      wraps around and starts increasing again from zero.
-
-      Counters have no defined 'initial' value, and thus, a
-      single value of a counter has (in general) no information
-      content.  Discontinuities in the monotonically increasing
-      value normally occur at re-initialization of the
-      management system, and at other times as specified in the
-      description of a schema node using this type.  If such
-      other times can occur, for example, the creation of
-      a schema node of type counter32 at times other than
-      re-initialization, then a corresponding schema node
-      should be defined, with an appropriate type, to indicate
-      the last discontinuity.
-
-      The counter32 type should not be used for configuration
-      schema nodes.  A default statement SHOULD NOT be used in
-      combination with the type counter32.
-
-      In the value set and its semantics, this type is equivalent
-      to the Counter32 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef zero-based-counter32 {
-    type yang:counter32;
-    default "0";
-    description
-     "The zero-based-counter32 type represents a counter32
-      that has the defined 'initial' value zero.
-
-      A schema node of this type will be set to zero (0) on creation
-      and will thereafter increase monotonically until it reaches
-      a maximum value of 2^32-1 (4294967295 decimal), when it
-      wraps around and starts increasing again from zero.
-
-      Provided that an application discovers a new schema node
-      of this type within the minimum time to wrap, it can use the
-      'initial' value as a delta.  It is important for a management
-      station to be aware of this minimum time and the actual time
-      between polls, and to discard data if the actual time is too
-      long or there is no defined minimum time.
-
-      In the value set and its semantics, this type is equivalent
-      to the ZeroBasedCounter32 textual convention of the SMIv2.";
-    reference
-      "RFC 4502: Remote Network Monitoring Management Information
-                 Base Version 2";
-  }
-
-  typedef counter64 {
-    type uint64;
-    description
-     "The counter64 type represents a non-negative integer
-      that monotonically increases until it reaches a
-      maximum value of 2^64-1 (18446744073709551615 decimal),
-      when it wraps around and starts increasing again from zero.
-
-      Counters have no defined 'initial' value, and thus, a
-      single value of a counter has (in general) no information
-      content.  Discontinuities in the monotonically increasing
-      value normally occur at re-initialization of the
-      management system, and at other times as specified in the
-      description of a schema node using this type.  If such
-      other times can occur, for example, the creation of
-      a schema node of type counter64 at times other than
-      re-initialization, then a corresponding schema node
-      should be defined, with an appropriate type, to indicate
-      the last discontinuity.
-
-      The counter64 type should not be used for configuration
-      schema nodes.  A default statement SHOULD NOT be used in
-      combination with the type counter64.
-
-      In the value set and its semantics, this type is equivalent
-      to the Counter64 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef zero-based-counter64 {
-    type yang:counter64;
-    default "0";
-    description
-     "The zero-based-counter64 type represents a counter64 that
-      has the defined 'initial' value zero.
-
-      A schema node of this type will be set to zero (0) on creation
-      and will thereafter increase monotonically until it reaches
-      a maximum value of 2^64-1 (18446744073709551615 decimal),
-      when it wraps around and starts increasing again from zero.
-
-      Provided that an application discovers a new schema node
-      of this type within the minimum time to wrap, it can use the
-      'initial' value as a delta.  It is important for a management
-      station to be aware of this minimum time and the actual time
-      between polls, and to discard data if the actual time is too
-      long or there is no defined minimum time.
-
-      In the value set and its semantics, this type is equivalent
-      to the ZeroBasedCounter64 textual convention of the SMIv2.";
-    reference
-     "RFC 2856: Textual Conventions for Additional High Capacity
-                Data Types";
-  }
-
-  typedef gauge32 {
-    type uint32;
-    description
-     "The gauge32 type represents a non-negative integer, which
-      may increase or decrease, but shall never exceed a maximum
-      value, nor fall below a minimum value.  The maximum value
-      cannot be greater than 2^32-1 (4294967295 decimal), and
-      the minimum value cannot be smaller than 0.  The value of
-      a gauge32 has its maximum value whenever the information
-      being modeled is greater than or equal to its maximum
-      value, and has its minimum value whenever the information
-      being modeled is smaller than or equal to its minimum value.
-      If the information being modeled subsequently decreases
-      below (increases above) the maximum (minimum) value, the
-      gauge32 also decreases (increases).
-
-      In the value set and its semantics, this type is equivalent
-      to the Gauge32 type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef gauge64 {
-    type uint64;
-    description
-     "The gauge64 type represents a non-negative integer, which
-      may increase or decrease, but shall never exceed a maximum
-      value, nor fall below a minimum value.  The maximum value
-      cannot be greater than 2^64-1 (18446744073709551615), and
-      the minimum value cannot be smaller than 0.  The value of
-      a gauge64 has its maximum value whenever the information
-      being modeled is greater than or equal to its maximum
-      value, and has its minimum value whenever the information
-      being modeled is smaller than or equal to its minimum value.
-      If the information being modeled subsequently decreases
-      below (increases above) the maximum (minimum) value, the
-      gauge64 also decreases (increases).
-
-      In the value set and its semantics, this type is equivalent
-      to the CounterBasedGauge64 SMIv2 textual convention defined
-      in RFC 2856";
-    reference
-     "RFC 2856: Textual Conventions for Additional High Capacity
-                Data Types";
-  }
-
-  /*** collection of identifier-related types ***/
-
-  typedef object-identifier {
-    type string {
-      pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'
-            + '(\.(0|([1-9]\d*)))*';
-    }
-    description
-     "The object-identifier type represents administratively
-      assigned names in a registration-hierarchical-name tree.
-
-      Values of this type are denoted as a sequence of numerical
-      non-negative sub-identifier values.  Each sub-identifier
-      value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers
-      are separated by single dots and without any intermediate
-      whitespace.
-
-      The ASN.1 standard restricts the value space of the first
-      sub-identifier to 0, 1, or 2.  Furthermore, the value space
-      of the second sub-identifier is restricted to the range
-      0 to 39 if the first sub-identifier is 0 or 1.  Finally,
-      the ASN.1 standard requires that an object identifier
-      has always at least two sub-identifiers.  The pattern
-      captures these restrictions.
-
-      Although the number of sub-identifiers is not limited,
-      module designers should realize that there may be
-      implementations that stick with the SMIv2 limit of 128
-      sub-identifiers.
-
-      This type is a superset of the SMIv2 OBJECT IDENTIFIER type
-      since it is not restricted to 128 sub-identifiers.  Hence,
-      this type SHOULD NOT be used to represent the SMIv2 OBJECT
-      IDENTIFIER type; the object-identifier-128 type SHOULD be
-      used instead.";
-    reference
-     "ISO9834-1: Information technology -- Open Systems
-      Interconnection -- Procedures for the operation of OSI
-      Registration Authorities: General procedures and top
-      arcs of the ASN.1 Object Identifier tree";
-  }
-
-  typedef object-identifier-128 {
-    type object-identifier {
-      pattern '\d*(\.\d*){1,127}';
-    }
-    description
-     "This type represents object-identifiers restricted to 128
-      sub-identifiers.
-
-      In the value set and its semantics, this type is equivalent
-      to the OBJECT IDENTIFIER type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef yang-identifier {
-    type string {
-      length "1..max";
-      pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
-      pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';
-    }
-    description
-      "A YANG identifier string as defined by the 'identifier'
-       rule in Section 12 of RFC 6020.  An identifier must
-       start with an alphabetic character or an underscore
-       followed by an arbitrary sequence of alphabetic or
-       numeric characters, underscores, hyphens, or dots.
-
-       A YANG identifier MUST NOT start with any possible
-       combination of the lowercase or uppercase character
-       sequence 'xml'.";
-    reference
-      "RFC 6020: YANG - A Data Modeling Language for the Network
-                 Configuration Protocol (NETCONF)";
-  }
-
-  /*** collection of types related to date and time***/
-
-  typedef date-and-time {
-    type string {
-      pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
-            + '(Z|[\+\-]\d{2}:\d{2})';
-    }
-    description
-     "The date-and-time type is a profile of the ISO 8601
-      standard for representation of dates and times using the
-      Gregorian calendar.  The profile is defined by the
-      date-time production in Section 5.6 of RFC 3339.
-
-      The date-and-time type is compatible with the dateTime XML
-      schema type with the following notable exceptions:
-
-      (a) The date-and-time type does not allow negative years.
-
-      (b) The date-and-time time-offset -00:00 indicates an unknown
-          time zone (see RFC 3339) while -00:00 and +00:00 and Z
-          all represent the same time zone in dateTime.
-
-      (c) The canonical format (see below) of data-and-time values
-          differs from the canonical format used by the dateTime XML
-          schema type, which requires all times to be in UTC using
-          the time-offset 'Z'.
-
-      This type is not equivalent to the DateAndTime textual
-      convention of the SMIv2 since RFC 3339 uses a different
-      separator between full-date and full-time and provides
-      higher resolution of time-secfrac.
-
-      The canonical format for date-and-time values with a known time
-      zone uses a numeric time zone offset that is calculated using
-      the device's configured known offset to UTC time.  A change of
-      the device's offset to UTC time will cause date-and-time values
-      to change accordingly.  Such changes might happen periodically
-      in case a server follows automatically daylight saving time
-      (DST) time zone offset changes.  The canonical format for
-      date-and-time values with an unknown time zone (usually
-      referring to the notion of local time) uses the time-offset
-      -00:00.";
-    reference
-     "RFC 3339: Date and Time on the Internet: Timestamps
-      RFC 2579: Textual Conventions for SMIv2
-      XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";
-  }
-
-  typedef timeticks {
-    type uint32;
-    description
-     "The timeticks type represents a non-negative integer that
-      represents the time, modulo 2^32 (4294967296 decimal), in
-      hundredths of a second between two epochs.  When a schema
-      node is defined that uses this type, the description of
-      the schema node identifies both of the reference epochs.
-
-      In the value set and its semantics, this type is equivalent
-      to the TimeTicks type of the SMIv2.";
-    reference
-     "RFC 2578: Structure of Management Information Version 2
-                (SMIv2)";
-  }
-
-  typedef timestamp {
-    type yang:timeticks;
-    description
-     "The timestamp type represents the value of an associated
-      timeticks schema node at which a specific occurrence
-      happened.  The specific occurrence must be defined in the
-      description of any schema node defined using this type.  When
-      the specific occurrence occurred prior to the last time the
-      associated timeticks attribute was zero, then the timestamp
-      value is zero.  Note that this requires all timestamp values
-      to be reset to zero when the value of the associated timeticks
-      attribute reaches 497+ days and wraps around to zero.
-
-      The associated timeticks schema node must be specified
-      in the description of any schema node using this type.
-
-      In the value set and its semantics, this type is equivalent
-      to the TimeStamp textual convention of the SMIv2.";
-    reference
-     "RFC 2579: Textual Conventions for SMIv2";
-  }
-
-  /*** collection of generic address types ***/
-
-  typedef phys-address {
-    type string {
-      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-    }
-
-    description
-     "Represents media- or physical-level addresses represented
-      as a sequence octets, each octet represented by two hexadecimal
-      numbers.  Octets are separated by colons.  The canonical
-      representation uses lowercase characters.
-
-      In the value set and its semantics, this type is equivalent
-      to the PhysAddress textual convention of the SMIv2.";
-    reference
-     "RFC 2579: Textual Conventions for SMIv2";
-  }
-
-  typedef mac-address {
-    type string {
-      pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';
-    }
-    description
-     "The mac-address type represents an IEEE 802 MAC address.
-      The canonical representation uses lowercase characters.
-
-      In the value set and its semantics, this type is equivalent
-      to the MacAddress textual convention of the SMIv2.";
-    reference
-     "IEEE 802: IEEE Standard for Local and Metropolitan Area
-                Networks: Overview and Architecture
-      RFC 2579: Textual Conventions for SMIv2";
-  }
-
-  /*** collection of XML-specific types ***/
-
-  typedef xpath1.0 {
-    type string;
-    description
-     "This type represents an XPATH 1.0 expression.
-
-      When a schema node is defined that uses this type, the
-      description of the schema node MUST specify the XPath
-      context in which the XPath expression is evaluated.";
-    reference
-     "XPATH: XML Path Language (XPath) Version 1.0";
-  }
-
-  /*** collection of string types ***/
-
-  typedef hex-string {
-    type string {
-      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';
-    }
-    description
-     "A hexadecimal string with octets represented as hex digits
-      separated by colons.  The canonical representation uses
-      lowercase characters.";
-  }
-
-  typedef uuid {
-    type string {
-      pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
-            + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';
-    }
-    description
-     "A Universally Unique IDentifier in the string representation
-      defined in RFC 4122.  The canonical representation uses
-      lowercase characters.
-
-      The following is an example of a UUID in string representation:
-      f81d4fae-7dec-11d0-a765-00a0c91e6bf6
-      ";
-    reference
-     "RFC 4122: A Universally Unique IDentifier (UUID) URN
-                Namespace";
-  }
-
-  typedef dotted-quad {
-    type string {
-      pattern
-        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
-      + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
-    }
-    description
-      "An unsigned 32-bit number expressed in the dotted-quad
-       notation, i.e., four octets written as decimal numbers
-       and separated with the '.' (full stop) character.";
-  }
-}
diff --git a/api/models/openconfig-acl.yang b/api/models/openconfig-acl.yang
deleted file mode 100644
index 48650a5534731a14f8f7b97ac3c0973d84cf5a0b..0000000000000000000000000000000000000000
--- a/api/models/openconfig-acl.yang
+++ /dev/null
@@ -1,859 +0,0 @@
-module openconfig-acl {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/acl";
-
-  prefix "oc-acl";
-
-  import openconfig-packet-match { prefix oc-match; }
-  import openconfig-interfaces { prefix oc-if; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines configuration and operational state
-    data for network access control lists (i.e., filters, rules,
-    etc.).  ACLs are organized into ACL sets, with each set
-    containing one or more ACL entries.  ACL sets are identified
-    by a unique name, while each entry within a set is assigned
-    a sequence-id that determines the order in which the ACL
-    rules are applied to a packet.  Note that ACLs are evaluated
-    in ascending order based on the sequence-id (low to high).
-
-    Individual ACL rules specify match criteria based on fields in
-    the packet, along with an action that defines how matching
-    packets should be handled. Entries have a type that indicates
-    the type of match criteria, e.g., MAC layer, IPv4, IPv6, etc.";
-
-  oc-ext:openconfig-version "1.1.1";
-
-  revision "2019-11-27" {
-    description
-      "Fix xpaths in when statements.";
-    reference "1.1.1";
-  }
-
-  revision "2019-10-25" {
-    description
-      "Update when statements.";
-    reference "1.1.0";
-  }
-
-  revision "2018-11-21" {
-    description
-      "Add OpenConfig module metadata extensions.";
-    reference "1.0.2";
-  }
-
-  revision "2018-04-24" {
-    description
-      "Clarified order of ACL evaluation";
-    reference "1.0.1";
-  }
-
-  revision "2017-05-26" {
-    description
-      "Separated ACL entries by type";
-    reference "1.0.0";
-  }
-
-  revision "2016-08-08" {
-    description
-      "OpenConfig public release";
-    reference "0.2.0";
-  }
-
-  revision "2016-01-22" {
-    description
-      "Initial revision";
-    reference "TBD";
-  }
-
-  // OpenConfig specific extensions for module metadata.
-  oc-ext:regexp-posix;
-  oc-ext:catalog-organization "openconfig";
-  oc-ext:origin "openconfig";
-
-  identity ACL_TYPE {
-    description
-      "Base identity for types of ACL sets";
-  }
-
-  identity ACL_IPV4 {
-    base ACL_TYPE;
-    description
-      "IP-layer ACLs with IPv4 addresses";
-  }
-
-  identity ACL_IPV6 {
-    base ACL_TYPE;
-    description
-      "IP-layer ACLs with IPv6 addresses";
-  }
-
-  identity ACL_L2 {
-    base ACL_TYPE;
-    description
-      "MAC-layer ACLs";
-  }
-
-  identity ACL_MIXED {
-    base ACL_TYPE;
-    description
-      "Mixed-mode ACL that specifies L2 and L3 protocol
-      fields.  This ACL type is not implemented by many
-      routing/switching devices.";
-  }
-
-  // ACL action type
-
-  identity FORWARDING_ACTION {
-    description
-      "Base identity for actions in the forwarding category";
-  }
-
-  identity ACCEPT {
-    base FORWARDING_ACTION;
-    description
-      "Accept the packet";
-  }
-
-  identity DROP {
-    base FORWARDING_ACTION;
-    description
-      "Drop packet without sending any ICMP error message";
-  }
-
-  identity REJECT {
-    base FORWARDING_ACTION;
-    description
-      "Drop the packet and send an ICMP error message to the source";
-  }
-
-  identity LOG_ACTION {
-    description
-      "Base identity for defining the destination for logging
-      actions";
-  }
-
-  identity LOG_SYSLOG {
-    base LOG_ACTION;
-    description
-      "Log the packet in Syslog";
-  }
-
-  identity LOG_NONE {
-    base LOG_ACTION;
-    description
-      "No logging";
-  }
-
-  identity ACL_COUNTER_CAPABILITY {
-    description
-      "Base identity for system to indicate how it is able to report
-      counters";
-  }
-
-  identity INTERFACE_ONLY {
-    base ACL_COUNTER_CAPABILITY;
-    description
-      "ACL counters are available and reported only per interface";
-  }
-
-  identity AGGREGATE_ONLY {
-    base ACL_COUNTER_CAPABILITY;
-    description
-      "ACL counters are aggregated over all interfaces, and reported
-      only per ACL entry";
-  }
-
-  identity INTERFACE_AGGREGATE {
-    base ACL_COUNTER_CAPABILITY;
-    description
-      "ACL counters are reported per interface, and also aggregated
-      and reported per ACL entry.";
-  }
-
-  // grouping statements
-
-  // input interface
-  grouping input-interface-config {
-    description
-      "Config of interface";
-
-  }
-
-  grouping input-interface-state {
-    description
-      "State information of interface";
-  }
-
-  grouping input-interface-top {
-    description
-      "Input interface top level container";
-
-    container input-interface {
-      description
-        "Input interface container";
-
-      container config {
-        description
-          "Config data";
-        uses input-interface-config;
-      }
-
-      container state {
-        config false;
-        description
-          "State information";
-        uses input-interface-config;
-        uses input-interface-state;
-      }
-
-      uses oc-if:interface-ref;
-
-    }
-  }
-
-  // Action Type
-  grouping action-config {
-    description
-      "Config of action type";
-
-
-    leaf forwarding-action {
-      type identityref {
-        base FORWARDING_ACTION;
-      }
-      mandatory true;
-      description
-        "Specifies the forwarding action.  One forwarding action
-        must be specified for each ACL entry";
-    }
-
-    leaf log-action {
-      type identityref {
-        base LOG_ACTION;
-      }
-      default LOG_NONE;
-      description
-        "Specifies the log action and destination for
-        matched packets.  The default is not to log the
-        packet.";
-    }
-
-
-  }
-
-  grouping action-state {
-    description
-      "State information of action type";
-
-  }
-
-  grouping action-top {
-    description
-      "ACL action type top level container";
-
-    container actions {
-      description
-        "Enclosing container for list of ACL actions associated
-        with an entry";
-
-      container config {
-        description
-          "Config data for ACL actions";
-        uses action-config;
-      }
-
-      container state {
-        config false;
-        description
-          "State information for ACL actions";
-        uses action-config;
-        uses action-state;
-      }
-    }
-  }
-
-  grouping acl-counters-state {
-    description
-      "Common grouping for ACL counters";
-
-    leaf matched-packets {
-      type oc-yang:counter64;
-      description
-        "Count of the number of packets matching the current ACL
-        entry.
-
-        An implementation should provide this counter on a
-        per-interface per-ACL-entry if possible.
-
-        If an implementation only supports ACL counters per entry
-        (i.e., not broken out per interface), then the value
-        should be equal to the aggregate count across all interfaces.
-
-        An implementation that provides counters per entry per
-        interface is not required to also provide an aggregate count,
-        e.g., per entry -- the user is expected to be able implement
-        the required aggregation if such a count is needed.";
-    }
-
-    leaf matched-octets {
-      type oc-yang:counter64;
-      description
-        "Count of the number of octets (bytes) matching the current
-        ACL entry.
-
-        An implementation should provide this counter on a
-        per-interface per-ACL-entry if possible.
-
-        If an implementation only supports ACL counters per entry
-        (i.e., not broken out per interface), then the value
-        should be equal to the aggregate count across all interfaces.
-
-        An implementation that provides counters per entry per
-        interface is not required to also provide an aggregate count,
-        e.g., per entry -- the user is expected to be able implement
-        the required aggregation if such a count is needed.";
-    }
-
-  }
-
-  // Access List Entries
-  grouping access-list-entries-config {
-    description
-      "Access List Entries (ACE) config.";
-
-    leaf sequence-id {
-      type uint32;
-      description
-        "The sequence id determines the order in which ACL entries
-        are applied.  The sequence id must be unique for each entry
-        in an ACL set.  Target devices should apply the ACL entry
-        rules in ascending order determined by sequence id (low to
-        high), rather than the relying only on order in the list.";
-    }
-
-    leaf description {
-      type string;
-      description
-        "A user-defined description, or comment, for this Access List
-        Entry.";
-    }
-
-  }
-
-  grouping access-list-entries-state {
-    description
-      "Access List Entries state.";
-
-    uses acl-counters-state;
-
-  }
-
-  grouping access-list-entries-top {
-    description
-      "Access list entries to level container";
-
-    container acl-entries {
-      description
-        "Access list entries container";
-
-      list acl-entry {
-        key "sequence-id";
-        description
-          "List of ACL entries comprising an ACL set";
-
-        leaf sequence-id {
-          type leafref {
-            path "../config/sequence-id";
-          }
-          description
-            "references the list key";
-        }
-
-        container config {
-          description
-            "Access list entries config";
-          uses access-list-entries-config;
-        }
-
-        container state {
-          config false;
-          description
-            "State information for ACL entries";
-          uses access-list-entries-config;
-          uses access-list-entries-state;
-        }
-
-        uses oc-match:ethernet-header-top {
-          when "../../config/type='ACL_L2'" {
-            description
-              "MAC-layer fields are valid when the ACL type is L2";
-          }
-        }
-        uses oc-match:ipv4-protocol-fields-top {
-          when "../../config/type='ACL_IPV4'" {
-            description
-              "IPv4-layer fields are valid when the ACL type is
-              IPv4";
-          }
-        }
-        uses oc-match:ipv6-protocol-fields-top {
-          when "../../config/type='ACL_IPV6'" {
-            description
-              "IPv6-layer fields are valid when the ACL type is
-              IPv6";
-          }
-        }
-        uses oc-match:transport-fields-top {
-          when "../../config/type='ACL_IPV6' or " +
-            "../../config/type='ACL_IPV4'" {
-            description
-              "Transport-layer fields are valid when specifying
-              L3 ACL types";
-          }
-        }
-        uses input-interface-top;
-
-        uses action-top;
-      }
-    }
-  }
-
-  grouping acl-set-config {
-    description
-      "Access Control List config";
-
-    leaf name {
-      type string;
-      description
-        "The name of the access-list set";
-    }
-
-    leaf type {
-      type identityref {
-        base ACL_TYPE;
-      }
-      description
-        "The type determines the fields allowed in the ACL entries
-        belonging to the ACL set (e.g., IPv4, IPv6, etc.)";
-    }
-
-    leaf description {
-      type string;
-      description
-        "Description, or comment, for the ACL set";
-    }
-
-  }
-
-  grouping acl-set-state {
-    description
-      "Access Control List state";
-  }
-
-  grouping acl-set-top {
-    description
-      "Access list entries variables top level container";
-
-    container acl-sets {
-      description
-        "Access list entries variables enclosing container";
-
-      list acl-set {
-        key "name type";
-        description
-          "List of ACL sets, each comprising of a list of ACL
-          entries";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "Reference to the name list key";
-        }
-
-        leaf type {
-          type leafref {
-            path "../config/type";
-          }
-          description
-            "Reference to the type list key";
-        }
-
-        container config {
-          description
-            "Access list config";
-          uses acl-set-config;
-        }
-
-        container state {
-          config false;
-          description
-            "Access list state information";
-          uses acl-set-config;
-          uses acl-set-state;
-        }
-        uses access-list-entries-top;
-      }
-    }
-  }
-
-  grouping interface-acl-entries-config {
-    description
-      "Configuration data for per-interface ACLs";
-
-  }
-
-  grouping interface-acl-entries-state {
-    description
-      "Operational state data for per-interface ACL entries";
-
-    leaf sequence-id {
-      type leafref {
-        path "/acl/acl-sets/" +
-          "acl-set[name=current()/../../../../set-name]" +
-          "[type=current()/../../../../type]/" +
-          "acl-entries/acl-entry/sequence-id";
-      }
-      description
-        "Reference to an entry in the ACL set applied to an
-        interface";
-    }
-
-    uses acl-counters-state;
-
-  }
-
-  grouping interface-acl-entries-top {
-    description
-      "Top-level grouping for per-interface ACL entries";
-
-    container acl-entries {
-      config false;
-      description
-        "Enclosing container for list of references to ACLs";
-
-      list acl-entry {
-        key "sequence-id";
-        description
-          "List of ACL entries assigned to an interface";
-
-        leaf sequence-id {
-          type leafref {
-            path "../state/sequence-id";
-          }
-          description
-            "Reference to per-interface acl entry key";
-        }
-
-        // no config container since the enclosing container is
-        // read-only
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for per-interface ACL entries";
-
-          uses interface-acl-entries-config;
-          uses interface-acl-entries-state;
-        }
-      }
-    }
-  }
-
-  grouping interface-ingress-acl-config {
-    description
-      "Configuration data for per-interface ingress ACLs";
-
-    leaf set-name {
-      type leafref {
-        path "../../../../../../acl-sets/acl-set/config/name";
-      }
-      description
-        "Reference to the ACL set name applied on ingress";
-    }
-
-    leaf type {
-      type leafref {
-        path "../../../../../../acl-sets/acl-set[name=current()/../set-name]" +
-          "/config/type";
-      }
-      description
-        "Reference to the ACL set type applied on ingress";
-    }
-  }
-
-  grouping interface-ingress-acl-state {
-    description
-      "Operational state data for the per-interface ingress ACL";
-  }
-
-  grouping interface-ingress-acl-top {
-    description
-      "Top-level grouping for per-interface ingress ACL data";
-
-    container ingress-acl-sets {
-      description
-        "Enclosing container the list of ingress ACLs on the
-        interface";
-
-      list ingress-acl-set {
-        key "set-name type";
-        description
-          "List of ingress ACLs on the interface";
-
-        leaf set-name {
-          type leafref {
-            path "../config/set-name";
-          }
-          description
-            "Reference to set name list key";
-        }
-
-        leaf type {
-          type leafref {
-            path "../config/type";
-          }
-          description
-            "Reference to type list key";
-        }
-
-        container config {
-          description
-            "Configuration data ";
-
-          uses interface-ingress-acl-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for interface ingress ACLs";
-
-          uses interface-ingress-acl-config;
-          uses interface-ingress-acl-state;
-        }
-
-        uses interface-acl-entries-top;
-      }
-    }
-  }
-
-  grouping interface-egress-acl-config {
-    description
-      "Configuration data for per-interface egress ACLs";
-
-    leaf set-name {
-      type leafref {
-        path "../../../../../../acl-sets/acl-set/config/name";
-      }
-      description
-        "Reference to the ACL set name applied on egress";
-    }
-
-    leaf type {
-      type leafref {
-        path "../../../../../../acl-sets/acl-set[name=current()/../set-name]" +
-          "/config/type";
-      }
-      description
-        "Reference to the ACL set type applied on egress.";
-    }
-  }
-
-  grouping interface-egress-acl-state {
-    description
-      "Operational state data for the per-interface egress ACL";
-  }
-
-  grouping interface-egress-acl-top {
-    description
-      "Top-level grouping for per-interface egress ACL data";
-
-    container egress-acl-sets {
-      description
-        "Enclosing container the list of egress ACLs on the
-        interface";
-
-      list egress-acl-set {
-        key "set-name type";
-        description
-          "List of egress ACLs on the interface";
-
-        leaf set-name {
-          type leafref {
-            path "../config/set-name";
-          }
-          description
-            "Reference to set name list key";
-        }
-
-        leaf type {
-          type leafref {
-            path "../config/type";
-          }
-          description
-            "Reference to type list key";
-        }
-
-        container config {
-          description
-            "Configuration data ";
-
-          uses interface-egress-acl-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state data for interface egress ACLs";
-
-          uses interface-egress-acl-config;
-          uses interface-egress-acl-state;
-        }
-
-        uses interface-acl-entries-top;
-      }
-    }
-  }
-
-  grouping acl-interfaces-config {
-    description
-      "Configuration data for interface references";
-
-    leaf id {
-      type oc-if:interface-id;
-      description
-        "User-defined identifier for the interface -- a common
-        convention could be '<if name>.<subif index>'";
-    }
-  }
-
-  grouping acl-interfaces-state {
-    description
-      "Operational state data for interface references";
-  }
-
-  grouping acl-interfaces-top {
-    description
-      "Top-level grouping for interface-specific ACL data";
-
-    container interfaces {
-      description
-        "Enclosing container for the list of interfaces on which
-        ACLs are set";
-
-      list interface {
-        key "id";
-        description
-          "List of interfaces on which ACLs are set";
-
-        leaf id {
-          type leafref {
-            path "../config/id";
-          }
-          description
-            "Reference to the interface id list key";
-        }
-
-        container config {
-          description
-            "Configuration for ACL per-interface data";
-
-          uses acl-interfaces-config;
-        }
-
-        container state {
-
-          config false;
-
-          description
-            "Operational state for ACL per-interface data";
-
-          uses acl-interfaces-config;
-          uses acl-interfaces-state;
-        }
-
-        uses oc-if:interface-ref;
-        uses interface-ingress-acl-top;
-        uses interface-egress-acl-top;
-      }
-    }
-  }
-
-  grouping acl-config {
-    description
-      "Global configuration data for ACLs";
-  }
-
-  grouping acl-state {
-    description
-      "Global operational state data for ACLs";
-
-    leaf counter-capability {
-      type identityref {
-        base ACL_COUNTER_CAPABILITY;
-      }
-      description
-        "System reported indication of how ACL counters are reported
-        by the target";
-    }
-  }
-  grouping acl-top {
-    description
-      "Top level grouping for ACL data and structure";
-
-    container acl {
-      description
-        "Top level enclosing container for ACL model config
-        and operational state data";
-
-      container config {
-        description
-          "Global config data for ACLs";
-
-        uses acl-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Global operational state data for ACLs";
-
-        uses acl-config;
-        uses acl-state;
-      }
-
-      uses acl-set-top;
-      uses acl-interfaces-top;
-    }
-  }
-
-  // data definition statements
-  uses acl-top;
-
-  // augment statements
-
-
-}
diff --git a/api/models/openconfig-extensions.yang b/api/models/openconfig-extensions.yang
deleted file mode 100644
index c5e24ba221e2db4a3f1ca8f0da021b2399eeac59..0000000000000000000000000000000000000000
--- a/api/models/openconfig-extensions.yang
+++ /dev/null
@@ -1,198 +0,0 @@
-module openconfig-extensions {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/openconfig-ext";
-
-  prefix "oc-ext";
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module provides extensions to the YANG language to allow
-    OpenConfig specific functionality and meta-data to be defined.";
-
-  revision "2020-06-16" {
-    description
-      "Add extension for POSIX pattern statements.";
-    reference "0.5.0";
-  }
-
-  revision "2018-10-17" {
-    description
-      "Add extension for regular expression type.";
-    reference "0.4.0";
-  }
-
-  revision "2017-04-11" {
-    description
-      "rename password type to 'hashed' and clarify description";
-    reference "0.3.0";
-  }
-
-  revision "2017-01-29" {
-    description
-      "Added extension for annotating encrypted values.";
-    reference "0.2.0";
-  }
-
-  revision "2015-10-09" {
-    description
-      "Initial OpenConfig public release";
-    reference "0.1.0";
-  }
-
-
-  // extension statements
-  extension openconfig-version {
-    argument "semver" {
-      yin-element false;
-    }
-    description
-      "The OpenConfig version number for the module. This is
-      expressed as a semantic version number of the form:
-        x.y.z
-      where:
-        * x corresponds to the major version,
-        * y corresponds to a minor version,
-        * z corresponds to a patch version.
-      This version corresponds to the model file within which it is
-      defined, and does not cover the whole set of OpenConfig models.
-
-      Individual YANG modules are versioned independently -- the
-      semantic version is generally incremented only when there is a
-      change in the corresponding file.  Submodules should always
-      have the same semantic version as their parent modules.
-
-      A major version number of 0 indicates that this model is still
-      in development (whether within OpenConfig or with industry
-      partners), and is potentially subject to change.
-
-      Following a release of major version 1, all modules will
-      increment major revision number where backwards incompatible
-      changes to the model are made.
-
-      The minor version is changed when features are added to the
-      model that do not impact current clients use of the model.
-
-      The patch-level version is incremented when non-feature changes
-      (such as bugfixes or clarifications to human-readable
-      descriptions that do not impact model functionality) are made
-      that maintain backwards compatibility.
-
-      The version number is stored in the module meta-data.";
-  }
-
-  extension openconfig-hashed-value {
-    description
-      "This extension provides an annotation on schema nodes to
-      indicate that the corresponding value should be stored and
-      reported in hashed form.
-
-      Hash algorithms are by definition not reversible. Clients
-      reading the configuration or applied configuration for the node
-      should expect to receive only the hashed value. Values written
-      in cleartext will be hashed. This annotation may be used on
-      nodes such as secure passwords in which the device never reports
-      a cleartext value, even if the input is provided as cleartext.";
-  }
-
-  extension regexp-posix {
-     description
-      "This extension indicates that the regular expressions included
-      within the YANG module specified are conformant with the POSIX
-      regular expression format rather than the W3C standard that is
-      specified by RFC6020 and RFC7950.";
-  }
-
-  extension posix-pattern {
-    argument "pattern" {
-      yin-element false;
-    }
-    description
-      "Provides a POSIX ERE regular expression pattern statement as an
-      alternative to YANG regular expresssions based on XML Schema Datatypes.
-      It is used the same way as the standard YANG pattern statement defined in
-      RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular
-      expression string.";
-    reference
-      "POSIX Extended Regular Expressions (ERE) Specification:
-      https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04";
-  }
-
-  extension telemetry-on-change {
-    description
-      "The telemetry-on-change annotation is specified in the context
-      of a particular subtree (container, or list) or leaf within the
-      YANG schema. Where specified, it indicates that the value stored
-      by the nodes within the context change their value only in response
-      to an event occurring. The event may be local to the target, for
-      example - a configuration change, or external - such as the failure
-      of a link.
-
-      When a telemetry subscription allows the target to determine whether
-      to export the value of a leaf in a periodic or event-based fashion
-      (e.g., TARGET_DEFINED mode in gNMI), leaves marked as
-      telemetry-on-change should only be exported when they change,
-      i.e., event-based.";
-  }
-
-  extension telemetry-atomic {
-    description
-      "The telemetry-atomic annotation is specified in the context of
-      a subtree (containre, or list), and indicates that all nodes
-      within the subtree are always updated together within the data
-      model. For example, all elements under the subtree may be updated
-      as a result of a new alarm being raised, or the arrival of a new
-       protocol message.
-
-      Transport protocols may use the atomic specification to determine
-      optimisations for sending or storing the corresponding data.";
-  }
-
-  extension operational {
-    description
-      "The operational annotation is specified in the context of a
-      grouping, leaf, or leaf-list within a YANG module. It indicates
-      that the nodes within the context are derived state on the device.
-
-      OpenConfig data models divide nodes into the following three categories:
-
-       - intended configuration - these are leaves within a container named
-         'config', and are the writable configuration of a target.
-       - applied configuration - these are leaves within a container named
-         'state' and are the currently running value of the intended configuration.
-       - derived state - these are the values within the 'state' container which
-         are not part of the applied configuration of the device. Typically, they
-         represent state values reflecting underlying operational counters, or
-         protocol statuses.";
-  }
-
-  extension catalog-organization {
-    argument "org" {
-      yin-element false;
-    }
-    description
-      "This extension specifies the organization name that should be used within
-      the module catalogue on the device for the specified YANG module. It stores
-      a pithy string where the YANG organization statement may contain more
-      details.";
-  }
-
-  extension origin {
-    argument "origin" {
-      yin-element false;
-    }
-    description
-      "This extension specifies the name of the origin that the YANG module
-      falls within. This allows multiple overlapping schema trees to be used
-      on a single network element without requiring module based prefixing
-      of paths.";
-  }
-}
diff --git a/api/models/openconfig-if-types.yang b/api/models/openconfig-if-types.yang
deleted file mode 100644
index 27d2dc1d891f8114de548d78bd0eb61f55ff01e2..0000000000000000000000000000000000000000
--- a/api/models/openconfig-if-types.yang
+++ /dev/null
@@ -1,108 +0,0 @@
-module openconfig-if-types {
-  yang-version "1";
-
-  namespace "http://openconfig.net/yang/openconfig-if-types";
-
-  prefix "oc-ift";
-
-  // import statements
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "This module contains a set of interface type definitions that
-    are used across OpenConfig models. These are generally physical
-    or logical interfaces, distinct from hardware ports (which are
-    described by the OpenConfig platform model).";
-
-  oc-ext:openconfig-version "0.2.1";
-
-  revision "2018-11-21" {
-    description
-      "Add OpenConfig module metadata extensions.";
-    reference "0.2.1";
-  }
-
-  revision "2018-01-05" {
-    description
-      "Add tunnel types into the INTERFACE_TYPE identity.";
-    reference "0.2.0";
-  }
-
-  revision "2016-11-14" {
-    description
-      "Initial version";
-    reference "0.1.0";
-  }
-
-  // OpenConfig specific extensions for module metadata.
-  oc-ext:regexp-posix;
-  oc-ext:catalog-organization "openconfig";
-  oc-ext:origin "openconfig";
-
-  identity INTERFACE_TYPE {
-    description
-      "Base identity from which interface types are derived.";
-  }
-
-  identity IF_ETHERNET {
-    base INTERFACE_TYPE;
-    description
-      "Ethernet interfaces based on IEEE 802.3 standards, as well
-      as FlexEthernet";
-    reference
-      "IEEE 802.3-2015 - IEEE Standard for Ethernet
-      OIF Flex Ethernet Implementation Agreement 1.0";
-  }
-
-  identity IF_AGGREGATE {
-    base INTERFACE_TYPE;
-    description
-      "An aggregated, or bonded, interface forming a
-      Link Aggregation Group (LAG), or bundle, most often based on
-      the IEEE 802.1AX (or 802.3ad) standard.";
-    reference
-      "IEEE 802.1AX-2008";
-  }
-
-  identity IF_LOOPBACK {
-    base INTERFACE_TYPE;
-    description
-      "A virtual interface designated as a loopback used for
-      various management and operations tasks.";
-  }
-
-  identity IF_ROUTED_VLAN {
-    base INTERFACE_TYPE;
-    description
-      "A logical interface used for routing services on a VLAN.
-      Such interfaces are also known as switch virtual interfaces
-      (SVI) or integrated routing and bridging interfaces (IRBs).";
-  }
-
-  identity IF_SONET {
-    base INTERFACE_TYPE;
-    description
-      "SONET/SDH interface";
-  }
-
-  identity IF_TUNNEL_GRE4 {
-    base INTERFACE_TYPE;
-    description
-      "A GRE tunnel over IPv4 transport.";
-  }
-
-  identity IF_TUNNEL_GRE6 {
-    base INTERFACE_TYPE;
-    description
-      "A GRE tunnel over IPv6 transport.";
-  }
-
-}
diff --git a/api/models/openconfig-inet-types.yang b/api/models/openconfig-inet-types.yang
deleted file mode 100644
index 9a79f839f570483eeb6adcadb458770626e5f2c0..0000000000000000000000000000000000000000
--- a/api/models/openconfig-inet-types.yang
+++ /dev/null
@@ -1,412 +0,0 @@
-module openconfig-inet-types {
-
-  yang-version "1";
-  namespace "http://openconfig.net/yang/types/inet";
-  prefix "oc-inet";
-
-  import openconfig-extensions { prefix "oc-ext"; }
-
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains a set of Internet address related
-    types for use in OpenConfig modules.
-
-    Portions of this code were derived from IETF RFC 6021.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.3.5";
-
-  revision "2020-10-12" {
-    description
-      "Fix anchors for domain-name pattern.";
-    reference "0.3.5";
-  }
-
-  revision "2020-06-30" {
-    description
-      "Add OpenConfig POSIX pattern extensions and add anchors for domain-name
-      pattern.";
-    reference "0.3.4";
-  }
-
-  revision "2019-04-25" {
-    description
-      "Fix regex bug for ipv6-prefix type";
-    reference "0.3.3";
-  }
-
-  revision "2018-11-21" {
-    description
-      "Add OpenConfig module metadata extensions.";
-    reference "0.3.2";
-  }
-
-  revision 2017-08-24 {
-    description
-      "Minor formatting fixes.";
-    reference "0.3.1";
-  }
-
-  revision 2017-07-06 {
-    description
-      "Add domain-name and host typedefs";
-    reference "0.3.0";
-  }
-
-  revision 2017-04-03 {
-    description
-      "Add ip-version typedef.";
-    reference "0.2.0";
-  }
-
-  revision 2017-04-03 {
-    description
-      "Update copyright notice.";
-    reference "0.1.1";
-  }
-
-  revision 2017-01-26 {
-    description
-      "Initial module for inet types";
-    reference "0.1.0";
-  }
-
-  // OpenConfig specific extensions for module metadata.
-  oc-ext:regexp-posix;
-  oc-ext:catalog-organization "openconfig";
-  oc-ext:origin "openconfig";
-
-  // IPv4 and IPv6 types.
-
-  typedef ipv4-address {
-    type string {
-      pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'        +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]'  +
-              '[0-9]|25[0-5])$';
-      oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'        +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]'  +
-              '[0-9]|25[0-5])$';
-    }
-    description
-      "An IPv4 address in dotted quad notation using the default
-      zone.";
-  }
-
-  typedef ipv4-address-zoned {
-    type string {
-      pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'        +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]'  +
-              '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$';
-      oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'        +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]'  +
-              '[0-9]|25[0-5])(%[a-zA-Z0-9_]+)$';
-    }
-    description
-      "An IPv4 address in dotted quad notation.  This type allows
-      specification of a zone index to disambiguate identical
-      address values.  For link-local addresses, the index is
-      typically the interface index or interface name.";
-  }
-
-  typedef ipv6-address {
-    type string {
-        pattern
-          // Must support compression through different lengths
-          // therefore this regexp is complex.
-          '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|'         +
-          '([0-9a-fA-F]{1,4}:){1,7}:|'                        +
-          '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        +
-          '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
-          '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
-          '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
-          '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
-          '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'      +
-          ':((:[0-9a-fA-F]{1,4}){1,7}|:)'                     +
-          ')$';
-        oc-ext:posix-pattern
-          // Must support compression through different lengths
-          // therefore this regexp is complex.
-          '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|'         +
-          '([0-9a-fA-F]{1,4}:){1,7}:|'                        +
-          '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        +
-          '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
-          '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
-          '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
-          '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
-          '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'      +
-          ':((:[0-9a-fA-F]{1,4}){1,7}|:)'                     +
-          ')$';
-    }
-    description
-      "An IPv6 address represented as either a full address; shortened
-      or mixed-shortened formats, using the default zone.";
-  }
-
-  typedef ipv6-address-zoned {
-    type string {
-        pattern
-          // Must support compression through different lengths
-          // therefore this regexp is complex.
-          '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|'         +
-          '([0-9a-fA-F]{1,4}:){1,7}:|'                        +
-          '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        +
-          '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
-          '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
-          '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
-          '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
-          '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'      +
-          ':((:[0-9a-fA-F]{1,4}){1,7}|:)'                     +
-          ')(%[a-zA-Z0-9_]+)$';
-        oc-ext:posix-pattern
-          // Must support compression through different lengths
-          // therefore this regexp is complex.
-          '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|'         +
-          '([0-9a-fA-F]{1,4}:){1,7}:|'                        +
-          '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'        +
-          '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
-          '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
-          '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
-          '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
-          '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'      +
-          ':((:[0-9a-fA-F]{1,4}){1,7}|:)'                     +
-          ')(%[a-zA-Z0-9_]+)$';
-    }
-    description
-      "An IPv6 address represented as either a full address; shortened
-      or mixed-shortened formats.  This type allows specification of
-      a zone index to disambiguate identical address values.  For
-      link-local addresses, the index is typically the interface
-      index or interface name.";
-  }
-
-  typedef ipv4-prefix {
-    type string {
-      pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'       +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
-              '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$';
-      oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'       +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
-              '[0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$';
-    }
-    description
-      "An IPv4 prefix represented in dotted quad notation followed by
-      a slash and a CIDR mask (0 <= mask <= 32).";
-  }
-
-  typedef ipv6-prefix {
-    type string {
-        pattern
-          '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|'         +
-          '([0-9a-fA-F]{1,4}:){1,7}:|'                        +
-          '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'         +
-          '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
-          '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
-          '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
-          '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
-          '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'      +
-          ':((:[0-9a-fA-F]{1,4}){1,7}|:)'                     +
-          ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$';
-        oc-ext:posix-pattern
-          '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|'         +
-          '([0-9a-fA-F]{1,4}:){1,7}:|'                        +
-          '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|'         +
-          '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
-          '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
-          '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
-          '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
-          '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|'      +
-          ':((:[0-9a-fA-F]{1,4}){1,7}|:)'                     +
-          ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$';
-    }
-    description
-      "An IPv6 prefix represented in full, shortened, or mixed
-      shortened format followed by a slash and CIDR mask
-      (0 <= mask <= 128).";
-  }
-
-  typedef ip-address {
-    type union {
-      type ipv4-address;
-      type ipv6-address;
-    }
-    description
-      "An IPv4 or IPv6 address with no prefix specified.";
-  }
-
-  typedef ip-prefix {
-    type union {
-      type ipv4-prefix;
-      type ipv6-prefix;
-    }
-    description
-      "An IPv4 or IPv6 prefix.";
-  }
-
-  typedef ip-version {
-    type enumeration {
-      enum UNKNOWN {
-        value 0;
-        description
-         "An unknown or unspecified version of the Internet
-          protocol.";
-      }
-      enum IPV4 {
-        value 4;
-        description
-         "The IPv4 protocol as defined in RFC 791.";
-      }
-      enum IPV6 {
-        value 6;
-        description
-         "The IPv6 protocol as defined in RFC 2460.";
-      }
-    }
-    description
-     "This value represents the version of the IP protocol.
-      Note that integer representation of the enumerated values
-      are not specified, and are not required to follow the
-      InetVersion textual convention in SMIv2.";
-    reference
-     "RFC  791: Internet Protocol
-      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
-      RFC 4001: Textual Conventions for Internet Network Addresses";
-  }
-
-  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]\.?)'    +
-        '|\.)$';
-      oc-ext:posix-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]\.?)'    +
-        '|\.)$';
-    }
-    description
-      "The domain-name type represents a DNS domain name.
-      Fully quallified left to the models which utilize this type.
-
-      Internet domain names are only loosely specified.  Section
-      3.5 of RFC 1034 recommends a syntax (modified in Section
-      2.1 of RFC 1123).  The pattern above is intended to allow
-      for current practice in domain name use, and some possible
-      future expansion.  It is designed to hold various types of
-      domain names, including names used for A or AAAA records
-      (host names) and other records, such as SRV records.  Note
-      that Internet host names have a stricter syntax (described
-      in RFC 952) than the DNS recommendations in RFCs 1034 and
-      1123, and that systems that want to store host names in
-      schema nodes using the domain-name type are recommended to
-      adhere to this stricter standard to ensure interoperability.
-
-      The encoding of DNS names in the DNS protocol is limited
-      to 255 characters.  Since the encoding consists of labels
-      prefixed by a length bytes and there is a trailing NULL
-      byte, only 253 characters can appear in the textual dotted
-      notation.
-
-      Domain-name values use the US-ASCII encoding.  Their canonical
-      format uses lowercase US-ASCII characters.  Internationalized
-      domain names MUST be encoded in punycode as described in RFC
-      3492";
-  }
-
-  typedef host {
-    type union {
-      type ip-address;
-      type domain-name;
-    }
-    description
-      "The host type represents either an unzoned IP address or a DNS
-      domain name.";
-  }
-
-  typedef as-number {
-    type uint32;
-    description
-      "A numeric identifier for an autonomous system (AS). An AS is a
-      single domain, under common administrative control, which forms
-      a unit of routing policy. Autonomous systems can be assigned a
-      2-byte identifier, or a 4-byte identifier which may have public
-      or private scope. Private ASNs are assigned from dedicated
-      ranges. Public ASNs are assigned from ranges allocated by IANA
-      to the regional internet registries (RIRs).";
-    reference
-      "RFC 1930 Guidelines for creation, selection, and registration
-                of an Autonomous System (AS)
-       RFC 4271 A Border Gateway Protocol 4 (BGP-4)";
-  }
-
-  typedef dscp {
-    type uint8 {
-      range "0..63";
-    }
-    description
-      "A differentiated services code point (DSCP) marking within the
-      IP header.";
-    reference
-      "RFC 2474 Definition of the Differentiated Services Field
-                 (DS Field) in the IPv4 and IPv6 Headers";
-  }
-
-  typedef ipv6-flow-label {
-    type uint32 {
-      range "0..1048575";
-    }
-    description
-      "The IPv6 flow-label is a 20-bit value within the IPv6 header
-      which is optionally used by the source of the IPv6 packet to
-      label sets of packets for which special handling may be
-      required.";
-    reference
-      "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification";
-  }
-
-  typedef port-number {
-    type uint16;
-    description
-      "A 16-bit port number used by a transport protocol such as TCP
-      or UDP.";
-    reference
-      "RFC 768 User Datagram Protocol
-       RFC 793 Transmission Control Protocol";
-  }
-
-  typedef uri {
-    type string;
-    description
-      "An ASCII-encoded Uniform Resource Identifier (URI) as defined
-      in RFC 3986.";
-    reference
-      "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax";
-  }
-
-  typedef url {
-    type string;
-    description
-      "An ASCII-encoded Uniform Resource Locator (URL) as defined
-      in RFC 3986, section 1.1.3";
-    reference
-      "RFC 3986, paragraph 1.1.3";
-  }
-
-}
diff --git a/api/models/openconfig-interfaces.yang b/api/models/openconfig-interfaces.yang
deleted file mode 100644
index b242f2bfac88f5a9ea30b09e914d505c0bbd1a01..0000000000000000000000000000000000000000
--- a/api/models/openconfig-interfaces.yang
+++ /dev/null
@@ -1,1078 +0,0 @@
-module openconfig-interfaces {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/interfaces";
-
-  prefix "oc-if";
-
-  // import some basic types
-  import ietf-interfaces { prefix ietf-if; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-types { prefix oc-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "Model for managing network interfaces and subinterfaces.  This
-    module also defines convenience types / groupings for other
-    models to create references to interfaces:
-
-      base-interface-ref (type) -  reference to a base interface
-      interface-ref (grouping) -  container for reference to a
-        interface + subinterface
-      interface-ref-state (grouping) - container for read-only
-        (opstate) reference to interface + subinterface
-
-    This model reuses data items defined in the IETF YANG model for
-    interfaces described by RFC 7223 with an alternate structure
-    (particularly for operational state data) and with
-    additional configuration items.
-
-    Portions of this code were derived from IETF RFC 7223.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "2.4.3";
-
-  revision "2019-11-19" {
-    description
-      "Update description of interface name.";
-    reference "2.4.3";
-  }
-
-  revision "2019-07-10" {
-    description
-      "Remove redundant nanosecond units statements to reflect
-      universal definition of timeticks64 type.";
-    reference "2.4.2";
-  }
-
-  revision "2018-11-21" {
-    description
-      "Add OpenConfig module metadata extensions.";
-    reference "2.4.1";
-  }
-
-  revision "2018-08-07" {
-    description
-      "Add leaf to indicate whether an interface is physical or
-      logical.";
-    reference "2.4.0";
-  }
-
-  revision "2018-07-02" {
-    description
-      "Add in-pkts and out-pkts in counters";
-    reference "2.3.2";
-  }
-
-  revision "2018-04-24" {
-    description
-      "Clarified behavior of last-change state leaf";
-    reference "2.3.1";
-  }
-
-  revision "2018-01-05" {
-    description
-      "Add logical loopback to interface.";
-    reference "2.3.0";
-  }
-
-  revision "2017-12-22" {
-    description
-      "Add IPv4 proxy ARP configuration.";
-    reference "2.2.0";
-  }
-
-  revision "2017-12-21" {
-    description
-      "Added IPv6 router advertisement configuration.";
-    reference "2.1.0";
-  }
-
-  revision "2017-07-14" {
-    description
-      "Added Ethernet/IP state data; Add dhcp-client;
-      migrate to OpenConfig types modules; Removed or
-      renamed opstate values";
-    reference "2.0.0";
-  }
-
-  revision "2017-04-03" {
-    description
-      "Update copyright notice.";
-    reference "1.1.1";
-  }
-
-  revision "2016-12-22" {
-    description
-      "Fixes to Ethernet interfaces model";
-    reference "1.1.0";
-  }
-
-  // OpenConfig specific extensions for module metadata.
-  oc-ext:regexp-posix;
-  oc-ext:catalog-organization "openconfig";
-  oc-ext:origin "openconfig";
-
-  // typedef statements
-
-  typedef base-interface-ref {
-    type leafref {
-      path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-    }
-    description
-      "Reusable type for by-name reference to a base interface.
-      This type may be used in cases where ability to reference
-      a subinterface is not required.";
-  }
-
-  typedef interface-id {
-    type string;
-    description
-      "User-defined identifier for an interface, generally used to
-      name a interface reference.  The id can be arbitrary but a
-      useful convention is to use a combination of base interface
-      name and subinterface index.";
-  }
-
-  // grouping statements
-
-  grouping interface-ref-common {
-    description
-      "Reference leafrefs to interface / subinterface";
-
-    leaf interface {
-      type leafref {
-        path "/oc-if:interfaces/oc-if:interface/oc-if:name";
-      }
-      description
-        "Reference to a base interface.  If a reference to a
-        subinterface is required, this leaf must be specified
-        to indicate the base interface.";
-    }
-
-    leaf subinterface {
-      type leafref {
-        path "/oc-if:interfaces/" +
-          "oc-if:interface[oc-if:name=current()/../interface]/" +
-          "oc-if:subinterfaces/oc-if:subinterface/oc-if:index";
-      }
-      description
-        "Reference to a subinterface -- this requires the base
-        interface to be specified using the interface leaf in
-        this container.  If only a reference to a base interface
-        is requuired, this leaf should not be set.";
-    }
-  }
-
-  grouping interface-ref-state-container {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container state {
-      config false;
-      description
-        "Operational state for interface-ref";
-
-      uses interface-ref-common;
-    }
-  }
-
-  grouping interface-ref {
-    description
-      "Reusable definition for a reference to an interface or
-      subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      container config {
-        description
-          "Configured reference to interface / subinterface";
-        oc-ext:telemetry-on-change;
-
-        uses interface-ref-common;
-      }
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to an
-      interface or subinterface";
-
-    container interface-ref {
-      description
-        "Reference to an interface or subinterface";
-
-      uses interface-ref-state-container;
-    }
-  }
-
-  grouping base-interface-ref-state {
-    description
-      "Reusable opstate w/container for a reference to a
-      base interface (no subinterface).";
-
-      container state {
-        config false;
-        description
-          "Operational state for base interface reference";
-
-        leaf interface {
-          type base-interface-ref;
-          description
-            "Reference to a base interface.";
-        }
-      }
-  }
-
-
-  grouping interface-common-config {
-    description
-      "Configuration data data nodes common to physical interfaces
-      and subinterfaces";
-
-    leaf description {
-      type string;
-      description
-        "A textual description of the interface.
-
-        A server implementation MAY map this leaf to the ifAlias
-        MIB object.  Such an implementation needs to use some
-        mechanism to handle the differences in size and characters
-        allowed between this leaf and ifAlias.  The definition of
-        such a mechanism is outside the scope of this document.
-
-        Since ifAlias is defined to be stored in non-volatile
-        storage, the MIB implementation MUST map ifAlias to the
-        value of 'description' in the persistently stored
-        datastore.
-
-        Specifically, if the device supports ':startup', when
-        ifAlias is read the device MUST return the value of
-        'description' in the 'startup' datastore, and when it is
-        written, it MUST be written to the 'running' and 'startup'
-        datastores.  Note that it is up to the implementation to
-
-        decide whether to modify this single leaf in 'startup' or
-        perform an implicit copy-config from 'running' to
-        'startup'.
-
-        If the device does not support ':startup', ifAlias MUST
-        be mapped to the 'description' leaf in the 'running'
-        datastore.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAlias";
-    }
-
-    leaf enabled {
-      type boolean;
-      default "true";
-      description
-        "This leaf contains the configured, desired state of the
-        interface.
-
-        Systems that implement the IF-MIB use the value of this
-        leaf in the 'running' datastore to set
-        IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
-        has been initialized, as described in RFC 2863.
-
-        Changes in this leaf in the 'running' datastore are
-        reflected in ifAdminStatus, but if ifAdminStatus is
-        changed over SNMP, this leaf is not affected.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-    }
-
-  }
-
-  grouping interface-phys-config {
-    description
-      "Configuration data for physical interfaces";
-
-    leaf name {
-      type string;
-      description
-        "The name of the interface.
-
-        A device MAY restrict the allowed values for this leaf,
-        possibly depending on the type of the interface.
-        For system-controlled interfaces, this leaf is the
-        device-specific name of the interface.  The 'config false'
-        list interfaces/interface[name]/state contains the currently
-        existing interfaces on the device.
-
-        If a client tries to create configuration for a
-        system-controlled interface that is not present in the
-        corresponding state list, the server MAY reject
-        the request if the implementation does not support
-        pre-provisioning of interfaces or if the name refers to
-        an interface that can never exist in the system.  A
-        NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.
-
-        The IETF model in RFC 7223 provides YANG features for the
-        following (i.e., pre-provisioning and arbitrary-names),
-        however they are omitted here:
-
-          If the device supports pre-provisioning of interface
-          configuration, the 'pre-provisioning' feature is
-          advertised.
-
-          If the device allows arbitrarily named user-controlled
-          interfaces, the 'arbitrary-names' feature is advertised.
-
-        When a configured user-controlled interface is created by
-        the system, it is instantiated with the same name in the
-        /interfaces/interface[name]/state list.";
-    }
-
-    leaf type {
-      type identityref {
-        base ietf-if:interface-type;
-      }
-      mandatory true;
-      description
-        "The type of the interface.
-
-        When an interface entry is created, a server MAY
-        initialize the type leaf with a valid value, e.g., if it
-        is possible to derive the type from the name of the
-        interface.
-
-        If a client tries to set the type of an interface to a
-        value that can never be used by the system, e.g., if the
-        type is not supported or if the type does not match the
-        name of the interface, the server MUST reject the request.
-        A NETCONF server MUST reply with an rpc-error with the
-        error-tag 'invalid-value' in this case.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifType";
-    }
-
-    leaf mtu {
-      type uint16;
-      description
-        "Set the max transmission unit size in octets
-        for the physical interface.  If this is not set, the mtu is
-        set to the operational default -- e.g., 1514 bytes on an
-        Ethernet interface.";
-    }
-
-    leaf loopback-mode {
-      type boolean;
-      default false;
-      description
-        "When set to true, the interface is logically looped back,
-        such that packets that are forwarded via the interface
-        are received on the same interface.";
-    }
-
-    uses interface-common-config;
-  }
-
-  grouping interface-phys-holdtime-config {
-    description
-      "Configuration data for interface hold-time settings --
-      applies to physical interfaces.";
-
-    leaf up {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface
-        transitions from down to up.  A zero value means dampening
-        is turned off, i.e., immediate notification.";
-    }
-
-    leaf down {
-      type uint32;
-      units milliseconds;
-      default 0;
-      description
-        "Dampens advertisement when the interface transitions from
-        up to down.  A zero value means dampening is turned off,
-        i.e., immediate notification.";
-    }
-  }
-
-  grouping interface-phys-holdtime-state {
-    description
-      "Operational state data for interface hold-time.";
-  }
-
-  grouping interface-phys-holdtime-top {
-    description
-      "Top-level grouping for setting link transition
-      dampening on physical and other types of interfaces.";
-
-    container hold-time {
-      description
-        "Top-level container for hold-time settings to enable
-        dampening advertisements of interface transitions.";
-
-      container config {
-        description
-          "Configuration data for interface hold-time settings.";
-        oc-ext:telemetry-on-change;
-
-        uses interface-phys-holdtime-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for interface hold-time.";
-
-        uses interface-phys-holdtime-config;
-        uses interface-phys-holdtime-state;
-      }
-    }
-  }
-
-  grouping interface-common-state {
-    description
-      "Operational state data (in addition to intended configuration)
-      at the global level for this interface";
-
-    oc-ext:operational;
-
-    leaf ifindex {
-      type uint32;
-      description
-        "System assigned number for each interface.  Corresponds to
-        ifIndex object in SNMP Interface MIB";
-      reference
-        "RFC 2863 - The Interfaces Group MIB";
-      oc-ext:telemetry-on-change;
-    }
-
-    leaf admin-status {
-      type enumeration {
-        enum UP {
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          description
-            "Not ready to pass packets and not in some test mode.";
-        }
-        enum TESTING {
-          //TODO: This is generally not supported as a configured
-          //admin state, though it's in the standard interfaces MIB.
-          //Consider removing it.
-          description
-            "In some test mode.";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The desired state of the interface.  In RFC 7223 this leaf
-        has the same read semantics as ifAdminStatus.  Here, it
-        reflects the administrative state as set by enabling or
-        disabling the interface.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
-      oc-ext:telemetry-on-change;
-    }
-
-    leaf oper-status {
-      type enumeration {
-        enum UP {
-          value 1;
-          description
-            "Ready to pass packets.";
-        }
-        enum DOWN {
-          value 2;
-          description
-            "The interface does not pass any packets.";
-        }
-        enum TESTING {
-          value 3;
-          description
-            "In some test mode.  No operational packets can
-             be passed.";
-        }
-        enum UNKNOWN {
-          value 4;
-          description
-            "Status cannot be determined for some reason.";
-        }
-        enum DORMANT {
-          value 5;
-          description
-            "Waiting for some external event.";
-        }
-        enum NOT_PRESENT {
-          value 6;
-          description
-            "Some component (typically hardware) is missing.";
-        }
-        enum LOWER_LAYER_DOWN {
-          value 7;
-          description
-            "Down due to state of lower-layer interface(s).";
-        }
-      }
-      //TODO:consider converting to an identity to have the
-      //flexibility to remove some values defined by RFC 7223 that
-      //are not used or not implemented consistently.
-      mandatory true;
-      description
-        "The current operational state of the interface.
-
-         This leaf has the same semantics as ifOperStatus.";
-      reference
-        "RFC 2863: The Interfaces Group MIB - ifOperStatus";
-      oc-ext:telemetry-on-change;
-    }
-
-    leaf last-change {
-      type oc-types:timeticks64;
-      description
-        "This timestamp indicates the absolute time of the last
-        state change of the interface (e.g., up-to-down transition).
-        This is different than the SNMP ifLastChange object in the
-        standard interface MIB in that it is not relative to the
-        system boot time (i.e,. sysUpTime).
-
-        The value is the timestamp in nanoseconds relative to
-        the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-      oc-ext:telemetry-on-change;
-    }
-
-    leaf logical {
-      type boolean;
-      description
-        "When set to true, the interface is a logical interface
-        which does not have an associated physical port or
-        channel on the system.";
-      oc-ext:telemetry-on-change;
-    }
-  }
-
-
-  grouping interface-counters-state {
-    description
-      "Operational state representing interface counters
-      and statistics.";
-
-      //TODO: we may need to break this list of counters into those
-      //that would appear for physical vs. subinterface or logical
-      //interfaces.  For now, just replicating the full stats
-      //grouping to both interface and subinterface.
-
-    oc-ext:operational;
-
-    container counters {
-      description
-        "A collection of interface-related statistics objects.";
-
-      leaf in-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets received on the interface,
-          including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
-      }
-
-      leaf in-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets received on the interface,
-          including all unicast, multicast, broadcast and bad packets
-          etc.";
-        reference
-          "RFC 2819: Remote Network Monitoring Management Information
-          Base";
-      }
-
-      leaf in-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were not addressed to a
-          multicast or broadcast address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
-      }
-
-      leaf in-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a broadcast
-          address at this sub-layer.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInBroadcastPkts";
-      }
-
-      leaf in-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The number of packets, delivered by this sub-layer to a
-          higher (sub-)layer, that were addressed to a multicast
-          address at this sub-layer.  For a MAC-layer protocol,
-          this includes both Group and Functional addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCInMulticastPkts";
-      }
-
-      leaf in-discards {
-        type oc-yang:counter64;
-        description
-          "The number of inbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being deliverable to a higher-layer
-          protocol.  One possible reason for discarding such a
-          packet could be to free up buffer space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-
-
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInDiscards";
-      }
-
-      leaf in-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of inbound
-          packets that contained errors preventing them from being
-          deliverable to a higher-layer protocol.  For character-
-          oriented or fixed-length interfaces, the number of
-          inbound transmission units that contained errors
-          preventing them from being deliverable to a higher-layer
-          protocol.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInErrors";
-      }
-
-      leaf in-unknown-protos {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of packets
-          received via the interface that were discarded because
-          of an unknown or unsupported protocol.  For
-          character-oriented or fixed-length interfaces that
-          support protocol multiplexing, the number of
-          transmission units received via the interface that were
-          discarded because of an unknown or unsupported protocol.
-          For any interface that does not support protocol
-          multiplexing, this counter is not present.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
-      }
-
-      leaf in-fcs-errors {
-        type oc-yang:counter64;
-        description
-          "Number of received packets which had errors in the
-          frame check sequence (FCS), i.e., framing errors.
-
-          Discontinuities in the value of this counter can occur
-          when the device is re-initialization as indicated by the
-          value of 'last-clear'.";
-      }
-
-      leaf out-octets {
-        type oc-yang:counter64;
-        description
-          "The total number of octets transmitted out of the
-          interface, including framing characters.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
-      }
-
-      leaf out-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets transmitted out of the
-          interface, including all unicast, multicast, broadcast,
-          and bad packets etc.";
-        reference
-          "RFC 2819: Remote Network Monitoring Management Information
-          Base";
-      }
-
-      leaf out-unicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were not addressed
-          to a multicast or broadcast address at this sub-layer,
-          including those that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
-      }
-
-      leaf out-broadcast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          broadcast address at this sub-layer, including those
-          that were discarded or not sent.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutBroadcastPkts";
-      }
-
-
-      leaf out-multicast-pkts {
-        type oc-yang:counter64;
-        description
-          "The total number of packets that higher-level protocols
-          requested be transmitted, and that were addressed to a
-          multicast address at this sub-layer, including those
-          that were discarded or not sent.  For a MAC-layer
-          protocol, this includes both Group and Functional
-          addresses.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB -
-                     ifHCOutMulticastPkts";
-      }
-
-      leaf out-discards {
-        type oc-yang:counter64;
-        description
-          "The number of outbound packets that were chosen to be
-          discarded even though no errors had been detected to
-          prevent their being transmitted.  One possible reason
-          for discarding such a packet could be to free up buffer
-          space.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
-      }
-
-      leaf out-errors {
-        type oc-yang:counter64;
-        description
-          "For packet-oriented interfaces, the number of outbound
-          packets that could not be transmitted because of errors.
-          For character-oriented or fixed-length interfaces, the
-          number of outbound transmission units that could not be
-          transmitted because of errors.
-
-          Discontinuities in the value of this counter can occur
-          at re-initialization of the management system, and at
-          other times as indicated by the value of
-          'last-clear'.";
-        reference
-          "RFC 2863: The Interfaces Group MIB - ifOutErrors";
-      }
-
-      leaf carrier-transitions {
-        type oc-yang:counter64;
-        description
-          "Number of times the interface state has transitioned
-          between up and down since the time the device restarted
-          or the last-clear time, whichever is most recent.";
-        oc-ext:telemetry-on-change;
-      }
-
-      leaf last-clear {
-        type oc-types:timeticks64;
-        description
-          "Timestamp of the last time the interface counters were
-          cleared.
-
-          The value is the timestamp in nanoseconds relative to
-          the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-        oc-ext:telemetry-on-change;
-      }
-    }
-  }
-
-  // data definition statements
-
-  grouping sub-unnumbered-config {
-    description
-      "Configuration data for unnumbered subinterfaces";
-
-    leaf enabled {
-      type boolean;
-      default false;
-      description
-        "Indicates that the subinterface is unnumbered.  By default
-        the subinterface is numbered, i.e., expected to have an
-        IP address configuration.";
-    }
-  }
-
-  grouping sub-unnumbered-state {
-    description
-      "Operational state data unnumbered subinterfaces";
-  }
-
-  grouping sub-unnumbered-top {
-    description
-      "Top-level grouping unnumbered subinterfaces";
-
-    container unnumbered {
-      description
-        "Top-level container for setting unnumbered interfaces.
-        Includes reference the interface that provides the
-        address information";
-
-      container config {
-        description
-          "Configuration data for unnumbered interface";
-        oc-ext:telemetry-on-change;
-
-        uses sub-unnumbered-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for unnumbered interfaces";
-
-        uses sub-unnumbered-config;
-        uses sub-unnumbered-state;
-      }
-
-      uses oc-if:interface-ref;
-    }
-  }
-
-  grouping subinterfaces-config {
-    description
-      "Configuration data for subinterfaces";
-
-    leaf index {
-      type uint32;
-      default 0;
-      description
-        "The index of the subinterface, or logical interface number.
-        On systems with no support for subinterfaces, or not using
-        subinterfaces, this value should default to 0, i.e., the
-        default subinterface.";
-    }
-
-    uses interface-common-config;
-
-  }
-
-  grouping subinterfaces-state {
-    description
-      "Operational state data for subinterfaces";
-
-    oc-ext:operational;
-
-    leaf name {
-      type string;
-      description
-        "The system-assigned name for the sub-interface.  This MAY
-        be a combination of the base interface name and the
-        subinterface index, or some other convention used by the
-        system.";
-      oc-ext:telemetry-on-change;
-    }
-
-    uses interface-common-state;
-    uses interface-counters-state;
-  }
-
-  grouping subinterfaces-top {
-    description
-      "Subinterface data for logical interfaces associated with a
-      given interface";
-
-    container subinterfaces {
-      description
-        "Enclosing container for the list of subinterfaces associated
-        with a physical interface";
-
-      list subinterface {
-        key "index";
-
-        description
-          "The list of subinterfaces (logical interfaces) associated
-          with a physical interface";
-
-        leaf index {
-          type leafref {
-            path "../config/index";
-          }
-          description
-            "The index number of the subinterface -- used to address
-            the logical interface";
-        }
-
-        container config {
-          description
-            "Configurable items at the subinterface level";
-          oc-ext:telemetry-on-change;
-
-          uses subinterfaces-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data for logical interfaces";
-
-          uses subinterfaces-config;
-          uses subinterfaces-state;
-        }
-      }
-    }
-  }
-
-  grouping interfaces-top {
-    description
-      "Top-level grouping for interface configuration and
-      operational state data";
-
-    container interfaces {
-      description
-        "Top level container for interfaces, including configuration
-        and state data.";
-
-
-      list interface {
-        key "name";
-
-        description
-          "The list of named interfaces on the device.";
-
-        leaf name {
-          type leafref {
-            path "../config/name";
-          }
-          description
-            "References the name of the interface";
-            //TODO: need to consider whether this should actually
-            //reference the name in the state subtree, which
-            //presumably would be the system-assigned name, or the
-            //configured name.  Points to the config/name now
-            //because of YANG 1.0 limitation that the list
-            //key must have the same "config" as the list, and
-            //also can't point to a non-config node.
-        }
-
-        container config {
-          description
-            "Configurable items at the global, physical interface
-            level";
-          oc-ext:telemetry-on-change;
-
-          uses interface-phys-config;
-        }
-
-        container state {
-
-          config false;
-          description
-            "Operational state data at the global interface level";
-
-          uses interface-phys-config;
-          uses interface-common-state;
-          uses interface-counters-state;
-        }
-
-        uses interface-phys-holdtime-top;
-        uses subinterfaces-top;
-      }
-    }
-  }
-
-  uses interfaces-top;
-
-}
diff --git a/api/models/openconfig-packet-match-types.yang b/api/models/openconfig-packet-match-types.yang
deleted file mode 100644
index 0e03aebdd85eda2e976049f29891677d725beb97..0000000000000000000000000000000000000000
--- a/api/models/openconfig-packet-match-types.yang
+++ /dev/null
@@ -1,326 +0,0 @@
-module openconfig-packet-match-types {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/packet-match-types";
-
-  prefix "oc-pkt-match-types";
-
-  // import some basic types
-  import openconfig-inet-types { prefix oc-inet; }
-  import openconfig-extensions { prefix oc-ext; }
-
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines common types for use in models requiring
-    data definitions related to packet matches.";
-
-  oc-ext:openconfig-version "1.0.4";
-
-  revision "2020-10-20" {
-    description
-      "Fix pattern regex for port-num-range.";
-    reference "1.0.4";
-  }
-
-  revision "2020-06-30" {
-    description
-      "Add OpenConfig POSIX pattern extensions.";
-    reference "1.0.3";
-  }
-
-  revision "2018-11-21" {
-    description
-      "Add OpenConfig module metadata extensions.";
-    reference "1.0.2";
-  }
-
-  revision "2018-04-15" {
-    description
-        "Corrected description and range for ethertype typedef";
-    reference "1.0.1";
-  }
-
-  revision "2017-05-26" {
-    description
-        "Separated IP matches into AFs";
-    reference "1.0.0";
-  }
-
-    revision "2016-08-08" {
-    description
-      "OpenConfig public release";
-    reference "0.2.0";
-  }
-
-  revision "2016-04-27" {
-    description
-      "Initial revision";
-    reference "TBD";
-  }
-
-  // OpenConfig specific extensions for module metadata.
-  oc-ext:regexp-posix;
-  oc-ext:catalog-organization "openconfig";
-  oc-ext:origin "openconfig";
-
-
-  // extension statements
-
-  // feature statements
-
-  // identity statements
-
-
-  //TODO: should replace this with an official IEEE module
-  // when available.  Only a select number of types are
-  // defined in this identity.
-  identity ETHERTYPE {
-    description
-      "Base identity for commonly used Ethertype values used
-      in packet header matches on Ethernet frames.  The Ethertype
-      indicates which protocol is encapsulated in the Ethernet
-      payload.";
-    reference
-      "IEEE 802.3";
-  }
-
-  identity ETHERTYPE_IPV4 {
-    base ETHERTYPE;
-    description
-      "IPv4 protocol (0x0800)";
-  }
-
-  identity ETHERTYPE_ARP {
-    base ETHERTYPE;
-    description
-      "Address resolution protocol (0x0806)";
-  }
-
-  identity ETHERTYPE_VLAN {
-    base ETHERTYPE;
-    description
-      "VLAN-tagged frame (as defined by IEEE 802.1q) (0x8100). Note
-      that this value is also used to represent Shortest Path
-      Bridging (IEEE 801.1aq) frames.";
-  }
-
-  identity ETHERTYPE_IPV6 {
-    base ETHERTYPE;
-    description
-      "IPv6 protocol (0x86DD)";
-  }
-
-  identity ETHERTYPE_MPLS {
-    base ETHERTYPE;
-    description
-      "MPLS unicast (0x8847)";
-  }
-
-  identity ETHERTYPE_LLDP {
-    base ETHERTYPE;
-    description
-      "Link Layer Discovery Protocol (0x88CC)";
-  }
-
-  identity ETHERTYPE_ROCE {
-    base ETHERTYPE;
-    description
-      "RDMA over Converged Ethernet (0x8915)";
-  }
-
-
-  //TODO: should replace this with an official IANA module when
-  //available.  Only a select set of protocols are defined with
-  //this identity.
-  identity IP_PROTOCOL {
-    description
-      "Base identity for commonly used IP protocols used in
-      packet header matches";
-    reference
-      "IANA Assigned Internet Protocol Numbers";
-  }
-
-  identity IP_TCP {
-    base IP_PROTOCOL;
-    description
-      "Transmission Control Protocol (6)";
-  }
-
-  identity IP_UDP  {
-    base IP_PROTOCOL;
-    description
-      "User Datagram Protocol (17)";
-  }
-
-  identity IP_ICMP {
-    base IP_PROTOCOL;
-    description
-      "Internet Control Message Protocol (1)";
-  }
-
-  identity IP_IGMP {
-    base IP_PROTOCOL;
-    description
-      "Internet Group Membership Protocol (2)";
-  }
-
-  identity IP_PIM {
-    base IP_PROTOCOL;
-    description
-      "Protocol Independent Multicast (103)";
-  }
-
-  identity IP_RSVP {
-    base IP_PROTOCOL;
-    description
-      "Resource Reservation Protocol (46)";
-  }
-
-  identity IP_GRE {
-    base IP_PROTOCOL;
-    description
-      "Generic Routing Encapsulation (47)";
-  }
-
-  identity IP_AUTH {
-    base IP_PROTOCOL;
-    description
-      "Authentication header, e.g., for IPSEC (51)";
-  }
-
-  identity IP_L2TP {
-    base IP_PROTOCOL;
-    description
-      "Layer Two Tunneling Protocol v.3 (115)";
-  }
-
-
-
-  identity TCP_FLAGS {
-    description
-      "Common TCP flags used in packet header matches";
-    reference
-      "IETF RFC 793 - Transmission Control Protocol
-      IETF RFC 3168 - The Addition of Explicit Congestion
-      Notification (ECN) to IP";
-  }
-
-  identity TCP_SYN {
-    base TCP_FLAGS;
-    description
-      "TCP SYN flag";
-  }
-
-  identity TCP_FIN {
-    base TCP_FLAGS;
-    description
-      "TCP FIN flag";
-  }
-
-  identity TCP_RST {
-    base TCP_FLAGS;
-    description
-      "TCP RST flag";
-  }
-
-  identity TCP_PSH {
-    base TCP_FLAGS;
-    description
-      "TCP push flag";
-  }
-
-  identity TCP_ACK {
-    base TCP_FLAGS;
-    description
-      "TCP ACK flag";
-  }
-
-  identity TCP_URG {
-    base TCP_FLAGS;
-    description
-      "TCP urgent flag";
-  }
-
-  identity TCP_ECE {
-    base TCP_FLAGS;
-    description
-      "TCP ECN-Echo flag.  If the SYN flag is set, indicates that
-      the TCP peer is ECN-capable, otherwise indicates that a
-      packet with Congestion Experienced flag in the IP header
-      is set";
-  }
-
-  identity TCP_CWR {
-    base TCP_FLAGS;
-    description
-      "TCP Congestion Window Reduced flag";
-  }
-
-  // typedef statements
-
-  typedef port-num-range {
-    type union {
-      type string {
-        pattern '^(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' +
-          '6[0-4][0-9]{3}|[0-5][0-9]{4}|[0-9]{1,4})\.\.' +
-          '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' +
-          '6[0-4][0-9]{3}|[0-5][0-9]{4}|[0-9]{1,4})$';
-        oc-ext:posix-pattern '^(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' +
-          '6[0-4][0-9]{3}|[0-5][0-9]{4}|[0-9]{1,4})\.\.' +
-          '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' +
-          '6[0-4][0-9]{3}|[0-5][0-9]{4}|[0-9]{1,4})$';
-      }
-      type oc-inet:port-number;
-      type enumeration {
-        enum ANY {
-          description
-            "Indicates any valid port number (e.g., wildcard)";
-        }
-      }
-    }
-    description
-      "Port numbers may be represented as a single value,
-      an inclusive range as <lower>..<higher>, or as ANY to
-      indicate a wildcard.";
-  }
-
-  typedef ip-protocol-type {
-    type union {
-      type uint8 {
-        range 0..254;
-      }
-      type identityref {
-        base IP_PROTOCOL;
-      }
-    }
-    description
-      "The IP protocol number may be expressed as a valid protocol
-      number (integer) or using a protocol type defined by the
-      IP_PROTOCOL identity";
-  }
-
-  typedef ethertype-type {
-    type union {
-      type uint16 {
-        range 1536..65535;
-      }
-      type identityref {
-        base ETHERTYPE;
-      }
-    }
-    description
-      "The Ethertype value may be expressed as a 16-bit number in
-      decimal notation, or using a type defined by the
-      ETHERTYPE identity";
-  }
-
-}
diff --git a/api/models/openconfig-packet-match.yang b/api/models/openconfig-packet-match.yang
deleted file mode 100644
index 510bc576867bdb6c970bfcaeb80420d9e4f39cce..0000000000000000000000000000000000000000
--- a/api/models/openconfig-packet-match.yang
+++ /dev/null
@@ -1,371 +0,0 @@
-module openconfig-packet-match {
-
-  yang-version "1";
-
-  // namespace
-  namespace "http://openconfig.net/yang/header-fields";
-
-  prefix "oc-pkt-match";
-
-  // import some basic types
-  import openconfig-inet-types { prefix oc-inet; }
-  import openconfig-yang-types { prefix oc-yang; }
-  import openconfig-packet-match-types { prefix oc-pkt-match-types; }
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module defines data related to packet header fields
-    used in matching operations, for example in ACLs.  When a
-    field is omitted from a match expression, the effect is a
-    wildcard ('any') for that field.";
-
-  oc-ext:openconfig-version "1.1.1";
-
-  revision "2018-11-21" {
-    description
-      "Add OpenConfig module metadata extensions.";
-    reference "1.1.1";
-  }
-
-  revision "2017-12-15" {
-    description
-      "Add MPLS packet field matches";
-    reference "1.1.0";
-  }
-
-  revision "2017-05-26" {
-    description
-      "Separated IP matches into AFs";
-    reference "1.0.0";
-  }
-
-  revision "2016-08-08" {
-    description
-      "OpenConfig public release";
-    reference "0.2.0";
-  }
-
-  revision "2016-04-27" {
-    description
-      "Initial revision";
-    reference "TBD";
-  }
-
-  // OpenConfig specific extensions for module metadata.
-  oc-ext:regexp-posix;
-  oc-ext:catalog-organization "openconfig";
-  oc-ext:origin "openconfig";
-
-
-  // Physical Layer fields
-  // ethernet-header
-  grouping ethernet-header-config {
-    description
-      "Configuration data of fields in Ethernet header.";
-
-    leaf source-mac {
-      type oc-yang:mac-address;
-      description
-        "Source IEEE 802 MAC address.";
-    }
-
-    leaf source-mac-mask {
-      type oc-yang:mac-address;
-      description
-        "Source IEEE 802 MAC address mask.";
-    }
-
-    leaf destination-mac {
-      type oc-yang:mac-address;
-      description
-        "Destination IEEE 802 MAC address.";
-    }
-
-    leaf destination-mac-mask {
-      type oc-yang:mac-address;
-      description
-        "Destination IEEE 802 MAC address mask.";
-    }
-
-    leaf ethertype {
-      type oc-pkt-match-types:ethertype-type;
-      description
-        "Ethertype field to match in Ethernet packets";
-    }
-  }
-
-  grouping ethernet-header-state {
-    description
-      "State information of fields in Ethernet header.";
-  }
-
-  grouping ethernet-header-top {
-    description
-      "Top level container for fields in Ethernet header.";
-
-    container l2 {
-      description
-        "Ethernet header fields";
-
-      container config {
-        description
-          "Configuration data";
-        uses ethernet-header-config;
-      }
-
-      container state {
-        config false;
-        description
-          "State Information.";
-        uses ethernet-header-config;
-        uses ethernet-header-state;
-      }
-    }
-  }
-
-  grouping mpls-header-top {
-    description
-      "Top-level container for fields in an MPLS header.";
-
-    container mpls {
-      description
-        "MPLS header fields";
-
-      container config {
-        description
-          "Configuration parameters relating to fields within
-          the MPLS header.";
-        uses mpls-header-config;
-      }
-
-      container state {
-        config false;
-        description
-          "Operational state parameters relating to fields
-          within the MPLS header";
-        uses mpls-header-config;
-      }
-    }
-  }
-
-  grouping mpls-header-config {
-    description
-      "Configuration parameters relating to matches within
-      MPLS header fields.";
-
-    leaf traffic-class {
-      type uint8 {
-        range "0..7";
-      }
-      description
-        "The value of the MPLS traffic class (TC) bits,
-        formerly known as the EXP bits.";
-    }
-  }
-
-  grouping ip-protocol-fields-common-config {
-    description
-      "IP protocol fields common to IPv4 and IPv6";
-
-    leaf dscp {
-      type oc-inet:dscp;
-      description
-        "Value of diffserv codepoint.";
-    }
-
-    leaf protocol {
-      type oc-pkt-match-types:ip-protocol-type;
-      description
-        "The protocol carried in the IP packet, expressed either
-        as its IP protocol number, or by a defined identity.";
-    }
-
-    leaf hop-limit {
-      type uint8 {
-        range 0..255;
-      }
-      description
-        "The IP packet's hop limit -- known as TTL (in hops) in
-        IPv4 packets, and hop limit in IPv6";
-    }
-  }
-
-  // IP Layer
-  // ip-protocol-fields
-  grouping ipv4-protocol-fields-config {
-    description
-      "Configuration data of IP protocol fields
-      for IPv4";
-
-    leaf source-address {
-      type oc-inet:ipv4-prefix;
-      description
-        "Source IPv4 address prefix.";
-    }
-
-    leaf destination-address {
-      type oc-inet:ipv4-prefix;
-      description
-        "Destination IPv4 address prefix.";
-    }
-
-    uses ip-protocol-fields-common-config;
-
-  }
-
-  grouping ipv4-protocol-fields-state {
-    description
-      "State information of IP header fields for IPv4";
-  }
-
-  grouping ipv4-protocol-fields-top {
-    description
-      "IP header fields for IPv4";
-
-    container ipv4 {
-      description
-        "Top level container for IPv4 match field data";
-
-      container config {
-        description
-          "Configuration data for IPv4 match fields";
-        uses ipv4-protocol-fields-config;
-      }
-
-      container state {
-        config false;
-        description
-          "State information for IPv4 match fields";
-        uses ipv4-protocol-fields-config;
-        uses ipv4-protocol-fields-state;
-      }
-    }
-  }
-
-  grouping ipv6-protocol-fields-config {
-    description
-      "Configuration data for IPv6 match fields";
-
-    leaf source-address {
-      type oc-inet:ipv6-prefix;
-      description
-        "Source IPv6 address prefix.";
-    }
-
-    leaf source-flow-label {
-      type oc-inet:ipv6-flow-label;
-      description
-        "Source IPv6 Flow label.";
-    }
-
-    leaf destination-address {
-      type oc-inet:ipv6-prefix;
-      description
-        "Destination IPv6 address prefix.";
-    }
-
-    leaf destination-flow-label {
-      type oc-inet:ipv6-flow-label;
-      description
-        "Destination IPv6 Flow label.";
-    }
-
-    uses ip-protocol-fields-common-config;
-  }
-
-  grouping ipv6-protocol-fields-state {
-    description
-      "Operational state data for IPv6 match fields";
-  }
-
-  grouping ipv6-protocol-fields-top {
-    description
-      "Top-level grouping for IPv6 match fields";
-
-    container ipv6 {
-      description
-        "Top-level container for IPv6 match field data";
-
-      container config {
-        description
-          "Configuration data for IPv6 match fields";
-
-        uses ipv6-protocol-fields-config;
-      }
-
-      container state {
-
-        config false;
-
-        description
-          "Operational state data for IPv6 match fields";
-
-        uses ipv6-protocol-fields-config;
-        uses ipv6-protocol-fields-state;
-      }
-    }
-  }
-
-  // Transport fields
-  grouping transport-fields-config {
-    description
-      "Configuration data of transport-layer packet fields";
-
-    leaf source-port {
-      type oc-pkt-match-types:port-num-range;
-      description
-        "Source port or range";
-    }
-
-    leaf destination-port {
-      type oc-pkt-match-types:port-num-range;
-      description
-        "Destination port or range";
-    }
-
-    leaf-list tcp-flags {
-      type identityref {
-        base oc-pkt-match-types:TCP_FLAGS;
-      }
-      description
-        "List of TCP flags to match";
-    }
-  }
-
-  grouping transport-fields-state {
-    description
-      "State data of transport-fields";
-  }
-
-  grouping transport-fields-top {
-    description
-      "Destination transport-fields top level grouping";
-
-    container transport {
-      description
-        "Transport fields container";
-
-      container config {
-        description
-          "Configuration data";
-        uses transport-fields-config;
-      }
-
-      container state {
-        config false;
-        description
-          "State data";
-        uses transport-fields-config;
-        uses transport-fields-state;
-      }
-    }
-  }
-
-}
diff --git a/api/models/openconfig-types.yang b/api/models/openconfig-types.yang
deleted file mode 100644
index 89e32d515da02dea27c95021a1c62f5700d1d493..0000000000000000000000000000000000000000
--- a/api/models/openconfig-types.yang
+++ /dev/null
@@ -1,471 +0,0 @@
-module openconfig-types {
-  yang-version "1";
-
-  namespace "http://openconfig.net/yang/openconfig-types";
-
-  prefix "oc-types";
-
-  // import statements
-  import openconfig-extensions { prefix oc-ext; }
-
-  // meta
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    netopenconfig@googlegroups.com";
-
-  description
-    "This module contains a set of general type definitions that
-    are used across OpenConfig models. It can be imported by modules
-    that make use of these types.";
-
-  oc-ext:openconfig-version "0.6.0";
-
-  revision "2019-04-16" {
-    description
-      "Clarify definition of timeticks64.";
-    reference "0.6.0";
-  }
-
-  revision "2018-11-21" {
-    description
-      "Add OpenConfig module metadata extensions.";
-    reference "0.5.1";
-  }
-
-  revision "2018-05-05" {
-    description
-      "Add grouping of min-max-time and
-       included them to all stats with min/max/avg";
-    reference "0.5.0";
-  }
-
-  revision "2018-01-16" {
-    description
-      "Add interval to min/max/avg stats; add percentage stat";
-    reference "0.4.0";
-  }
-
-  revision "2017-08-16" {
-    description
-      "Apply fix for ieetfloat32 length parameter";
-    reference "0.3.3";
-  }
-
-  revision "2017-01-13" {
-    description
-      "Add ADDRESS_FAMILY identity";
-    reference "0.3.2";
-  }
-
-  revision "2016-11-14" {
-    description
-      "Correct length of ieeefloat32";
-    reference "0.3.1";
-  }
-
-  revision "2016-11-11" {
-    description
-      "Additional types - ieeefloat32 and routing-password";
-    reference "0.3.0";
-  }
-
-  revision "2016-05-31" {
-    description
-      "OpenConfig public release";
-    reference "0.2.0";
-  }
-
-  // OpenConfig specific extensions for module metadata.
-  oc-ext:regexp-posix;
-  oc-ext:catalog-organization "openconfig";
-  oc-ext:origin "openconfig";
-
-  typedef percentage {
-    type uint8 {
-      range "0..100";
-    }
-    description
-      "Integer indicating a percentage value";
-  }
-
-  typedef std-regexp {
-    type string;
-    description
-      "This type definition is a placeholder for a standard
-      definition of a regular expression that can be utilised in
-      OpenConfig models. Further discussion is required to
-      consider the type of regular expressions that are to be
-      supported. An initial proposal is POSIX compatible.";
-  }
-
-  typedef timeticks64 {
-    type uint64;
-    units "nanoseconds";
-    description
-     "The timeticks64 represents the time, modulo 2^64 in
-     nanoseconds between two epochs. The leaf using this
-     type must define the epochs that tests are relative to.";
-  }
-
-  typedef ieeefloat32 {
-    type binary {
-      length "4";
-    }
-    description
-      "An IEEE 32-bit floating point number. The format of this number
-      is of the form:
-        1-bit  sign
-        8-bit  exponent
-        23-bit fraction
-      The floating point value is calculated using:
-        (-1)**S * 2**(Exponent-127) * (1+Fraction)";
-  }
-
-  typedef routing-password {
-    type string;
-    description
-      "This type is indicative of a password that is used within
-      a routing protocol which can be returned in plain text to the
-      NMS by the local system. Such passwords are typically stored
-      as encrypted strings. Since the encryption used is generally
-      well known, it is possible to extract the original value from
-      the string - and hence this format is not considered secure.
-      Leaves specified with this type should not be modified by
-      the system, and should be returned to the end-user in plain
-      text. This type exists to differentiate passwords, which
-      may be sensitive, from other string leaves. It could, for
-      example, be used by the NMS to censor this data when
-      viewed by particular users.";
-  }
-
-  typedef stat-interval {
-    type uint64;
-    units nanoseconds;
-    description
-      "A time interval over which a set of statistics is computed.
-      A common usage is to report the interval over which
-      avg/min/max stats are computed and reported.";
-  }
-
-  grouping stat-interval-state {
-    description
-      "Reusable leaf definition for stats computation interval";
-
-    leaf interval {
-      type oc-types:stat-interval;
-      description
-        "If supported by the system, this reports the time interval
-        over which the min/max/average statistics are computed by
-        the system.";
-    }
-  }
-
-  grouping min-max-time {
-    description
-      "Common grouping for recording the absolute time at which
-      the minimum and maximum values occurred in the statistics";
-
-    leaf min-time {
-      type oc-types:timeticks64;
-      description
-        "The absolute time at which the minimum value occurred.
-         The value is the timestamp in nanoseconds relative to
-          the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-    }
-
-    leaf max-time {
-      type oc-types:timeticks64;
-      description
-        "The absolute time at which the maximum value occurred.
-         The value is the timestamp in nanoseconds relative to
-          the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-    }
-  }
-
-  grouping avg-min-max-stats-precision1 {
-    description
-      "Common nodes for recording average, minimum, and
-      maximum values for a statistic.  These values all have
-      fraction-digits set to 1.  Statistics are computed
-      and reported based on a moving time interval (e.g., the last
-      30s).  If supported by the device, the time interval over which
-      the statistics are computed is also reported.";
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The arithmetic mean value of the statistic over the
-        time interval.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The minimum value of the statistic over the time
-        interval.";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The maximum value of the statitic over the time
-        interval.";
-    }
-
-    uses stat-interval-state;
-    uses min-max-time;
-  }
-
-  grouping avg-min-max-instant-stats-precision1 {
-    description
-      "Common grouping for recording an instantaneous statistic value
-      in addition to avg-min-max stats";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 1;
-      }
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    uses avg-min-max-stats-precision1;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dB {
-    description
-      "Common grouping for recording dB values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics.  Statistics are computed
-      and reported based on a moving time interval (e.g., the last
-      30s).  If supported by the device, the time interval over which
-      the statistics are computed, and the times at which the minimum
-      and maximum values occurred, are also reported.";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The arithmetic mean value of the statistic over the
-        time interval.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The minimum value of the statistic over the time interval.";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dB;
-      description
-        "The maximum value of the statistic over the time
-        interval.";
-    }
-
-    uses stat-interval-state;
-    uses min-max-time;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-dBm {
-    description
-      "Common grouping for recording dBm values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics.  Statistics are computed
-      and reported based on a moving time interval (e.g., the last
-      30s).  If supported by the device, the time interval over which
-      the statistics are computed, and the times at which the minimum
-      and maximum values occurred, are also reported.";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The arithmetic mean value of the statistic over the
-        time interval.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The minimum value of the statistic over the time
-        interval.";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units dBm;
-      description
-        "The maximum value of the statistic over the time interval.";
-    }
-
-    uses stat-interval-state;
-    uses min-max-time;
-  }
-
-  grouping avg-min-max-instant-stats-precision2-mA {
-    description
-      "Common grouping for recording mA values with 2 decimal
-      precision. Values include the instantaneous, average,
-      minimum, and maximum statistics.  Statistics are computed
-      and reported based on a moving time interval (e.g., the last
-      30s).  If supported by the device, the time interval over which
-      the statistics are computed, and the times at which the minimum
-      and maximum values occurred, are also reported.";
-
-    leaf instant {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The instantaneous value of the statistic.";
-    }
-
-    leaf avg {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The arithmetic mean value of the statistic over the
-        time interval.";
-    }
-
-    leaf min {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The minimum value of the statistic over the time
-        interval.";
-    }
-
-    leaf max {
-      type decimal64 {
-        fraction-digits 2;
-      }
-      units mA;
-      description
-        "The maximum value of the statistic over the time
-        interval.";
-    }
-
-    uses stat-interval-state;
-    uses min-max-time;
-  }
-
-  grouping avg-min-max-instant-stats-pct {
-    description
-      "Common grouping for percentage statistics.
-      Values include the instantaneous, average,
-      minimum, and maximum statistics.  Statistics are computed
-      and reported based on a moving time interval (e.g., the last
-      30s).  If supported by the device, the time interval over which
-      the statistics are computed, and the times at which the minimum
-      and maximum values occurred, are also reported.";
-
-    leaf instant {
-      type oc-types:percentage;
-      description
-        "The instantaneous percentage value.";
-    }
-
-    leaf avg {
-      type oc-types:percentage;
-      description
-        "The arithmetic mean value of the percentage measure of the
-        statistic over the time interval.";
-    }
-
-    leaf min {
-      type oc-types:percentage;
-      description
-        "The minimum value of the percentage measure of the
-        statistic over the time interval.";
-    }
-
-    leaf max {
-      type oc-types:percentage;
-      description
-        "The maximum value of the percentage measure of the
-        statistic over the time interval.";
-    }
-
-    uses stat-interval-state;
-    uses min-max-time;
-  }
-
-  identity ADDRESS_FAMILY {
-    description
-      "A base identity for all address families";
-  }
-
-  identity IPV4 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv4 address family";
-  }
-
-  identity IPV6 {
-    base ADDRESS_FAMILY;
-    description
-      "The IPv6 address family";
-  }
-
-  identity MPLS {
-    base ADDRESS_FAMILY;
-    description
-      "The MPLS address family";
-  }
-
-  identity L2_ETHERNET {
-    base ADDRESS_FAMILY;
-    description
-      "The 802.3 Ethernet address family";
-  }
-
-}
diff --git a/api/models/openconfig-yang-types.yang b/api/models/openconfig-yang-types.yang
deleted file mode 100644
index 4021d9d5b89454443e55418cfd75da8bee2a1d32..0000000000000000000000000000000000000000
--- a/api/models/openconfig-yang-types.yang
+++ /dev/null
@@ -1,206 +0,0 @@
-module openconfig-yang-types {
-
-  yang-version "1";
-  namespace "http://openconfig.net/yang/types/yang";
-  prefix "oc-yang";
-
-  import openconfig-extensions { prefix "oc-ext"; }
-
-  organization
-    "OpenConfig working group";
-
-  contact
-    "OpenConfig working group
-    www.openconfig.net";
-
-  description
-    "This module contains a set of extension types to the
-    YANG builtin types that are used across multiple
-    OpenConfig models.
-
-    Portions of this code were derived from IETF RFC 6021.
-    Please reproduce this note if possible.
-
-    IETF code is subject to the following copyright and license:
-    Copyright (c) IETF Trust and the persons identified as authors of
-    the code.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, is permitted pursuant to, and subject to the license
-    terms contained in, the Simplified BSD License set forth in
-    Section 4.c of the IETF Trust's Legal Provisions Relating
-    to IETF Documents (http://trustee.ietf.org/license-info).";
-
-  oc-ext:openconfig-version "0.2.2";
-
-  revision "2020-06-30" {
-    description
-      "Add OpenConfig POSIX pattern extensions.";
-    reference "0.2.2";
-  }
-
-  revision "2018-11-21" {
-    description
-      "Add OpenConfig module metadata extensions.";
-    reference "0.2.1";
-  }
-
-  revision 2018-04-24 {
-    description
-      "Add date typedef";
-    reference "0.2.0";
-  }
-
-  revision 2017-07-30 {
-    description
-      "Fixed unprintable character";
-    reference "0.1.2";
-  }
-
-  revision 2017-04-03 {
-    description
-      "Update copyright notice.";
-    reference "0.1.1";
-  }
-
-  revision 2017-01-26 {
-    description
-      "Initial module for inet types";
-    reference "0.1.0";
-  }
-
-  // OpenConfig specific extensions for module metadata.
-  oc-ext:regexp-posix;
-  oc-ext:catalog-organization "openconfig";
-  oc-ext:origin "openconfig";
-
-  typedef dotted-quad {
-    type string {
-      pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'       +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
-              '[0-9]|25[0-5])$';
-      oc-ext:posix-pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|'       +
-              '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4]' +
-              '[0-9]|25[0-5])$';
-    }
-    description
-      "An unsigned 32-bit integer expressed as a dotted quad. The
-      format is four octets written as decimal numbers separated
-      with a period character.";
-  }
-
-  typedef hex-string {
-    type string {
-      pattern '^[0-9a-fA-F]*$';
-      oc-ext:posix-pattern '^[0-9a-fA-F]*$';
-    }
-    description
-      "A string consisting of a hexadecimal characters.";
-  }
-
-  typedef counter32 {
-    type uint32;
-    description
-
-      "A 32-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When the counter
-      reaches its maximum value, in this case 2^32-1, it wraps to 0.
-
-      Discontinuities in the counter are generally triggered only when
-      the counter is reset to zero.";
-  }
-
-  typedef counter64 {
-    type uint64;
-    description
-      "A 64-bit counter. A counter value is a monotonically increasing
-      value which is used to express a count of a number of
-      occurrences of a particular event or entity. When a counter64
-      reaches its maximum value, 2^64-1, it loops to zero.
-      Discontinuities in a counter are generally triggered only when
-      the counter is reset to zero, through operator or system
-      intervention.";
-  }
-
-  typedef date-and-time {
-    type string {
-      pattern
-        '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}' +
-        '(\.[0-9]+)?Z[+-][0-9]{2}:[0-9]{2}$';
-      oc-ext:posix-pattern
-        '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}' +
-        '(\.[0-9]+)?Z[+-][0-9]{2}:[0-9]{2}$';
-    }
-    description
-      "A date and time, expressed in the format described in RFC3339.
-      That is to say:
-
-      YYYY-MM-DDTHH:MM:SSZ+-hh:mm
-
-      where YYYY is the year, MM is the month expressed as a two-digit
-      month (zero padding if required), DD is the day of the month,
-      expressed as a two digit value. T is the literal character 'T',
-      HH is the hour of the day expressed as a two digit number, using
-      the 24-hour clock, MM is the minute of the hour expressed as a
-      two digit number. Z is the literal character 'Z', followed by a
-      timezone offset expressed in hours (hh) and minutes (mm), both
-      expressed as two digit numbers. The time offset is specified as
-      a positive or negative offset to UTC using the '+' or '-'
-      character preceding the offset.
-
-      Optionally, fractional seconds can be expressed after the minute
-      of the hour as a decimal number of unspecified precision
-      reflecting fractions of a second.";
-    reference
-      "RFC3339 - Date and Time on the Internet: Timestamps";
-  }
-
-  typedef date {
-    type string {
-      pattern '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$';
-      oc-ext:posix-pattern '^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$';
-    }
-    description
-      "A full UTC date, expressed in the format described in RFC3339.
-      That is to say:
-
-      YYYY-MM-DD
-
-      where YYYY is the year, MM is the month expressed as a two-digit
-      month (zero padding if required), DD is the day of the month,
-      expressed as a two digit value.";
-
-    reference
-      "RFC3339 - Date and Time on the Internet: full-date";
-  }
-
-  typedef gauge64 {
-    type uint64;
-    description
-      "A gauge value may increase or decrease - and reflects a value
-      at a particular point in time. If the value of the variable
-      being modeled using the gauge exceeds its maximum - 2^64-1 in
-      this case - the gauge is set to its maximum value.";
-  }
-
-  typedef phys-address {
-    type string {
-      pattern '^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?$';
-      oc-ext:posix-pattern '^([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?$';
-    }
-    description
-      "A physical layer address, expressed as a series of pairs of
-      hexadecimal digits.";
-  }
-
-  typedef mac-address {
-    type string {
-      pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$';
-      oc-ext:posix-pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$';
-    }
-    description
-      "An IEEE 802 MAC address";
-  }
-}