ietf-yang-instance-data

The module defines the structure and content of YANG instance data sets. The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL',...

  • Version: 2022-02-17

    ietf-yang-instance-data@2022-02-17


    
      module ietf-yang-instance-data {
    
        yang-version 1.1;
    
        namespace
          "urn:ietf:params:xml:ns:yang:ietf-yang-instance-data";
    
        prefix yid;
    
        import ietf-yang-structure-ext {
          prefix sx;
          reference
            "RFC 8791: YANG Data Structure Extensions";
    
    
        }
        import ietf-datastores {
          prefix ds;
          reference
            "RFC 8342: Network Management Datastore Architecture (NMDA)";
    
    
        }
        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";
    
    
        }
        import ietf-netconf-with-defaults {
          prefix ncwd;
          reference
            "RFC 6243: With-defaults Capability for NETCONF";
    
    
        }
    
        organization "IETF NETMOD Working Group";
    
        contact
          "WG Web:   <https://datatracker.ietf.org/wg/netmod/>
         WG List:  <mailto:netmod@ietf.org>
    
         Author:  Balazs Lengyel
            <mailto:balazs.lengyel@ericsson.com>
    
         Author:  Benoit Claise
            <mailto:benoit.claise@huawei.com>";
    
        description
          "The module defines the structure and content of YANG
         instance data sets.
    
         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) 2022 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 Revised 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 9195
         (https://www.rfc-editor.org/info/rfc9195); see the RFC itself
         for full legal notices.";
    
        revision "2022-02-17" {
          description "Initial revision.";
          reference
            "RFC 9195: YANG Instance Data File Format";
    
        }
    
        sx:structure "instance-data-set";
    
        typedef module-with-revision-date {
          type string {
            pattern
              '[a-zA-Z_][a-zA-Z0-9\-_.]*'
                + '(@\d{4}-(1[0-2]|0[1-9])-(0[1-9]|[1|2][0-9]|3[0-1]))?';
            pattern
              '.|..|[^xX].*|.[^mM].*|..[^lL].*';
          }
          description
            "A type defining a module name and an optional revision
           date, e.g., ietf-yang-library@2019-01-04.";
        }
    
        container instance-data-set {
          description
            "A data structure to define a format for YANG instance
           data.  The majority of the YANG nodes provides metadata
           about the instance data; the instance data itself is
           contained only in the 'content-data' node.";
          leaf name {
            type string;
            description
              "An arbitrary name for the YANG instance data set.  This
             value is primarily used for descriptive purposes.  However,
             when the instance data set is saved to a file, then the
             filename MUST encode the name's value per Section 2
             of RFC 9195.";
          }
    
          leaf format-version {
            type string {
              pattern
                '\d{4}-(1[0-2]|0[1-9])-(0[1-9]|[1|2][0-9]|3[0-1])';
            }
            default "2022-01-20";
            description
              "The 'revision' of the 'ietf-yang-instance-data' module
             used to encode this 'instance-data-set'.";
          }
    
          leaf includes-defaults {
            type ncwd:with-defaults-mode;
            default "report-all";
            description
              "Indicates how data nodes with default values are
             represented for all data nodes contained in the
             instance-data-set.
    
             It uses the same definitions as per Section 3 of RFC 6243
             but applied in the context of an instance data file rather
             than a NETCONF request using the <with-defaults>
             parameter.
    
             For JSON files, the encoding of the 'report-all-tagged'
             option is as defined in Section 4.8.9 of RFC 8040.";
            reference
              "RFC 6243: With-defaults Capability for NETCONF";
    
          }
    
          container content-schema {
            description
              "The content schema (i.e., YANG modules) used to create
             the instance data set.
             If not present, the user needs to obtain the information
             through external documents.";
            choice content-schema-spec {
              description
                "Specification of the content-schema.";
              leaf-list module {
                type module-with-revision-date;
                min-elements 1;
                description
                  "The list of content-defining YANG modules.
    
                   The value SHALL start with the module name.
                   If the module contains a revision statement, the
                   revision date SHALL be included in the leaf-list
                   entry, e.g., ietf-yang-library@2019-01-04.
    
                   Usage of this leaf-list implies the modules are
                   used without any deviations and with all features
                   supported. Multiple revisions of the same module
                   MUST NOT be specified.";
              }
              anydata inline-yang-library {
                mandatory true;
                description
                  "Instance data corresponding to the
                   ietf-yang-library@2019-01-04 defining
                   the set of content-defining YANG modules for
                   this instance-data-set.";
              }
              leaf same-schema-as-file {
                type inet:uri;
                description
                  "A reference to another YANG instance data file.
                   This instance data file uses the same
                   content schema as the referenced file.
    
                   Referenced files using the 'inline' or the
                   'simplified-inline' methods MUST be supported.
                   Referenced files using the 'URI method' MAY be
                   supported.
    
                   The URL schemes 'file://' and 'https://' MUST
                   be supported; other schemes MAY also be
                   supported.";
              }
            }  // choice content-schema-spec
          }  // container content-schema
    
          leaf-list description {
            type string;
            description
              "Description of the instance data set.";
          }
    
          leaf contact {
            type string;
            description
              "Contact information for the person or
             organization to whom queries concerning this
             instance data set should be sent.";
          }
    
          leaf organization {
            type string;
            description
              "Organization responsible for the instance
             data set.";
          }
    
          leaf datastore {
            type ds:datastore-ref;
            description
              "The identity of the datastore with which the
             instance data set is associated, e.g., the datastore from
             where the data was read, the datastore into which the data
             may be loaded, or the datastore that is being documented.
             If a single specific datastore cannot be specified, the
             leaf MUST be absent.
    
             If this leaf is absent, then the datastore to which the
             instance data belongs is unspecified.";
          }
    
          list revision {
            key "date";
            description
              "Instance data sets that are produced as
             a result of some sort of specification or design effort
             SHOULD have at least one revision entry.  For every
             published editorial change, a new unique revision SHOULD
             be added in front of the revisions sequence so that all
             revisions are in reverse chronological order.
    
             In cases of instance data sets that are read from
             or produced by a server or otherwise subject to
             frequent updates or changes, revision
             SHOULD NOT be present.";
            leaf date {
              type string {
                pattern
                  '\d{4}-(1[0-2]|0[1-9])-(0[1-9]|[1|2][0-9]|3[0-1])';
              }
              description
                "Specifies the date the instance data set
               was last modified. Formatted as YYYY-MM-DD.";
            }
    
            leaf description {
              type string;
              description
                "Description of this revision of the instance data set.";
            }
          }  // list revision
    
          leaf timestamp {
            type yang:date-and-time;
            description
              "The date and time when the instance data set
             was last modified.
    
             In cases of instance data sets that are read from or
             produced by a server or otherwise subject to frequent
             updates or changes, the timestamp SHOULD be present.
    
             If both a revision list entry and timestamp are present,
             the timestamp SHOULD contain the same date as the
             latest revision statement.";
          }
    
          anydata content-data {
            description
              "Contains the real instance data.
             The data MUST conform to the relevant YANG modules
             specified either in the content-schema or in some other
             implementation-specific manner.";
          }
        }  // container instance-data-set
      }  // module ietf-yang-instance-data
    

© 2023 YumaWorks, Inc. All rights reserved.