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.";
        }
    
        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.";
            container sub-caps {
              description
                "The set of notification capabilities at the system
    level.";
              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.";
              }
            }  // container sub-caps
    
            list mdt-datastore {
              key "datastore";
              description
                "Notification capabilities specified by 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.";
                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.";
                  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.";
                  }
                }  // 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
              }  // 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.";
                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.";
                  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.";
                    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.";
                    }
                  }  // 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
                }  // list mdt-transport-per-node
              }  // list mdt-transport
            }  // list mdt-datastore
          }  // container mdt-system
        }  // container mdt-capabilities-oper-data
      }  // module Cisco-IOS-XE-mdt-capabilities-oper
    

© 2023 YumaWorks, Inc. All rights reserved.