blob: 0417bef704d2a26ab01d11bcb9adb69c5b3ae20c [file] [log] [blame]
/*
*
* 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-prefix;
}
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;
}
}
}
}