ietf-yang-structure-ext

This module contains conceptual YANG specifications for defining abstract data structures. The key words 'MUST', 'MUST NOT', 'R...

  • Version: 2020-06-17

    ietf-yang-structure-ext@2020-06-17


    
      module ietf-yang-structure-ext {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-yang-structure-ext";
    
        prefix sx;
    
        organization
          "IETF NETMOD (NETCONF Data Modeling Language) Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
    WG List:  <mailto:netmod@ietf.org>
    
    Author:   Andy Bierman
    	  <mailto:andy@yumaworks.com>
    
    Author:   Martin Bjorklund
    	  <mailto:mbj+ietf@4668.se>
    
    Author:   Kent Watsen
    	  <mailto:kent+ietf@watsen.net>";
    
        description
          "This module contains conceptual YANG specifications for defining
    abstract data structures.
    
    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) 2020 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
    (http://trustee.ietf.org/license-info).
    
    This version of this YANG module is part of RFC 8791
    (https://www.rfc-editor.org/info/rfc8791); see the RFC itself
    for full legal notices.";
    
        revision "2020-06-17" {
          description "Initial revision.";
          reference
            "RFC 8791: YANG Data Structure Extensions.";
    
        }
    
    
        extension structure {
          argument "name" {
            yin-element true;
          }
          description
            "This extension is used to specify a YANG data structure that
    represents conceptual data defined in YANG.  It is intended to
    describe hierarchical data independent of protocol context or
    specific message encoding format.  Data definition statements
    within a 'structure' extension statement specify the generic
    syntax for the specific YANG data structure, whose name is the
    argument of the 'structure' extension statement.
    
    Note that this extension does not define a media type.  A
    specification using this extension MUST specify the message
    encoding rules, including the content media type, if
    applicable.
    
    The mandatory 'name' parameter value identifies the YANG data
    structure that is being defined.
    
    This extension is only valid as a top-level statement, i.e.,
    given as a substatement to 'module' or 'submodule'.
    
    The substatements of this extension MUST follow the ABNF
    rules below, where the rules are defined in RFC 7950:
    
      *must-stmt
      [status-stmt]
      [description-stmt]
      [reference-stmt]
      *(typedef-stmt / grouping-stmt)
      *data-def-stmt
    
    A YANG data structure defined with this extension statement is
    encoded in the same way as an 'anydata' node.  This means
    that the name of the structure is encoded as a 'container',
    with the instantiated child statements encoded as child nodes
    to this node.
    
    The module name and namespace value for the YANG module using
    the extension statement are assigned to each of the data
    definition statements resulting from the YANG data structure.
    
    The XPath document element is the extension statement itself,
    such that the child nodes of the document element are
    represented by the data-def-stmt substatements within this
    extension.  This conceptual document is the context for the
    following YANG statements:
    
      - must-stmt
      - when-stmt
      - path-stmt
      - min-elements-stmt
      - max-elements-stmt
      - mandatory-stmt
      - unique-stmt
      - ordered-by
      - instance-identifier data type
    
    The following data-def-stmt substatements are constrained
    when used within a 'structure' extension statement.
    
      - The list-stmt is not required to have a key-stmt defined.
      - The config-stmt is ignored if present.
    ";
        }
    
        extension augment-structure {
          argument "path" {
            yin-element true;
          }
          description
            "This extension is used to specify an augmentation to a YANG
    data structure defined with the 'structure' statement.  It is
    intended to describe hierarchical data independent of protocol
    context or specific message encoding format.
    
    This statement has almost the same structure as the
    'augment-stmt'.  Data definition statements within this
    statement specify the semantics and generic syntax for the
    additional data to be added to the specific YANG data
    structure, identified by the 'path' argument.
    
    The mandatory 'path' parameter value identifies the YANG
    conceptual data node that is being augmented and is
    represented as an absolute-schema-nodeid string, where the
    first node in the absolute-schema-nodeid string identifies the
    YANG data structure to augment, and the rest of the nodes in
    the string identifies the node within the YANG structure to
    augment.
    
    This extension is only valid as a top-level statement, i.e.,
    given as a substatement to 'module' or 'submodule'.
    
    The substatements of this extension MUST follow the ABNF
    rules below, where the rules are defined in RFC 7950:
    
      [status-stmt]
      [description-stmt]
      [reference-stmt]
      1*(data-def-stmt / case-stmt)
    
    The module name and namespace value for the YANG module using
    the extension statement are assigned to instance document data
    conforming to the data definition statements within this
    extension.
    
    The XPath document element is the augmented extension
    statement itself, such that the child nodes of the document
    element are represented by the data-def-stmt substatements
    within the augmented 'structure' statement.
    
    The context node of the 'augment-structure' statement is
    derived in the same way as the 'augment' statement, as defined
    in Section 6.4.1 of [RFC7950]. This conceptual node is
    considered the context node for the following YANG statements:
    
      - must-stmt
      - when-stmt
      - path-stmt
      - min-elements-stmt
      - max-elements-stmt
      - mandatory-stmt
      - unique-stmt
      - ordered-by
      - instance-identifier data type
    
    The following data-def-stmt substatements are constrained
    when used within an 'augment-structure' extension statement.
    
      - The list-stmt is not required to have a key-stmt defined.
      - The config-stmt is ignored if present.
    
    Example:
    
       module foo {
          import ietf-yang-structure-ext { prefix sx; }
    
          sx:structure foo-data {
    	container foo-con { }
          }
       }
    
       module bar {
          import ietf-yang-structure-ext { prefix sx; }
          import foo { prefix foo; }
    
          sx:augment-structure /foo:foo-data/foo:foo-con {
    	leaf add-leaf1 { type int32; }
    	leaf add-leaf2 { type string; }
          }
       }
    ";
        }
      }  // module ietf-yang-structure-ext
    

© 2023 YumaWorks, Inc. All rights reserved.