X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=models%2Fplugins%2Fyang%2Fproject-nsd.yang;h=9e20fd244a975c6066abc39deefcfde00da7526a;hb=cd455eba9834532e57a661e41cd5864afc90ddec;hp=e2be49d3eed0724f1f7e0d6ffb01a3cba3938914;hpb=4f810f24007e506d87a0f17886ada38d0f82c554;p=osm%2FSO.git diff --git a/models/plugins/yang/project-nsd.yang b/models/plugins/yang/project-nsd.yang index e2be49d3..9e20fd24 100644 --- a/models/plugins/yang/project-nsd.yang +++ b/models/plugins/yang/project-nsd.yang @@ -357,10 +357,12 @@ module project-nsd } } - leaf-list member-vnf-index-ref { + leaf member-vnf-index-ref { description "Optional reference to member-vnf within constituent-vnfds"; - type uint64; + type leafref { + path "../../../constituent-vnfd/member-vnf-index"; + } } } } @@ -401,15 +403,175 @@ module project-nsd } } - leaf-list member-vnf-index-ref { + leaf member-vnf-index-ref { description "Optional reference to member-vnf within constituent-vnfds"; - type uint64; + type leafref { + path "../../../constituent-vnfd/member-vnf-index"; + } } } } } + grouping nsd-service-primitive { + list service-primitive { + description + "Network service level service primitives."; + + key "name"; + + leaf name { + description + "Name of the service primitive."; + type string; + } + + list parameter { + description + "List of parameters for the service primitive."; + + key "name"; + uses manotypes:primitive-parameter; + } + + uses manotypes:ui-primitive-group; + + list vnf-primitive-group { + description + "List of service primitives grouped by VNF."; + + key "member-vnf-index-ref"; + leaf member-vnf-index-ref { + description + "Reference to member-vnf within constituent-vnfds"; + type leafref { + path "../../../constituent-vnfd/member-vnf-index"; + } + } + + leaf vnfd-id-ref { + description + "A reference to a vnfd. This is a leafref"; + + type leafref { + path "../../../constituent-vnfd" + + "[member-vnf-index = current()/../member-vnf-index-ref]" + "/vnfd-id-ref"; + } + } + + leaf vnfd-name { + description + "Name of the VNFD"; + type leafref { + path "../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd" + + "[project-vnfd:id = current()/../vnfd-id-ref]" + + "/project-vnfd:name"; + } + } + + list primitive { + key "index"; + + leaf index { + description "Index of this primitive"; + type uint32; + } + + leaf name { + description "Name of the primitive in the VNF primitive "; + type string; + } + } + } + + leaf user-defined-script { + description + "A user defined script."; + type string; + } + } + } + + grouping nsr-nsd-service-primitive { + list service-primitive { + description + "Network service level service primitives."; + + key "name"; + + leaf name { + description + "Name of the service primitive."; + type string; + } + + list parameter { + description + "List of parameters for the service primitive."; + + key "name"; + uses manotypes:primitive-parameter; + } + + uses manotypes:ui-primitive-group; + + list vnf-primitive-group { + description + "List of service primitives grouped by VNF."; + + key "member-vnf-index-ref"; + leaf member-vnf-index-ref { + description + "Reference to member-vnf within constituent-vnfds"; + type leafref { + path "../../../constituent-vnfd/member-vnf-index"; + } + } + + leaf vnfd-id-ref { + description + "A reference to a vnfd. This is a leafref"; + + type leafref { + path "../../../constituent-vnfd" + + "[member-vnf-index = current()/../member-vnf-index-ref]" + "/vnfd-id-ref"; + } + } + + leaf vnfd-name { + description + "Name of the VNFD"; + type leafref { + path "../../../../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd" + + "[project-vnfd:id = current()/../vnfd-id-ref]" + + "/project-vnfd:name"; + } + } + + list primitive { + key "index"; + + leaf index { + description "Index of this primitive"; + type uint32; + } + + leaf name { + description "Name of the primitive in the VNF primitive "; + type string; + } + } + } + + leaf user-defined-script { + description + "A user defined script."; + type string; + } + } + } + grouping nsd-descriptor { uses nsd-base:nsd-descriptor-common; @@ -422,6 +584,8 @@ module project-nsd uses nsd-vnf-dependency; uses nsd-monitoring-param; + + uses nsd-service-primitive; } augment "/rw-project:project" {