module ietf-template {

    // replace this string with a unique namespace URN value
    namespace
      "urn:ietf:params:xml:ns:yang:ietf-template";

    // replace this string, and try to pick a unique prefix
    prefix "temp";

    // import statements here: e.g.,
    // import ietf-yang-types { prefix yang; }
    // import ietf-inet-types { prefix inet; }

    // identify the IETF working group if applicable
    organization
       "IETF NETMOD (NETCONF Data Modeling Language) Working Group";

    // update this contact statement with your info
    contact
       "WG Web:   <http://tools.ietf.org/wg/your-wg-name/>
        WG List:  <mailto:your-wg-name@ietf.org>

        WG Chair: your-WG-chair
                  <mailto:your-WG-chair@example.com>

        Editor:   your-name
                  <mailto:your-email@example.com>";

    // replace the first sentence in this description statement.
    // replace the copyright notice with the most recent
    // version, if it has been updated since the publication
    // of this document
    description
     "This module defines a template for other YANG modules.

      Copyright (c) <insert year> 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 XXXX; see
      the RFC itself for full legal notices.";

    // RFC Ed.: replace XXXX with actual RFC number and remove this note

    reference "RFC XXXX";

    // RFC Ed.: remove this note
    // Note: extracted from RFC 6087

    // replace '2010-05-18' with the module publication date
    // The format is (year-month-day)
    revision "2010-05-18" {
      description
        "Initial version";
    }

    // extension statements

    // feature statements

    // identity statements

    // typedef statements

    // grouping statements

    // data definition statements

    // augment statements

    // rpc statements

    // notification statements

    // DO NOT put deviation statements in a published module

}
