| /* |
| * |
| * 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; |
| } |
| } |
| } |
| |
| } |