From: Robert Varga Date: Mon, 14 Feb 2022 10:01:23 +0000 (+0100) Subject: Package ietf-restconf X-Git-Tag: v9.0.0~45 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;ds=sidebyside;h=af53825134e85d37399d5b106decf3ff4b7e5c24;p=mdsal.git Package ietf-restconf ietf-restconf defines yang-data extension, which is a prerequisite for a number of other documents. Package the model in mdsal. JIRA: MDSAL-676 Change-Id: I4ae08b0c02b607a5585acbab31e8996907555ba8 Signed-off-by: Robert Varga --- diff --git a/artifacts/pom.xml b/artifacts/pom.xml index c7b0a16a9b..7ea102ba5c 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -487,6 +487,13 @@ 9.0.0-SNAPSHOT + + + org.opendaylight.mdsal.binding.model.ietf + rfc8040 + 9.0.0-SNAPSHOT + + org.opendaylight.mdsal.binding.model.ietf @@ -770,6 +777,13 @@ features xml + + org.opendaylight.mdsal.model + odl-mdsal-model-rfc8040 + 9.0.0-SNAPSHOT + features + xml + org.opendaylight.mdsal.model odl-mdsal-model-rfc8294 diff --git a/docs/pom.xml b/docs/pom.xml index 7918cb90f7..4b3a75cf06 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -234,6 +234,10 @@ org.opendaylight.mdsal.binding.model.ietf rfc7952 + + org.opendaylight.mdsal.binding.model.ietf + rfc8040 + org.opendaylight.mdsal.binding.model.ietf rfc8294 diff --git a/features/features-mdsal/pom.xml b/features/features-mdsal/pom.xml index 2d154f5f81..36490aef1c 100644 --- a/features/features-mdsal/pom.xml +++ b/features/features-mdsal/pom.xml @@ -185,6 +185,12 @@ features xml + + org.opendaylight.mdsal.model + odl-mdsal-model-rfc8040 + features + xml + org.opendaylight.mdsal.model odl-mdsal-model-rfc8294 diff --git a/features/odl-mdsal-model-rfc8040/pom.xml b/features/odl-mdsal-model-rfc8040/pom.xml new file mode 100644 index 0000000000..a4123c21a4 --- /dev/null +++ b/features/odl-mdsal-model-rfc8040/pom.xml @@ -0,0 +1,37 @@ + + + + 4.0.0 + + org.opendaylight.mdsal + feature-parent + 9.0.0-SNAPSHOT + ../feature-parent + + + org.opendaylight.mdsal.model + odl-mdsal-model-rfc8040 + 9.0.0-SNAPSHOT + feature + OpenDaylight :: MD-SAL :: Model :: RFC8040 + Models from RFC8040 + + + + org.opendaylight.mdsal + odl-mdsal-binding-base + features + xml + + + org.opendaylight.mdsal.binding.model.ietf + rfc8040 + + + diff --git a/features/pom.xml b/features/pom.xml index adc06fce88..14ad53d32f 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -72,6 +72,7 @@ odl-mdsal-model-rfc6991 odl-mdsal-model-rfc7224 odl-mdsal-model-rfc7952 + odl-mdsal-model-rfc8040 odl-mdsal-model-rfc8294 odl-mdsal-model-rfc8342 odl-mdsal-model-rfc8343 diff --git a/model/ietf/pom.xml b/model/ietf/pom.xml index bff2ce55e1..0254072015 100644 --- a/model/ietf/pom.xml +++ b/model/ietf/pom.xml @@ -34,6 +34,9 @@ rfc7952 + + rfc8040 + rfc8294 rfc8294-ietf-routing-types diff --git a/model/ietf/rfc8040/pom.xml b/model/ietf/rfc8040/pom.xml new file mode 100644 index 0000000000..74604f036b --- /dev/null +++ b/model/ietf/rfc8040/pom.xml @@ -0,0 +1,26 @@ + + + + + 4.0.0 + + org.opendaylight.mdsal + binding-parent + 9.0.0-SNAPSHOT + ../../../binding/binding-parent + + + org.opendaylight.mdsal.binding.model.ietf + rfc8040 + 9.0.0-SNAPSHOT + bundle + + ${project.artifactId} + RFC8040 RESTCONF Protocol + diff --git a/model/ietf/rfc8040/src/main/yang/ietf-restconf@2017-01-26.yang b/model/ietf/rfc8040/src/main/yang/ietf-restconf@2017-01-26.yang new file mode 100644 index 0000000000..b47455b816 --- /dev/null +++ b/model/ietf/rfc8040/src/main/yang/ietf-restconf@2017-01-26.yang @@ -0,0 +1,278 @@ +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: + WG List: + + Author: Andy Bierman + + + Author: Martin Bjorklund + + + Author: Kent Watsen + "; + + 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: + + + + 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."; + } + } + } + +}