This module contains conceptual YANG specifications for YANG push.
Version: 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.