ietf-yang-schema-mount

This module defines a YANG extension statement that can be used to incorporate data models defined in other YANG modules in a mo...

  • Version: 2019-01-14

    ietf-yang-schema-mount@2019-01-14


    
      module ietf-yang-schema-mount {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-yang-schema-mount";
    
        prefix yangmnt;
    
        import ietf-inet-types {
          prefix inet;
          reference
            "RFC 6991: Common YANG Data Types";
    
    
        }
        import ietf-yang-types {
          prefix yang;
          reference
            "RFC 6991: Common YANG Data Types";
    
    
        }
    
        organization
          "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
    WG List:  <mailto:netmod@ietf.org>
    
    Editor:   Martin Bjorklund
    	  <mailto:mbj@tail-f.com>
    
    Editor:   Ladislav Lhotka
    	  <mailto:lhotka@nic.cz>";
    
        description
          "This module defines a YANG extension statement that can be used
    to incorporate data models defined in other YANG modules in a
    module.  It also defines operational state data that specify the
    overall structure of the data model.
    
    The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
    NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
    'MAY', and 'OPTIONAL' in this document are to be interpreted as
    described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
    they appear in all capitals, as shown here.
    
    Copyright (c) 2019 IETF Trust and the persons identified as
    authors of the code.  All rights reserved.
    
    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject to
    the license terms contained in, the Simplified BSD License set
    forth in Section 4.c of the IETF Trust's Legal Provisions
    Relating to IETF Documents
    (https://trustee.ietf.org/license-info).
    
    This version of this YANG module is part of RFC 8528;
    see the RFC itself for full legal notices.";
    
        revision "2019-01-14" {
          description "Initial revision.";
          reference
            "RFC 8528: YANG Schema Mount";
    
        }
    
    
        extension mount-point {
          argument "label" {
            yin-element false;
          }
          description
            "The argument 'label' is a YANG identifier, i.e., it is of the
    type 'yang:yang-identifier'.
    
    The 'mount-point' statement MUST NOT be used in a YANG
    version 1 module, neither explicitly nor via a 'uses'
    statement.
    The 'mount-point' statement MAY be present as a substatement
    of 'container' and 'list' and MUST NOT be present elsewhere.
    There MUST NOT be more than one 'mount-point' statement in a
    given 'container' or 'list' statement.
    
    If a mount point is defined within a grouping, its label is
    bound to the module where the grouping is used.
    
    A mount point defines a place in the node hierarchy where
    other data models may be attached.  A server that implements a
    module with a mount point populates the
    '/schema-mounts/mount-point' list with detailed information on
    which data models are mounted at each mount point.
    
    Note that the 'mount-point' statement does not define a new
    data node.";
        }
    
        container schema-mounts {
          config false;
          description
            "Contains information about the structure of the overall
    mounted data model implemented in the server.";
          list namespace {
            key "prefix";
            description
              "This list provides a mapping of namespace prefixes that are
    used in XPath expressions of 'parent-reference' leafs to the
    corresponding namespace URI references.";
            leaf prefix {
              type yang:yang-identifier;
              description "Namespace prefix.";
            }
    
            leaf uri {
              type inet:uri;
              description
                "Namespace URI reference.";
            }
          }  // list namespace
    
          list mount-point {
            key "module label";
            description
              "Each entry of this list specifies a schema for a particular
    mount point.
    
    Each mount point MUST be defined using the 'mount-point'
    extension in one of the modules listed in the server's
    YANG library instance with conformance type 'implement'.";
            leaf module {
              type yang:yang-identifier;
              description
                "Name of a module containing the mount point.";
            }
    
            leaf label {
              type yang:yang-identifier;
              description
                "Label of the mount point defined using the 'mount-point'
    extension.";
            }
    
            leaf config {
              type boolean;
              default "true";
              description
                "If this leaf is set to 'false', then all data nodes in the
    mounted schema are read-only ('config false'), regardless
    of their 'config' property.";
            }
    
            choice schema-ref {
              mandatory true;
              description
                "Alternatives for specifying the schema.";
              container inline {
                presence
                  "A complete self-contained schema is mounted at the
    mount point.";
                description
                  "This node indicates that the server has mounted at least
    the module 'ietf-yang-library' at the mount point, and
    its instantiation provides the information about the
    mounted schema.
    
    Different instances of the mount point may have
    different schemas mounted.";
              }  // container inline
              container shared-schema {
                presence
                  "The mounted schema together with the 'parent-reference'
    make up the schema for this mount point.";
                description
                  "This node indicates that the server has mounted at least
    the module 'ietf-yang-library' at the mount point, and
    its instantiation provides the information about the
    mounted schema.  When XPath expressions in the mounted
    schema are evaluated, the 'parent-reference' leaf-list
    is taken into account.
    
    Different instances of the mount point MUST have the
    same schema mounted.";
                leaf-list parent-reference {
                  type yang:xpath1.0;
                  description
                    "Entries of this leaf-list are XPath 1.0 expressions
    that are evaluated in the following context:
    
    - The context node is the node in the parent data tree
      where the mount-point is defined.
    
    - The accessible tree is the parent data tree
      *without* any nodes defined in modules that are
      mounted inside the parent schema.
    
    - The context position and context size are both equal
      to 1.
    
    - The set of variable bindings is empty.
    
    - The function library is the core function library
      defined in the W3C XPath 1.0 document
      (http://www.w3.org/TR/1999/REC-xpath-19991116) and
      the functions defined in Section 10 of RFC 7950.
    
    - The set of namespace declarations is defined by the
      'namespace' list under 'schema-mounts'.
    
    Each XPath expression MUST evaluate to a node-set
    (possibly empty).  For the purposes of evaluating
    XPath expressions whose context nodes are defined in
    the mounted schema, the union of all these node-sets
    together with ancestor nodes are added to the
    accessible data tree.
    
    Note that in the case 'ietf-yang-schema-mount' is
    itself mounted, a 'parent-reference' in the mounted
    module may refer to nodes that were brought into the
    accessible tree through a 'parent-reference' in the
    parent schema.";
                }
              }  // container shared-schema
            }  // choice schema-ref
          }  // list mount-point
        }  // container schema-mounts
      }  // module ietf-yang-schema-mount
    

© 2023 YumaWorks, Inc. All rights reserved.