diff --git a/src/yang/etsi-nfv-descriptors.yang b/src/yang/etsi-nfv-descriptors.yang index afedb3b7a4a8daf1178ce22f92df35c9b96188f9..ce3769f9d5eb935bd6127bc0b394aede7f246eb3 100644 --- a/src/yang/etsi-nfv-descriptors.yang +++ b/src/yang/etsi-nfv-descriptors.yang @@ -24,6 +24,7 @@ module etsi-nfv-descriptors { container nfv { list vnfd { key "id"; + description "A VNF Descriptor (VNFD) is a deployment template which describes a VNF in terms of deployment and operational diff --git a/src/yang/etsi-nfv-ns.yang b/src/yang/etsi-nfv-ns.yang index 2b12612efee6dcca134df2ed374de0e9ffa9713e..b95b48990ad97fbd8c5a08a8cc4e97e03e6e25a4 100644 --- a/src/yang/etsi-nfv-ns.yang +++ b/src/yang/etsi-nfv-ns.yang @@ -418,7 +418,7 @@ submodule etsi-nfv-ns { list nfp-position-element { key "id"; - min-elements 1; + min-elements 1; leaf id { type string; @@ -443,6 +443,7 @@ submodule etsi-nfv-ns { } } } + container pnf-profile { leaf pnf-profile-id { must ". = deref(../../pnfd-profile-id)" { @@ -452,6 +453,7 @@ submodule etsi-nfv-ns { } } } + container ns-profile { leaf ns-profile-id { must ". = deref(../../ns-profile-id)" { @@ -468,41 +470,41 @@ submodule etsi-nfv-ns { CpdInConstituentElement information element"; } - choice constituent-cpd-id { - container vnf { - leaf vnfd-id { - must ". = deref(../../vnfd-profile-id)/../vnfd-id" { - } - type leafref { - path "/nfv:nfv/nfv:vnfd/nfv:id"; + choice constituent-cpd-id { + container vnf { + leaf vnfd-id { + must ". = deref(../../vnfd-profile-id)/../vnfd-id" { + } + type leafref { + path "/nfv:nfv/nfv:vnfd/nfv:id"; + } } - } - leaf cpd-id { - type leafref { - path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; + leaf cpd-id { + type leafref { + path "deref(../vnfd-id)/../nfv:ext-cpd/nfv:id"; + } } } + container pnf { leaf pnfd-id { must ". = deref(../../pnfd-profile-id)/../pnfd-id" { } type leafref { - path "../../../../../../pnfd/id"; + path "/nfv:nfv/nfv:pnfd/nfv:id"; } } - type leafref { - path "/nfv:nfv/nfv:pnfd/nfv:id"; - } - } - leaf pnf-cpd-id { - type leafref { - path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; + leaf pnf-cpd-id { + type leafref { + path "deref(../pnfd-id)/../nfv:ext-cpd/nfv:id"; + } } } + container ns { leaf nsd-id { must ". = deref(../../nested-ns-profile-id)/" + - "../nsd-id" { + "../nsd-id" { } type leafref { diff --git a/src/yang/etsi-nfv-vnf.yang b/src/yang/etsi-nfv-vnf.yang index 48cc23369ee60f6de42fd45e9d7553cc80735a13..e4d737b2273d4a41e2f8316c27e3aa72d28b0fdb 100755 --- a/src/yang/etsi-nfv-vnf.yang +++ b/src/yang/etsi-nfv-vnf.yang @@ -2621,6 +2621,143 @@ submodule etsi-nfv-vnf { information element"; } + container vnfm-interface-info { + leaf interface-name { + type string { + pattern 'vnf-[lcm|pm|fm]'; + } + description + "Identifies an interface produced by the VNFM."; + } + + container details { + container uri-components { + leaf scheme { + type inet:uri; + description + "Corresponds to the scheme component of a URI, as + per IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + container authority { + leaf userinfo { + type string; + description + "Corresponds to the userinfo field of the authority + component of a URI, as per IETF RFC 3986. + + For HTTP and HTTPS URIs, the provisions in + sections 2.7.1 and 2.7.2 of IETF RFC 7230 apply, + respectively."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf host { + type inet:host; + description + "Corresponds to the host field of the authority + component of a URI, as per IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf port { + type inet:port-number; + description + "Corresponds to the port field of the authority + component of a URI, as per IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + description + "Corresponds to the authority component of a URI, + as per IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf path { + type string; + description + "Corresponds to the path component of a URI, as per + IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf query { + type string; + description + "Corresponds to the query component of a URI, as per + IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + + leaf fragment { + type string; + description + "Corresponds to the fragment component of a URI, as per + IETF RFC 3986."; + reference + "RFC 3986: URI Generic Syntax."; + } + description + "Provides components to build a Uniform Resource + Identifier (URI) where to access the interface end + point."; + } + + leaf-list interface-specific-data { + type string; + description + "Provides additional details that are specific to the + type of interface considered."; + } + description + "Provide additional data to access the interface + endpoint (e.g. API URI prefix)."; + } + + leaf credentials { + type string; + description + "Provides credential enabling access to the interface."; + } + description + "Contains information enabling access to the NFV-MANO + interfaces produced by the VNFM (e.g. URIs and + credentials)."; + reference + "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties + information element"; + } + + container vnfm-oauth-server-info { + description + "Contains information to enable discovery of the + authorization server protecting access to + VNFM interfaces."; + reference + "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties + information element"; + } + + container vnf-oauth-server-info { + description + "Contains information to enable discovery of the + authorization server to validate the access tokens + provided by the VNFM when the VNFM accesses the VNF + interfaces, if that functionality (token introspection) is + supported by the authorization server."; + reference + "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties + information element"; + } + list additional-configurable-property { key "key";