This module contains a collection of YANG definitions for advertising the notification capabilities of the system with respect t...
Version: 2021-07-01
module Cisco-IOS-XE-mdt-capabilities-oper { yang-version 1; namespace "http://cisco.com/ns/yang/Cisco-IOS-XE-mdt-capabilities-oper"; prefix mdt-caps-ios-xe-oper; import cisco-semver { prefix cisco-semver; } organization "Cisco Systems, Inc."; contact "Cisco Systems, Inc. Customer Service Postal: 170 W Tasman Drive San Jose, CA 95134 Tel: +1 1800 553-NETS E-mail: cs-yang@cisco.com"; description "This module contains a collection of YANG definitions for advertising the notification capabilities of the system with respect to streaming telemetry on the YANG-Push stream. Capabilities can be specified at the system level, or for specific nodes (and their children) of a specific datastore. Capabilities specified on a per-node basis override the system level capabilities. Capabilities can also vary by the transport that is used to subscribe for notifications. A node may support a particular capability in general, but also have transport-specific exceptions. If the user wishes to find the value of a capability for a particular node, they should: 1) Search for the desired datastore in the mdt-datastore-capabilities list. 2) If an entry is found, search for the desired transport in the mdt-transport-capabilities list (if the transport-specific capabilities are desired). If the transport is found, iterate through the per-node-capabilities entries for the transport, in the order they appear in the list. The first entry that has an \"is-valid\" leaf for the capability, and has a filter selecting the desired node, specifies the capability value. 3) If the capability is not found for the transport (or if the transport-independent capabilities are desired), iterate through the per-node-capabilities list for the datastore, in the same manner as in step 2. 4) If the capability value is not found, use the system-level value for the capability, if it has an \"is-valid\" leaf. 5) If the capability is not found in the previous steps, then the system does not specify a value for that capability. Copyright (c) 2021 by Cisco Systems, Inc. All rights reserved."; revision "2021-07-01" { description "Initial revision"; reference "1.0.0"; } cisco-semver:module-version "1.0.0"; typedef mdt-cap-transport-support { type enumeration { enum "mdt-cap-transport-netconf" { value 0; description "NETCONF transport."; } enum "mdt-cap-transport-gnmi" { value 1; description "gNMI transport."; } enum "mdt-cap-transport-grpc" { value 2; description "gRPC transport."; } } description "Indicates the transports that have exceptions to the general per-node capabilities."; } typedef mdt-cap-datastore-type { type enumeration { enum "mdt-cap-ds-running" { value 0; description "The running configuration datastore."; } } description "Indicates the datastore for which capabilities are specified."; } typedef mdt-cap-notif-support { type bits { bit mdt-cap-notif-config { position 0; description "Notifications are supported for config=true nodes."; } bit mdt-cap-notif-state { position 1; description "Notifications are supported for config=false nodes."; } } description "Indicates the types of nodes for which notifications are supported. This can be none, only config=true, only config=false, or all nodes. This has no effect if it indicates a value which does not apply to the selected nodes."; } grouping mdt-sub-caps { description "Notification capabilities for subscriptions on the YANG-Push stream."; leaf periodic-is-valid { type empty; description "When present, periodic notification capabilities are specified for the selected nodes and their children."; } leaf on-change-is-valid { type empty; description "When present, on-change notification capabilities are specified for the selected nodes and their children."; } leaf periodic-supported { when 'boolean(../periodic-is-valid)'; type mdt-cap-notif-support; description "Indicates whether periodic notifications are supported for the selected nodes and their children."; } leaf on-change-supported { when 'boolean(../on-change-is-valid)'; type mdt-cap-notif-support; description "Indicates whether on-change notifications are supported for the selected nodes and their children."; } } // grouping mdt-sub-caps grouping mdt-per-node-cap { description "Notification capabilities for the nodes selected by a particular filter, and their children."; leaf index { type uint16; description "The precedence of the filter. A lower value indicates a higher precedence."; } container sub-caps { description "The set of notification capabilities for the nodes selected by the filter."; uses mdt-caps-ios-xe-oper:mdt-sub-caps; } // container sub-caps choice filter-type-choice { description "The type of filter used to select the nodes for which capabilities are specified."; case sub-filter-type-xpath { description "Xpath filter type."; leaf xpath { type string; description "Xpath filter type."; } } // case sub-filter-type-xpath } // choice filter-type-choice } // grouping mdt-per-node-cap grouping mdt-transport-cap { description "Notification capabilities for a particular transport."; leaf transport { type mdt-cap-transport-support; description "The transport for which capabilities are specified."; } list mdt-transport-per-node { key "index"; description "Transport-specific notification capabilities specified on a per-node basis. Entries are in order of precedence."; uses mdt-caps-ios-xe-oper:mdt-per-node-cap; } // list mdt-transport-per-node } // grouping mdt-transport-cap grouping mdt-datastore-cap { description "Notification capabilities for a particular datastore."; leaf datastore { type mdt-cap-datastore-type; description "The datastore for which capabilities are specified."; } list mdt-per-node { key "index"; description "Notification capabilities specified on a per-node basis. Entries are in order of precedence."; uses mdt-caps-ios-xe-oper:mdt-per-node-cap; } // list mdt-per-node list mdt-transport { key "transport"; description "Transport-specific exceptions which take precedence over the general per-node capabilities for the datastore."; uses mdt-caps-ios-xe-oper:mdt-transport-cap; } // list mdt-transport } // grouping mdt-datastore-cap grouping mdt-system-cap { description "System capabilities, to be taken as the default when the capability is not specified on a per-node basis."; container sub-caps { description "The set of notification capabilities at the system level."; uses mdt-caps-ios-xe-oper:mdt-sub-caps; } // container sub-caps list mdt-datastore { key "datastore"; description "Notification capabilities specified by datastore."; uses mdt-caps-ios-xe-oper:mdt-datastore-cap; } // list mdt-datastore } // grouping mdt-system-cap container mdt-capabilities-oper-data { config false; description "MDT capabilities operational data."; container mdt-system { presence "mdt-system"; description "System capabilities, to be taken as the default when the capability is not specified on a per-node basis."; uses mdt-caps-ios-xe-oper:mdt-system-cap; } // container mdt-system } // container mdt-capabilities-oper-data } // module Cisco-IOS-XE-mdt-capabilities-oper
© 2023 YumaWorks, Inc. All rights reserved.