/* * * Copyright 2018 CTTC * Copyright 2018 Telefonica Investigacion y Desarrollo S.A.U. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * */ module instantiation-parameters { //header information yang-version 1; namespace "urn:etsi:osm:yang:instantiation-parameters"; prefix "instantiation-parameters"; import nsd { prefix "nsd"; } import vnfd { prefix "vnfd"; } import ietf-inet-types { prefix "inet"; } import ietf-yang-types { prefix "ietf-yang"; } //revision history revision 2018-09-14 { description "Initial version"; } grouping ns_params { leaf vimAccountId { mandatory true; type string; } leaf ssh_keys { type string; } list vnf { key "member-vnf-index"; uses vnf_params; } list vld { key "name"; uses vld_params; } } grouping vnf_params { leaf member-vnf-index{ mandatory true; type string; } leaf vimAccountId { type string; } list vdu { key "id"; uses vdu_params; } list internal-vld { key "name"; uses internal_vld_params; } } grouping vld_common_params { leaf name { type string; } leaf vim-network-name { type string; } container ip-profile { uses ip-profile-update-schema; } } grouping vld_params { uses vld_common_params; list vnfd-connection-point-ref { key "member-vnf-index-ref vnfd-connection-point-ref"; leaf member-vnf-index-ref { type leafref { //path "../../../vnf/member-vnf-index"; path "/nsd:nsd-catalog/nsd:nsd/nsd:constituent-vnfd/nsd:member-vnf-index"; } } leaf vnfd-connection-point-ref { type leafref { path "/vnfd:vnfd-catalog/vnfd:vnfd/vnfd:connection-point/vnfd:name"; } } leaf ip-address{ type inet:ip-address; } } } grouping vdu_params { leaf id { mandatory true; type string; } list volume { key "name"; leaf name { mandatory true; type string; } leaf vim-volume-id { mandatory true; type string; } } list interface { key "name"; leaf name { mandatory true; type string; } leaf ip-address { type inet:ip-address; } leaf mac-address { type ietf-yang:mac-address; } leaf floating-ip-required { type boolean; } } } grouping internal_vld_params { leaf name { mandatory true; type string; } leaf vim-network-name { type string; } container ip-profile { uses ip-profile-update-schema; } list internal-connection-point { key "id-ref"; leaf id-ref { mandatory true; type string; } leaf ip-address{ type inet:ip-address; } } } grouping ip-profile-update-schema { //each leaf/list is either null or something leaf ip-version { type inet:ip-version; } leaf subnet-address { type inet:ip-prefix; } leaf gateway-address { type inet:ip-address; } list dns-server { key "address"; leaf address { mandatory true; type inet:ip-address; } } container dhcp-params { leaf enabled { type boolean; } leaf count { type uint8; // >=1 } leaf start-address { type inet:ip-address; } } } }