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";
        }
      }
    }
  }
}
