Cisco-IOS-XE-mdt-capabilities-oper

This module contains a collection of YANG definitions for advertising the notification capabilities of the system with respect t...

  • Version: 2021-07-01

    Cisco-IOS-XE-mdt-capabilities-oper@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.