Merge "Feature 5649: allow alternative images for specific VIMs in VNFD"
[osm/IM.git] / models / yang / vlr.yang
1
2 /*
3  * 
4  *   Copyright 2016-2017 RIFT.IO Inc
5  *
6  *   Licensed under the Apache License, Version 2.0 (the "License");
7  *   you may not use this file except in compliance with the License.
8  *   You may obtain a copy of the License at
9  *
10  *       http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *   Unless required by applicable law or agreed to in writing, software
13  *   distributed under the License is distributed on an "AS IS" BASIS,
14  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *   See the License for the specific language governing permissions and
16  *   limitations under the License.
17  *
18  *
19  */
20
21 module vlr
22 {
23   namespace "urn:ietf:params:xml:ns:yang:nfvo:vlr";
24   prefix "vlr";
25
26   import ietf-yang-types {
27     prefix "yang";
28   }
29
30   import mano-types {
31     prefix "manotypes";
32   }
33
34   import rw-project {
35     prefix "rw-project";
36   }
37
38   revision 2017-02-08 {
39     description
40       "Update model to support projects.";
41   }
42
43   revision 2015-09-10 {
44     description
45       "Initial revision. This YANG file defines
46        the Virtual Link Record (VLR)";
47     reference
48       "Derived from earlier versions of base YANG files";
49   }
50
51   augment "/rw-project:project" {
52     container vlr-catalog {
53       config false;
54
55       list vlr {
56         key "id";
57         unique "name";
58
59         leaf id {
60           description "Identifier for the VLR.";
61           type yang:uuid;
62         }
63
64         leaf name {
65           description "VLR name.";
66           type string;
67         }
68
69         leaf nsr-id-ref {
70           description
71             "NS instance identifier. 
72              This is a leafref /rw-project:project/nsr:ns-instance-config/nsr:nsr/nsr:id";
73           type yang:uuid;
74         }
75
76         leaf vld-ref {
77           description
78             "Reference to VLD
79            /rw-project:project/nsr:ns-instance-config/nsr:nsr[nsr:id=../nsr-id-ref]
80            /nsd/vld:vld/vld:id";
81           type string;
82         }
83
84         leaf res-id {
85           description "Identifier for resmgr id mapping";
86           type yang:uuid;
87         }
88
89         leaf short-name {
90           description "Short name to appear as label in the UI";
91           type string;
92         }
93
94         leaf vendor {
95           description "Provider of the VLR.";
96           type string;
97         }
98
99         leaf description {
100           description "Description of the VLR.";
101           type string;
102         }
103
104         leaf version {
105           description "Version of the VLR";
106           type string;
107         }
108
109         leaf type {
110           type manotypes:virtual-link-type;
111         }
112
113         leaf root-bandwidth {
114           description
115             "For ELAN this is the aggregate bandwidth.";
116           type uint64;
117         }
118
119         leaf leaf-bandwidth {
120           description
121             "For ELAN this is the bandwidth of branches.";
122           type uint64;
123         }
124
125         leaf create-time {
126           description
127             "Creation timestamp of this Virtual Link.
128           The timestamp is expressed as seconds 
129           since unix epoch - 1970-01-01T00:00:00Z";
130
131           type uint32;
132         }
133
134         leaf uptime {
135           description
136             "Active period of this Virtual Link.
137           Uptime is expressed in seconds";
138
139           type uint32;
140         }
141
142         leaf network-id {
143           description
144             "Identifier for the allocated network resource.";
145           type string;
146         }
147
148         leaf vim-network-name {
149           description
150             "Name of network in VIM account. This is used to indicate
151             pre-provisioned network name in cloud account.";
152           type string;
153         }
154
155         // replicate for pnfd container here
156
157         uses manotypes:provider-network;
158         uses manotypes:ip-profile-info;
159       
160         leaf status {
161           description
162             "Status of the virtual link record.";
163           type enumeration {
164             enum LINK_UP;
165             enum DEGRADED;
166             enum LINK_DOWN;
167           }
168         }
169         leaf operational-status {
170           description
171             "The operational status of the Virtual Link
172             init                 : The VL is in init stat.
173             vl-alloc-pending     : The VL alloc is pending in VIM
174             running              : The VL is up  and running in VM
175             vl-terminate-pending : The VL is being terminated in VIM.
176             terminated           : The VL is terminated in the VM.
177             failed               : The VL instantiation failed in VIM.
178           ";
179
180           type enumeration {
181             enum init;
182             enum vl-alloc-pending;
183             enum running;
184             enum vl-terminate-pending;
185             enum terminated;
186             enum failed;
187           }
188         }
189       }
190     }
191   }
192 }
193