Add supoprt for D release use-case.
[sim/o1-interface.git] / ntsimulator / deploy / o-ran-ru-fh / yang / ietf-restconf@2017-01-26.yang
1 module ietf-restconf {
2   yang-version 1.1;
3   namespace "urn:ietf:params:xml:ns:yang:ietf-restconf";
4   prefix "rc";
5
6   organization
7     "IETF NETCONF (Network Configuration) Working Group";
8
9   contact
10     "WG Web:   <https://datatracker.ietf.org/wg/netconf/>
11      WG List:  <mailto:netconf@ietf.org>
12
13      Author:   Andy Bierman
14                <mailto:andy@yumaworks.com>
15
16      Author:   Martin Bjorklund
17                <mailto:mbj@tail-f.com>
18
19      Author:   Kent Watsen
20                <mailto:kwatsen@juniper.net>";
21
22   description
23     "This module contains conceptual YANG specifications
24      for basic RESTCONF media type definitions used in
25      RESTCONF protocol messages.
26
27      Note that the YANG definitions within this module do not
28      represent configuration data of any kind.
29      The 'restconf-media-type' YANG extension statement
30      provides a normative syntax for XML and JSON
31      message-encoding purposes.
32
33      Copyright (c) 2017 IETF Trust and the persons identified as
34      authors of the code.  All rights reserved.
35
36      Redistribution and use in source and binary forms, with or
37      without modification, is permitted pursuant to, and subject
38      to the license terms contained in, the Simplified BSD License
39      set forth in Section 4.c of the IETF Trust's Legal Provisions
40      Relating to IETF Documents
41      (http://trustee.ietf.org/license-info).
42
43      This version of this YANG module is part of RFC 8040; see
44      the RFC itself for full legal notices.";
45
46   revision 2017-01-26 {
47     description
48       "Initial revision.";
49     reference
50       "RFC 8040: RESTCONF Protocol.";
51   }
52
53   extension yang-data {
54     argument name {
55       yin-element true;
56     }
57     description
58       "This extension is used to specify a YANG data template that
59        represents conceptual data defined in YANG.  It is
60        intended to describe hierarchical data independent of
61        protocol context or specific message-encoding format.
62        Data definition statements within a yang-data extension
63        specify the generic syntax for the specific YANG data
64        template, whose name is the argument of the 'yang-data'
65        extension statement.
66
67        Note that this extension does not define a media type.
68        A specification using this extension MUST specify the
69        message-encoding rules, including the content media type.
70
71        The mandatory 'name' parameter value identifies the YANG
72        data template that is being defined.  It contains the
73        template name.
74
75        This extension is ignored unless it appears as a top-level
76        statement.  It MUST contain data definition statements
77        that result in exactly one container data node definition.
78        An instance of a YANG data template can thus be translated
79        into an XML instance document, whose top-level element
80        corresponds to the top-level container.
81        The module name and namespace values for the YANG module using
82        the extension statement are assigned to instance document data
83        conforming to the data definition statements within
84        this extension.
85
86        The substatements of this extension MUST follow the
87        'data-def-stmt' rule in the YANG ABNF.
88
89        The XPath document root is the extension statement itself,
90        such that the child nodes of the document root are
91        represented by the data-def-stmt substatements within
92        this extension.  This conceptual document is the context
93        for the following YANG statements:
94
95          - must-stmt
96          - when-stmt
97          - path-stmt
98          - min-elements-stmt
99          - max-elements-stmt
100          - mandatory-stmt
101          - unique-stmt
102          - ordered-by
103          - instance-identifier data type
104
105        The following data-def-stmt substatements are constrained
106        when used within a 'yang-data' extension statement.
107
108          - The list-stmt is not required to have a key-stmt defined.
109          - The if-feature-stmt is ignored if present.
110          - The config-stmt is ignored if present.
111          - The available identity values for any 'identityref'
112            leaf or leaf-list nodes are limited to the module
113            containing this extension statement and the modules
114            imported into that module.
115       ";
116   }
117
118   rc:yang-data yang-errors {
119     uses errors;
120   }
121
122   rc:yang-data yang-api {
123     uses restconf;
124   }
125
126   grouping errors {
127     description
128       "A grouping that contains a YANG container
129        representing the syntax and semantics of a
130        YANG Patch error report within a response message.";
131
132     container errors {
133       description
134         "Represents an error report returned by the server if
135          a request results in an error.";
136
137       list error {
138         description
139           "An entry containing information about one
140            specific error that occurred while processing
141            a RESTCONF request.";
142         reference
143           "RFC 6241, Section 4.3.";
144
145         leaf error-type {
146           type enumeration {
147             enum transport {
148               description
149                 "The transport layer.";
150             }
151             enum rpc {
152               description
153                 "The rpc or notification layer.";
154             }
155             enum protocol {
156               description
157                 "The protocol operation layer.";
158             }
159             enum application {
160               description
161                 "The server application layer.";
162             }
163           }
164           mandatory true;
165           description
166             "The protocol layer where the error occurred.";
167         }
168
169         leaf error-tag {
170           type string;
171           mandatory true;
172           description
173             "The enumerated error-tag.";
174         }
175
176         leaf error-app-tag {
177           type string;
178           description
179             "The application-specific error-tag.";
180         }
181
182         leaf error-path {
183           type instance-identifier;
184           description
185             "The YANG instance identifier associated
186              with the error node.";
187         }
188
189         leaf error-message {
190           type string;
191           description
192             "A message describing the error.";
193         }
194
195         anydata error-info {
196            description
197              "This anydata value MUST represent a container with
198               zero or more data nodes representing additional
199               error information.";
200         }
201       }
202     }
203   }
204
205   grouping restconf {
206     description
207       "Conceptual grouping representing the RESTCONF
208        root resource.";
209
210     container restconf {
211       description
212         "Conceptual container representing the RESTCONF
213          root resource.";
214
215       container data {
216         description
217           "Container representing the datastore resource.
218            Represents the conceptual root of all state data
219            and configuration data supported by the server.
220            The child nodes of this container can be any data
221            resources that are defined as top-level data nodes
222            from the YANG modules advertised by the server in
223            the 'ietf-yang-library' module.";
224       }
225
226       container operations {
227         description
228           "Container for all operation resources.
229
230            Each resource is represented as an empty leaf with the
231            name of the RPC operation from the YANG 'rpc' statement.
232
233            For example, the 'system-restart' RPC operation defined
234            in the 'ietf-system' module would be represented as
235            an empty leaf in the 'ietf-system' namespace.  This is
236            a conceptual leaf and will not actually be found in
237            the module:
238
239               module ietf-system {
240                 leaf system-reset {
241                   type empty;
242                 }
243               }
244
245            To invoke the 'system-restart' RPC operation:
246
247               POST /restconf/operations/ietf-system:system-restart
248
249            To discover the RPC operations supported by the server:
250
251               GET /restconf/operations
252
253            In XML, the YANG module namespace identifies the module:
254
255              <system-restart
256                 xmlns='urn:ietf:params:xml:ns:yang:ietf-system'/>
257
258            In JSON, the YANG module name identifies the module:
259
260              { 'ietf-system:system-restart' : [null] }
261           ";
262       }
263       leaf yang-library-version {
264         type string {
265           pattern '\d{4}-\d{2}-\d{2}';
266         }
267         config false;
268         mandatory true;
269         description
270           "Identifies the revision date of the 'ietf-yang-library'
271            module that is implemented by this RESTCONF server.
272            Indicates the year, month, and day in YYYY-MM-DD
273            numeric format.";
274       }
275     }
276   }
277
278 }