diff --git a/models/common/src/main/yang/ietf-snmp-ssh@2014-12-10.yang b/models/common/src/main/yang/ietf-snmp-ssh@2014-12-10.yang
new file mode 100644
index 0000000..e7a5eac
--- /dev/null
+++ b/models/common/src/main/yang/ietf-snmp-ssh@2014-12-10.yang
@@ -0,0 +1,145 @@
+submodule ietf-snmp-ssh {
+
+  belongs-to ietf-snmp {
+    prefix snmp;
+  }
+
+  import ietf-inet-types {
+    prefix inet;
+  }
+
+  include ietf-snmp-common;
+  include ietf-snmp-engine;
+  include ietf-snmp-target;
+
+  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: Thomas Nadeau
+               <mailto:tnadeau@lucidvision.com>
+
+     WG Chair: Juergen Schoenwaelder
+               <mailto:j.schoenwaelder@jacobs-university.de>
+
+     Editor:   Martin Bjorklund
+               <mailto:mbj@tail-f.com>
+
+     Editor:   Juergen Schoenwaelder
+               <mailto:j.schoenwaelder@jacobs-university.de>";
+
+  description
+    "This submodule contains a collection of YANG definitions for
+     configuring the Secure Shell Transport Model (SSHTM)
+     of SNMP.
+
+     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).
+
+     This version of this YANG module is part of RFC 7407; see
+     the RFC itself for full legal notices.";
+
+  reference
+    "RFC 5592: Secure Shell Transport Model for the
+       Simple Network Management Protocol (SNMP)";
+
+  revision 2014-12-10 {
+    description
+      "Initial revision.";
+    reference
+      "RFC 7407: A YANG Data Model for SNMP Configuration";
+  }
+
+  feature sshtm {
+    description
+      "A server implements this feature if it supports the
+      Secure Shell Transport Model for SNMP.";
+    reference
+      "RFC 5592: Secure Shell Transport Model for the
+         Simple Network Management Protocol (SNMP)";
+  }
+
+  augment /snmp:snmp/snmp:engine/snmp:listen/snmp:transport {
+    if-feature sshtm;
+    case ssh {
+      container ssh {
+        description
+          "The IPv4 or IPv6 address and port to which the
+           engine listens for SNMP messages over SSH.";
+
+        leaf ip {
+          type inet:ip-address;
+          mandatory true;
+          description
+            "The IPv4 or IPv6 address on which the engine listens
+             for SNMP messages over SSH.";
+        }
+        leaf port {
+          type inet:port-number;
+          description
+            "The TCP port on which the engine listens for SNMP
+             messages over SSH.
+
+             If the port is not configured, an engine that
+             acts as a Command Responder uses port 5161, and
+             an engine that acts as a Notification Receiver
+             uses port 5162.";
+        }
+      }
+    }
+  }
+
+  augment /snmp:snmp/snmp:target/snmp:transport {
+    if-feature sshtm;
+    case ssh {
+      reference
+        "RFC 5592: Secure Shell Transport Model for the
+           Simple Network Management Protocol (SNMP).
+           SNMP-SSH-TM-MIB.snmpSSHDomain";
+      container ssh {
+        leaf ip {
+          type inet:host;
+          mandatory true;
+          reference
+            "RFC 3413: Simple Network Management Protocol (SNMP).
+               Applications.
+               SNMP-TARGET-MIB.snmpTargetAddrTAddress
+             RFC 5592: Secure Shell Transport Model for the
+               Simple Network Management Protocol (SNMP).
+               SNMP-SSH-TM-MIB.SnmpSSHAddress";
+        }
+        leaf port {
+          type inet:port-number;
+          default 5161;
+          reference
+            "RFC 3413: Simple Network Management Protocol (SNMP).
+               Applications.
+               SNMP-TARGET-MIB.snmpTargetAddrTAddress
+             RFC 5592: Secure Shell Transport Model for the
+               Simple Network Management Protocol (SNMP).
+               SNMP-SSH-TM-MIB.SnmpSSHAddress";
+        }
+        leaf username {
+          type string;
+          reference
+            "RFC 3413: Simple Network Management Protocol (SNMP).
+               Applications.
+               SNMP-TARGET-MIB.snmpTargetAddrTAddress
+             RFC 5592: Secure Shell Transport Model for the
+               Simple Network Management Protocol (SNMP).
+               SNMP-SSH-TM-MIB.SnmpSSHAddress";
+        }
+      }
+    }
+  }
+}
