netconfcentral logo

yuma-time-filter.yang



  module yuma-time-filter {

    yang-version 1;

    namespace
      "http://netconfcentral.org/ns/yuma-time-filter";

    prefix timefilter;

    import ietf-yang-types {
      prefix yang;
    }
    import ietf-netconf-monitoring {
      prefix mon;
    }
    import yuma-netconf {
      prefix nc;
    }

    organization "Netconf Central";

    contact
      "Andy Bierman <andy@netconfcentral.org>.";

    description
      "Yuma <datastore> extension for optimizing datastore
       polling mechanisms by allowing the client to
       request datastore content only if it has been modified since
       a specified date and time.

       If the netconfd server advertises this module then
       the 'last-modified' XML attribute will be added
       to the <rpc-reply> element if there was no 'last-modified'
       attribute in the <rpc> element.  This is only done
       for the NETCONF <get> and <get-config> protocol operations.

       Example:

       <rpc message-id='2' 
           xmlns='urn:ietf:params:xml:ns:netconf:base:1.0'>
         <get />
       </rpc>

       <rpc-reply message-id='2' 
          last-modified='2011-08-14T00:16:49Z'
          xmlns='urn:ietf:params:xml:ns:netconf:base:1.0'>
         <data> ... </data>
       </rpc-reply>
      ";

    reference
      "RFC 2616: Last-Modified and If-Modified-Since headers";


    revision "2011-08-13" {
      description "Initial version.";
    }


    augment /mon:netconf-state/mon:datastores/mon:datastore {
      leaf last-modified {
        type yang:date-and-time;
        description
          "The date and time when the server last detected
           that the datastore was changed, or last initialized
           if no changes have been made.  Note that state data
           is not included in a datastore, and modifications
           to state data do not affect this timestamp.";
      }
    }

    grouping if-modified-since-parm {
      leaf if-modified-since {
        type yang:date-and-time;
        description
          "If this parameter is present, then the server will
           only process the retrieval request if the
           corresponding 'last-modified' timestamp is
           more recent than this timestamp. If so, then the
           retrieval request is processed as normal.
           If not, an empty <data> element will be returned.";
      }
    }  // grouping if-modified-since-parm

    augment /nc:get-config/nc:input {
      uses if-modified-since-parm;
    }

    augment /nc:get/nc:input {
      uses if-modified-since-parm;
    }
  }  // module yuma-time-filter