Update OLM function tests
[transportpce.git] / tests / ordmodels_1.2.1 / org-openroadm-common-service-types.yang
1 module org-openroadm-common-service-types {
2   namespace "http://org/openroadm/common/service/types";
3   prefix org-openroadm-common-service-types;
4
5   import ietf-yang-types {
6     prefix yang;
7   }
8   import ietf-inet-types {
9     prefix inet;
10   }
11   import org-openroadm-routing-constraints {
12     prefix org-openroadm-routing-constraints;
13   }
14   import org-openroadm-topology {
15     prefix org-openroadm-topology;
16   }
17   import org-openroadm-common-types {
18     prefix org-openroadm-common-types;
19   }
20   import org-openroadm-resource-types {
21     prefix org-openroadm-resource-types;
22   }
23
24   organization
25     "Open ROADM MSA";
26   contact
27     "OpenROADM.org";
28   description
29     "YANG definitions of common service types.
30
31       Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
32       AT&T Intellectual Property.  All other rights reserved.
33
34       Redistribution and use in source and binary forms, with or without modification,
35       are permitted provided that the following conditions are met:
36
37       * Redistributions of source code must retain the above copyright notice, this
38         list of conditions and the following disclaimer.
39       * Redistributions in binary form must reproduce the above copyright notice,
40         this list of conditions and the following disclaimer in the documentation and/or
41         other materials provided with the distribution.
42       * Neither the Members of the Open ROADM MSA Agreement nor the names of its
43         contributors may be used to endorse or promote products derived from this software
44         without specific prior written permission.
45
46       THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
47       AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
48       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
49       IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
50       INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
51       NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
52       OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
53       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
54       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
55       POSSIBILITY OF SUCH DAMAGE";
56
57   revision 2016-10-14 {
58     description
59       "Version 1.2";
60   }
61
62   grouping configuration-response-common {
63     container configuration-response-common {
64       leaf request-id {
65         type string;
66         mandatory true;
67       }
68       leaf response-code {
69         type string;
70         mandatory true;
71       }
72       leaf response-message {
73         type string;
74       }
75       leaf ack-final-indicator {
76         type string;
77         mandatory true;
78       }
79     }
80   }
81
82   grouping response-parameters {
83     container response-parameters {
84       uses org-openroadm-routing-constraints:routing-constraints;
85     }
86   }
87
88   grouping service-endpoint {
89     leaf service-format {
90       type service-format;
91       mandatory true;
92       description
93         "Format of the requested service: Ethernet, OTU, etc.";
94     }
95     leaf service-rate {
96       when "../service-format!='OMS'"{
97         description "service rate not applicable when service
98         format is roadmline";
99       }
100       type uint32;
101       mandatory true;
102       description
103         "Rate of the requested service in GBps";
104     }
105     leaf clli {
106       type string;
107       mandatory true;
108       description
109         "CLLI";
110     }
111     uses org-openroadm-resource-types:device-id;
112     container site;
113     container tx-direction {
114       uses service-port;
115       uses service-lgx;
116       uses service-tail;
117     }
118     container rx-direction {
119       uses service-port;
120       uses service-lgx;
121       uses service-tail;
122     }
123     leaf optic-type {
124       type org-openroadm-common-types:optic-types;
125     }
126     container router {
127       description
128         "Needed for communication with DWDM pluggable";
129       leaf node-id {
130         type string;
131         description
132           "Node id. This is reported against the service, but may not get reflected in the service in the network.";
133       }
134       leaf ip-address {
135         type inet:ip-address;
136         description
137           "Router IP Address. This is reported against the service, but may not get reflected in the service in the network.";
138       }
139       leaf url {
140         type string;
141         description
142           "URL needed for communication with DWDM pluggable. This is reported against the service, but may not get reflected in the service in the network.";
143       }
144     }
145     leaf user-label {
146       type string;
147       mandatory false;
148       description
149         "Label for service endpoint, defined by the user";
150     }
151   }
152
153   typedef rpc-actions {
154     description "rpc-actions include all the rpc methods";
155     type enumeration {
156       enum service-create {
157         value "1";
158       }
159       enum service-feasibility-check {
160         value "2";
161       }
162       enum service-delete {
163         value "3";
164       }
165       enum equipment-notification {
166         value "4";
167       }
168       enum temp-service-create {
169         value "5";
170       }
171       enum temp-service-delete {
172         value "6";
173       }
174       enum service-roll {
175         value "7";
176       }
177       enum service-reconfigure {
178         value "8";
179       }
180       enum service-restoration {
181         value "9";
182       }
183       enum service-reversion {
184         value "10";
185       }
186       enum service-reroute {
187         value "11";
188       }
189       enum service-reroute-confirm {
190         value "12";
191       }
192       enum network-re-optimization {
193         value "13";
194       }
195     }
196   }
197
198   grouping sdnc-request-header {
199     container sdnc-request-header {
200       leaf request-id {
201         type string;
202       }
203       leaf rpc-action {
204         type rpc-actions;
205       }
206       leaf notification-url {
207         type string;
208       }
209       leaf request-system-id{
210         type string;
211       }
212     }
213   }
214
215   grouping service-port {
216     container port {
217       leaf port-device-name {
218         type string;
219       }
220       leaf port-type {
221         type string;
222       }
223       leaf port-name {
224         type string;
225       }
226       leaf port-rack {
227         type string;
228       }
229       leaf port-shelf {
230         type string;
231       }
232       leaf port-slot {
233         type string;
234       }
235       leaf port-sub-slot {
236         type string;
237       }
238     }
239   }
240
241   grouping service-lgx {
242     container lgx {
243       leaf lgx-device-name {
244         type string;
245       }
246       leaf lgx-port-name {
247         type string;
248       }
249       leaf lgx-port-rack {
250         type string;
251       }
252       leaf lgx-port-shelf {
253         type string;
254       }
255     }
256   }
257
258   grouping service-tail {
259     container tail {
260       container tail-roadm {
261         description
262           "ROADM on which the transponder is connected to (TID, IP Address,
263            or FQDN)";
264         uses org-openroadm-resource-types:device-id;
265       }
266       container xponder-port {
267         description
268           "Muxponder port used in tail, that will get used as a service endpoint.";
269         leaf circuit-pack-name {
270           type string;
271         }
272         leaf port-name {
273           type string;
274         }
275       }
276       leaf tail-roadm-port-aid {
277         type string;
278         description
279           "This will provide the transponder port needed to inter-city ROADM
280            connection";
281       }
282       leaf tail-roadm-port-rack-location {
283         type string;
284         description
285           "Transponder's location";
286       }
287     }
288   }
289
290   grouping service-information {
291     leaf due-date {
292       type yang:date-and-time;
293       description
294         "Date and time service to be turn up. If time is not specified for a given date, default to  midnight. Service turned up immediately if no due date is specified";
295     }
296     leaf end-date {
297       type yang:date-and-time;
298       description
299         "Date and time service to be removed";
300       mandatory false;
301     }
302     leaf nc-code {
303       type string;
304       description
305         "NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
306     }
307     leaf nci-code {
308       type string;
309       description
310         "NCI code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
311     }
312     leaf secondary-nci-code {
313       type string;
314       description
315         "NC code applied to wavelength service only.This is reported against the service, but may not get reflected in the service in the network.";
316     }
317     leaf customer {
318       type string;
319       description
320         "To be included in ticket information.This is reported against the service, but may not get reflected in the service in the network.";
321     }
322     leaf customer-contact {
323       type string;
324       description
325         "Customer contact information To be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
326     }
327     leaf operator-contact {
328       type string;
329       description
330         "Operator contact information to be included in ticket information. This is reported against the service, but may not get reflected in the service in the network.";
331     }
332   }
333
334   grouping service {
335     leaf service-name {
336       type string;
337       description
338         "Identifier for the service to be created in
339          the ROADM network, e.g., CLFI, CLCI, etc.";
340       mandatory true;
341     }
342     leaf common-id {
343       type string;
344       description
345         "To be used by the ROADM controller to identify the routing
346          constraints received from planning application (PED).";
347     }
348     uses sdnc-request-header;
349     leaf connection-type {
350       type connection-type;
351       mandatory true;
352       description
353         "Connection type";
354     }
355     leaf lifecycle-state {
356       type org-openroadm-common-types:lifecycle-state;
357       description
358         "Lifecycle State of service. Whether it is planned, deployed, in maintenance, etc.";
359     }
360     leaf administrative-state {
361       type org-openroadm-common-types:state;
362       description
363         "Administrative State: Intended state of service";
364     }
365     leaf operational-state {
366       type org-openroadm-common-types:state;
367       config false;
368       description
369         "Operational State: Actual state of service";
370     }
371     leaf condition {
372       type service-condition;
373       description
374         "Service Condition: Additional information about the state of the service. Only sent when applicable.";
375     }
376     container service-a-end {
377       uses service-endpoint;
378     }
379     container service-z-end {
380       uses service-endpoint;
381     }
382     uses org-openroadm-routing-constraints:routing-constraints;
383     uses service-information;
384     leaf latency {
385       type uint32;
386       description
387         "Latency on service";
388     }
389     leaf-list fiber-span-srlgs {
390       type string;
391       description
392         "Shared risk link group identifiers";
393     }
394     list equipment-srgs {
395       key "srg-number";
396       uses org-openroadm-resource-types:srg-number;
397     }
398     leaf-list supporting-service-name {
399       description
400         "The service name that this runs over top. If connection-type is service, then this is the related
401          connection-type = infrastructure service, for example.";
402       type string;
403     }
404     container topology {
405       uses org-openroadm-topology:topology;
406     }
407   }
408
409   grouping service-notification-result {
410     leaf service-name {
411       type string;
412       description
413         "Identifier for the service e.g., CLFI, CLCI, etc.";
414       mandatory true;
415     }
416     leaf actual-date {
417       type yang:date-and-time;
418       description
419         "Actual date and time (if successful)";
420     }
421   }
422
423   typedef service-format {
424     type enumeration {
425       enum "Ethernet" {
426         value 1;
427       }
428       enum "OTU" {
429         value 2;
430       }
431       enum "OC" {
432         value 3;
433       }
434       enum "STM" {
435         value 4;
436       }
437       enum "OMS" {
438         value 5;
439       }
440       enum "ODU" {
441         value 6;
442       }
443       enum "OTM" {
444         value 7;
445       }
446     }
447   }
448
449   typedef service-notification-types {
450     type enumeration {
451       enum "service-create-result" {
452         value 1;
453       }
454       enum "service-reconfigure-result" {
455         value 2;
456       }
457       enum "service-delete-result" {
458         value 3;
459       }
460       enum "service-roll-result" {
461         value 4;
462       }
463       enum "service-revert-result" {
464         value 5;
465       }
466       enum "service-reroute-result" {
467         value 6;
468       }
469       enum "service-restoration-result" {
470         value 7;
471       }
472     }
473   }
474
475   typedef connection-type {
476     type enumeration {
477       enum "service" {
478         value 1;
479       }
480       enum "infrastructure" {
481         value 2;
482       }
483       enum "roadm-line" {
484         value 3;
485       }
486     }
487   }
488
489   typedef service-condition {
490     type enumeration {
491       enum "restored-temporarily" {
492         value 1;
493       }
494       enum "re-routed-temporarily" {
495         value 2;
496       }
497       enum "activated-for-service" {
498         value 3;
499       }
500       enum "activated-for-further-check" {
501         value 4;
502       }
503       enum "activated-for-troubleshooting-failure" {
504         value 5;
505       }
506     }
507   }
508 }