8. RESTCONF模块

ietf-restconf”模块定义了一个扩展和两个分组中的概念性定义,这些分组并不意味着被服务器实现为数据存储内容。 例如,“restconf”容器并不打算作为顶级数据节点来实现(在“/restconf/data”的URI下)。

请注意,“ietf-restconf”的模块没有任何协议可访问的对象,因此不显示YANG树形图。

<CODE BEGINS>

file "ietf-restconf@2017-01-26.yang"

module ietf-restconf {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-restconf";
  prefix "rc";

  organization
    "IETF NETCONF (Network Configuration) Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
     WG List:  <mailto:netconf@ietf.org>

     Author:   Andy Bierman
               <mailto:andy@yumaworks.com>

     Author:   Martin Bjorklund
               <mailto:mbj@tail-f.com>

     Author:   Kent Watsen
               <mailto:kwatsen@juniper.net>";


   description
     "This module contains conceptual YANG specifications
      for basic RESTCONF media type definitions used in
      RESTCONF protocol messages.

      Note that the YANG definitions within this module do not
      represent configuration data of any kind.
      The 'restconf-media-type' YANG extension statement
      provides a normative syntax for XML and JSON
      message-encoding purposes.


  Copyright (c) 2017 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 8040; see
      the RFC itself for full legal notices.";



  revision 2017-01-26 {
    description
      "Initial revision.";
    reference
      "RFC 8040: RESTCONF Protocol.";
  }

  extension yang-data {
    argument name {
      yin-element true;
    }
        description
          "This extension is used to specify a YANG data template 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 yang-data extension
           specify the generic syntax for the specific YANG data
           template, whose name is the argument of the 'yang-data'
           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.

           The mandatory 'name' parameter value identifies the YANG
           data template that is being defined.  It contains the
           template name.

           This extension is ignored unless it appears as a top-level
           statement.  It MUST contain data definition statements
           that result in exactly one container data node definition.
           An instance of a YANG data template can thus be translated
           into an XML instance document, whose top-level element
           corresponds to the top-level container.

           The module name and namespace values for the YANG module using
           the extension statement are assigned to instance document data
           conforming to the data definition statements within
           this extension.

           The substatements of this extension MUST follow the
           'data-def-stmt' rule in the YANG ABNF.

           The XPath document root is the extension statement itself,
           such that the child nodes of the document root 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 'yang-data' extension statement.

             - The list-stmt is not required to have a key-stmt defined.
             - The if-feature-stmt is ignored if present.
             - The config-stmt is ignored if present.
             - The available identity values for any 'identityref'
               leaf or leaf-list nodes are limited to the module
               containing this extension statement and the modules
               imported into that module.
          ";
      }

      rc:yang-data yang-errors {
        uses errors;
      }

      rc:yang-data yang-api {
        uses restconf;
      }

      grouping errors {
        description
          "A grouping that contains a YANG container
           representing the syntax and semantics of a
           YANG Patch error report within a response message.";

        container errors {
          description
            "Represents an error report returned by the server if
             a request results in an error.";

          list error {
            description
              "An entry containing information about one
               specific error that occurred while processing
               a RESTCONF request.";
            reference
              "RFC 6241, Section 4.3.";

            leaf error-type {
              type enumeration {
                enum transport {
                  description
                    "The transport layer.";
                }
                enum rpc {
                  description
                    "The rpc or notification layer.";
                }
                enum protocol {
                  description
                    "The protocol operation layer.";
                }
                enum application {
                  description
                    "The server application layer.";
                }
              }
              mandatory true;
              description
                "The protocol layer where the error occurred.";
            }
            leaf error-tag {
              type string;
              mandatory true;
              description
                "The enumerated error-tag.";
            }

            leaf error-app-tag {
              type string;
              description
                "The application-specific error-tag.";
            }

            leaf error-path {
              type instance-identifier;
              description
                "The YANG instance identifier associated
                 with the error node.";
            }

            leaf error-message {
              type string;
              description
                "A message describing the error.";
            }

            anydata error-info {
               description
                 "This anydata value MUST represent a container with
                  zero or more data nodes representing additional
                  error information.";
            }
          }
        }
      }

      grouping restconf {
        description
          "Conceptual grouping representing the RESTCONF
           root resource.";

        container restconf {
          description
            "Conceptual container representing the RESTCONF
             root resource.";


             container data {
               description
                 "Container representing the datastore resource.
                  Represents the conceptual root of all state data
                  and configuration data supported by the server.
                  The child nodes of this container can be any data
                  resources that are defined as top-level data nodes
                  from the YANG modules advertised by the server in
                  the 'ietf-yang-library' module.";
             }

             container operations {
               description
                 "Container for all operation resources.

                  Each resource is represented as an empty leaf with the
                  name of the RPC operation from the YANG 'rpc' statement.

                  For example, the 'system-restart' RPC operation defined
                  in the 'ietf-system' module would be represented as
                  an empty leaf in the 'ietf-system' namespace.  This is
                  a conceptual leaf and will not actually be found in
                  the module:

                     module ietf-system {
                       leaf system-reset {
                         type empty;
                       }
                     }

                  To invoke the 'system-restart' RPC operation:

                     POST /restconf/operations/ietf-system:system-restart

                  To discover the RPC operations supported by the server:

                     GET /restconf/operations

                  In XML, the YANG module namespace identifies the module:

                    <system-restart
                       xmlns='urn:ietf:params:xml:ns:yang:ietf-system'/>

                  In JSON, the YANG module name identifies the module:

                    { 'ietf-system:system-restart' : [null] }
                 ";
             }

      leaf yang-library-version {
        type string {
          pattern '\d{4}-\d{2}-\d{2}';
        }
        config false;
        mandatory true;
        description
          "Identifies the revision date of the 'ietf-yang-library'
           module that is implemented by this RESTCONF server.
           Indicates the year, month, and day in YYYY-MM-DD
           numeric format.";
      }
    }
  }
}

<CODE ENDS>

results matching ""

    No results matching ""