ietf-yang-push

This module contains conceptual YANG specifications for YANG push.

  • Version: 2021-03-01

    ietf-yang-push@2021-03-01


    
      module ietf-yang-push {
    
        yang-version 1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-yang-push";
    
        prefix yp;
    
        import ietf-inet-types {
          prefix inet;
        }
        import ietf-yang-types {
          prefix yang;
        }
        import ietf-event-notifications {
          prefix notif-bis;
        }
    
        organization "IETF";
    
        contact
          "WG Web:   <http://tools.ietf.org/wg/netconf/>
           WG List:  <mailto:netconf@ietf.org>
    
           WG Chair: Mahesh Jethanandani
                     <mailto:mjethanandani@gmail.com>
    
           WG Chair: Mehmet Ersue
                     <mailto:mehmet.ersue@nokia.com>
    
           Editor:   Alexander Clemm
                     <mailto:alex@sympotech.com>
    
           Editor:   Eric Voit
                     <mailto:evoit@cisco.com>
    
           Editor:   Alberto Gonzalez Prieto
                     <mailto:albertgo@cisco.com>
    
           Editor:   Ambika Prasad Tripathy
                     <mailto:ambtripa@cisco.com>
    
           Editor:   Einar Nilsen-Nygaard
                     <mailto:einarnn@cisco.com>
    
           Editor:   Andy Bierman
                     <mailto:andy@yumaworks.com>
    
           Editor:   Balazs Lengyel
                     <mailto:balazs.lengyel@ericsson.com>";
    
        description
          "This module contains conceptual YANG specifications
           for YANG push.";
    
        revision "2021-03-01" {
          description
            "Correct datastore-*-string to datastore-*-xml";
        }
    
        revision "2016-10-28" {
          description
            "Updates to simplify modify-subscription, add anchor-time";
          reference
            "YANG Datastore Push, draft-ietf-netconf-yang-push-04";
    
        }
    
    
        feature on-change {
          description
            "This feature indicates that on-change updates are
             supported.";
        }
    
        identity error-data-not-authorized {
          base notif-bis:error;
          description
            "No read authorization for a requested data node.";
        }
    
        identity yang-push {
          base notif-bis:stream;
          description
            "A conceptual datastream consisting of all datastore
             updates, including operational and configuration data.";
        }
    
        identity custom-stream {
          base notif-bis:stream;
          description
            "A conceptual datastream for datastore
             updates with custom updates as defined by a user.";
        }
    
        identity http2 {
          base notif-bis:transport;
          description
            "HTTP2 notifications as a transport";
        }
    
        typedef filter-id {
          type uint32;
          description
            "A type to identify filters which can be associated with a
             subscription.";
        }
    
        typedef change-type {
          type enumeration {
            enum "create" {
              value 0;
              description
                "A new data node was created";
            }
            enum "delete" {
              value 1;
              description
                "A data node was deleted";
            }
            enum "modify" {
              value 2;
              description
                "The value of a data node has changed";
            }
          }
          description
            "Specifies different types of changes that may occur
             to a datastore.";
        }
    
        notification push-update {
          description
            "This notification contains a push update, containing
             data subscribed to via a subscription.
             This notification is sent for periodic updates, for a
             periodic subscription.  It can also be used for
             synchronization updates of an on-change subscription.
             This notification shall only be sent to receivers
             of a subscription; it does not constitute a general-purpose
             notification.";
          leaf subscription-id {
            type notif-bis:subscription-id;
            mandatory true;
            description
              "This references the subscription because of which the
               notification is sent.";
          }
    
          leaf time-of-update {
            type yang:date-and-time;
            description
              "This leaf contains the time of the update.";
          }
    
          leaf updates-not-sent {
            type empty;
            description
              "This is a flag which indicates that not all data nodes
               subscribed to are included included with this
               update.  In other words, the publisher has failed to
               fulfill its full subscription obligations.
               This may lead to intermittent loss of synchronization
               of data at the client.  Synchronization at the client
               can occur when the next push-update is received.";
          }
    
          anyxml datastore-contents-xml {
            description
              "This contains the updated data.  It constitutes a snapshot
               at the time-of-update of the set of data that has been
               subscribed to.  The format and syntax of the data
               corresponds to the format and syntax of data that would be
               returned in a corresponding get operation with the same
               filter parameters applied.";
          }
        }  // notification push-update
    
        notification push-change-update {
          if-feature on-change;
          description
            "This notification contains an on-change push update.
             This notification shall only be sent to the receivers
             of a subscription; it does not constitute a general-purpose
             notification.";
          leaf subscription-id {
            type notif-bis:subscription-id;
            mandatory true;
            description
              "This references the subscription because of which the
               notification is sent.";
          }
    
          leaf time-of-update {
            type yang:date-and-time;
            description
              "This leaf contains the time of the update, i.e. the
               time at which the change was observed.";
          }
    
          leaf updates-not-sent {
            type empty;
            description
              "This is a flag which indicates that not all changes which
               have occured since the last update are included with this
               update.  In other words, the publisher has failed to
               fulfill its full subscription obligations, for example in
               cases where it was not able to keep up with a change burst.
               To facilitate synchronization, a publisher MAY subsequently
               send a push-update containing a full snapshot of subscribed
               data. Such a push-update might also be triggered by a
               subscriber requesting an on-demand synchronization.";
          }
    
          anyxml datastore-changes-xml {
            description
              "This contains datastore contents that has changed
               since the previous update, per the terms of the
               subscription.  Changes are encoded analogous to
               the syntax of a corresponding yang-patch operation,
               i.e. a yang-patch operation applied to the YANG datastore
               implied by the previous update to result in the current
               state (and assuming yang-patch could also be applied to
               operational data).";
          }
        }  // notification push-change-update
      }  // module ietf-yang-push
    

© 2023 YumaWorks, Inc. All rights reserved.