ietf-module-tags

This module describes a mechanism associating tags with YANG modules. Tags may be IANA assigned or privately defined. Copyrigh...

  • Version: 2021-01-04

    ietf-module-tags@2021-01-04


    
      module ietf-module-tags {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-module-tags";
    
        prefix tags;
    
        import ietf-yang-types {
          prefix yang;
        }
    
        organization
          "IETF NetMod Working Group (NetMod)";
    
        contact
          "WG Web:  <https://datatracker.ietf.org/wg/netmod/>
    WG List: <mailto:netmod@ietf.org>
    
    Author: Christian Hopps
    	<mailto:chopps@chopps.org>
    
    Author: Lou Berger
    	<mailto:lberger@labn.net>
    
    Author: Dean Bogdanovic
    	<mailto:ivandean@gmail.com>";
    
        description
          "This module describes a mechanism associating tags with YANG
    modules.  Tags may be IANA assigned or privately defined.
    
    Copyright (c) 2021 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 8819
    (https://www.rfc-editor.org/info/rfc8819); see the RFC itself
    for full legal notices.
    
    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.";
    
        revision "2021-01-04" {
          description "Initial revision.";
          reference
            "RFC 8819: YANG Module Tags";
    
        }
    
    
        typedef tag {
          type string {
            length "1..max";
            pattern '[\S ]+';
          }
          description
            "A tag is a type of 'string' value that does not include
    carriage return, newline, or tab characters.  It SHOULD begin
    with a registered prefix; however, tags without a registered
    prefix SHOULD NOT be treated as invalid.";
        }
    
        extension module-tag {
          argument "tag" {
            yin-element false;
          }
          description
            "The argument 'tag' is of type 'tag'.  This extension statement
    is used by module authors to indicate the tags that SHOULD be
    added automatically by the system.  As such, the origin of the
    value for the predefined tags should be set to 'system'
    [RFC8342].";
        }
    
        container module-tags {
          description
            "Contains the list of modules and their associated tags.";
          list module {
            key "name";
            description
              "A list of modules and their associated tags.";
            leaf name {
              type yang:yang-identifier;
              mandatory true;
              description
                "The YANG module name.";
            }
    
            leaf-list tag {
              type tag;
              description
                "Tags associated with the module.  See the IANA 'YANG
    Module Tag Prefixes' registry for reserved prefixes and
    the IANA 'IETF YANG Module Tags' registry for IETF tags.
    
    The 'operational' state [RFC8342] view of this list is
    constructed using the following steps:
    
    1) System tags (i.e., tags of 'system' origin) are added.
    2) User-configured tags (i.e., tags of 'intended' origin)
    are added.
    3) Any tag that is equal to a masked-tag is removed.";
            }
    
            leaf-list masked-tag {
              type tag;
              description
                "The list of tags that should not be associated with this
    module.  The user can remove (mask) tags from the
    operational state datastore [RFC8342] by adding them to
    this list.  It is not an error to add tags to this list
    that are not associated with the module, but they have no
    operational effect.";
            }
          }  // list module
        }  // container module-tags
      }  // module ietf-module-tags
    

© 2023 YumaWorks, Inc. All rights reserved.