Update OLM function tests
[transportpce.git] / tests / ordmodels_1.2.1 / org-openroadm-service.yang
1 module org-openroadm-service {
2   namespace "http://org/openroadm/service";
3   prefix org-openroadm-service;
4
5   import ietf-yang-types {
6     prefix yang;
7   }
8   import org-openroadm-routing-constraints {
9     prefix org-openroadm-routing-constraints;
10   }
11   import org-openroadm-common-types {
12     prefix org-openroadm-common-types;
13   }
14   import org-openroadm-resource-types {
15     prefix org-openroadm-resource-types;
16   }
17   import org-openroadm-common-service-types {
18     prefix org-openroadm-common-service-types;
19   }
20
21   organization
22     "Open ROADM MSA";
23   contact
24     "OpenROADM.org";
25   description
26     "YANG definitions of services.
27
28       Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
29       AT&T Intellectual Property.  All other rights reserved.
30
31       Redistribution and use in source and binary forms, with or without modification,
32       are permitted provided that the following conditions are met:
33
34       * Redistributions of source code must retain the above copyright notice, this
35         list of conditions and the following disclaimer.
36       * Redistributions in binary form must reproduce the above copyright notice,
37         this list of conditions and the following disclaimer in the documentation and/or
38         other materials provided with the distribution.
39       * Neither the Members of the Open ROADM MSA Agreement nor the names of its
40         contributors may be used to endorse or promote products derived from this software
41         without specific prior written permission.
42
43       THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
44       AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
45       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
46       IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
47       INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
48       NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
49       OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
50       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
51       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
52       POSSIBILITY OF SUCH DAMAGE";
53
54   revision 2016-10-14 {
55     description
56       "Version 1.2";
57   }
58
59   rpc service-create {
60     input {
61       leaf service-name {
62         type string;
63         description
64           "Identifier for the service to be created in
65            the ROADM network, e.g., CLFI, CLCI, etc. This is reported against the service, but may not get reflected in the service in the network.";
66         mandatory true;
67       }
68       leaf common-id {
69         type string;
70         description
71           "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
72       }
73       uses org-openroadm-common-service-types:sdnc-request-header;
74       leaf connection-type {
75         type org-openroadm-common-service-types:connection-type;
76         mandatory true;
77       }
78       container service-a-end {
79         uses org-openroadm-common-service-types:service-endpoint;
80       }
81       container service-z-end {
82         uses org-openroadm-common-service-types:service-endpoint;
83       }
84       uses org-openroadm-routing-constraints:routing-constraints;
85       uses org-openroadm-common-service-types:service-information;
86     }
87     output {
88       uses org-openroadm-common-service-types:configuration-response-common;
89       uses org-openroadm-common-service-types:response-parameters;
90     }
91     description
92       "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
93        service-rpc-result Notification shall be sent.";
94   }
95   rpc service-feasibility-check {
96     input {
97       leaf common-id {
98         type string;
99         mandatory true;
100         description
101           "To be used by the ROADM controller to identify the routing
102            constraints received from planning application (PED).";
103       }
104       uses org-openroadm-common-service-types:sdnc-request-header;
105       leaf connection-type {
106         type org-openroadm-common-service-types:connection-type;
107       }
108       container service-a-end {
109         uses org-openroadm-common-service-types:service-endpoint;
110       }
111       container service-z-end {
112         uses org-openroadm-common-service-types:service-endpoint;
113       }
114       uses org-openroadm-routing-constraints:routing-constraints;
115       uses org-openroadm-common-service-types:service-information;
116     }
117     output {
118       uses org-openroadm-common-service-types:configuration-response-common;
119       uses org-openroadm-common-service-types:response-parameters;
120       container service-a-end {
121         uses org-openroadm-common-service-types:service-endpoint;
122         list equipment-required {
123           description
124             "List of required equipment, including equipment type and quantity";
125           key "eqipment-identifier";
126           leaf eqipment-identifier {
127             type string;
128           }
129           leaf equipment-type {
130             type string;
131           }
132           leaf equipment-quantity {
133             type uint32;
134           }
135         }
136       }
137       container service-z-end {
138         uses org-openroadm-common-service-types:service-endpoint;
139         list equipment-required {
140           description
141             "List of required equipment, including equipment type and quantity";
142           key "eqipment-identifier";
143           leaf eqipment-identifier {
144             type string;
145           }
146           leaf equipment-type {
147             type string;
148           }
149           leaf equipment-quantity {
150             type uint32;
151           }
152         }
153       }
154       list intermediate-sites {
155         key "clli";
156         uses org-openroadm-common-service-types:service-endpoint;
157         list equipment-required {
158           description
159             "List of required equipment, including equipment type and quantity";
160           key "eqipment-identifier";
161           leaf eqipment-identifier {
162             type string;
163           }
164           leaf equipment-type {
165             type string;
166           }
167           leaf equipment-quantity {
168             type uint32;
169           }
170         }
171       }
172     }
173     description
174       "Whether a service was possible to be created, and if so
175        the routing constraints match and the a and z end connection that have
176        to match";
177   }
178   rpc service-delete {
179     input {
180       uses org-openroadm-common-service-types:sdnc-request-header;
181       container service-delete-req-info {
182         leaf service-name {
183           type string;
184           description
185             "Identifier for the service to be deleted in
186              the ROADM network, e.g., CLFI, CLCI, etc.";
187           mandatory true;
188         }
189         leaf due-date {
190           type yang:date-and-time;
191           description
192             "date and time service to be turned down. If missing, now.";
193         }
194         leaf tail-retention {
195           type enumeration {
196             enum "yes" {
197               value 1;
198               description
199                 "tails are left intact ";
200             }
201             enum "no" {
202               value 2;
203               description
204                 "tails are deleted";
205             }
206           }
207           mandatory true;
208         }
209       }
210     }
211     output {
212       uses org-openroadm-common-service-types:configuration-response-common;
213     }
214     description
215       "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
216        service-rpc-result Notification shall be sent. Once the service has been deleted, it no longer will appear in the service list";
217   }
218   rpc equipment-notification {
219     input {
220       uses org-openroadm-common-service-types:sdnc-request-header;
221       leaf equiptment-id {
222         type string;
223         mandatory true;
224       }
225       leaf equipment-name {
226         type string;
227       }
228       leaf equipemt-type {
229         type string;
230         mandatory true;
231       }
232       leaf equipment-vendor {
233         type string;
234         mandatory true;
235       }
236       leaf equipment-customer {
237         type string;
238       }
239       leaf equipment-clli {
240         type string;
241         mandatory true;
242       }
243       leaf equipment-ip {
244         type string;
245       }
246       leaf controller-id {
247         type string;
248         mandatory true;
249       }
250     }
251     output {
252       uses org-openroadm-common-service-types:configuration-response-common;
253     }
254   }
255   rpc temp-service-create {
256     input {
257       leaf common-id {
258         type string;
259         description
260           "To be used by the ROADM controller to identify the routing constraints received from planning application (PED).";
261         mandatory true;
262       }
263       uses org-openroadm-common-service-types:sdnc-request-header;
264       leaf connection-type {
265         type org-openroadm-common-service-types:connection-type;
266         mandatory true;
267       }
268       container service-a-end {
269         uses org-openroadm-common-service-types:service-endpoint;
270       }
271       container service-z-end {
272         uses org-openroadm-common-service-types:service-endpoint;
273       }
274       uses org-openroadm-routing-constraints:routing-constraints;
275       uses org-openroadm-common-service-types:service-information;
276     }
277     output {
278       uses org-openroadm-common-service-types:configuration-response-common;
279       uses org-openroadm-common-service-types:response-parameters;
280     }
281   }
282   rpc temp-service-delete {
283     input {
284       leaf common-id {
285         type string;
286         mandatory true;
287       }
288     }
289     output {
290       uses org-openroadm-common-service-types:configuration-response-common;
291     }
292   }
293   rpc service-roll {
294     input {
295       leaf service-name {
296         type string;
297         mandatory true;
298         description
299           "Identifier for the service to be rolled in
300            the ROADM network, e.g., CLFI, CLCI, etc.";
301       }
302       leaf due-date {
303         type yang:date-and-time;
304         description
305           "date and time service to be rolled";
306       }
307     }
308     output {
309       uses org-openroadm-common-types:rpc-response-status;
310     }
311   }
312   rpc service-reconfigure {
313     input {
314       leaf service-name {
315         type string;
316         mandatory true;
317         description
318           "Existing identifier for the service to be
319            reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
320       }
321       leaf new-service-name {
322         type string;
323         description
324           "New identifier for the service to be
325            reconfigured in the ROADM network, e.g., CLFI, CLCI, etc.";
326       }
327       leaf common-id {
328         type string;
329         description
330           "To be used by the ROADM controller to identify the routing
331            constraints received from planning application (PED).";
332       }
333       leaf connection-type {
334         type org-openroadm-common-service-types:connection-type;
335       }
336       container service-a-end {
337         uses org-openroadm-common-service-types:service-endpoint;
338       }
339       container service-z-end {
340         uses org-openroadm-common-service-types:service-endpoint;
341       }
342       uses org-openroadm-routing-constraints:routing-constraints;
343       uses org-openroadm-common-service-types:service-information;
344     }
345     output {
346       uses org-openroadm-common-types:rpc-response-status;
347     }
348     description
349       "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
350        service-rpc-result Notification shall be sent.";
351   }
352   rpc service-restoration {
353     input {
354       leaf service-name {
355         type string;
356         mandatory true;
357         description
358           "Identifier for the service to be restored in
359            the ROADM network, e.g., CLFI, CLCI, etc.";
360       }
361       leaf option {
362         type enumeration {
363           enum "permanent" {
364             value 1;
365             description
366               "A spare regen can be used to restore the
367                service permanently without reverting back to the
368                original regen";
369           }
370           enum "temporary" {
371             value 2;
372             description
373               "a spare regen can be used to restore the
374                service temporarily.   The service needs to be reverted
375                back to the original regen transponder";
376           }
377         }
378         mandatory true;
379       }
380     }
381     output {
382       uses org-openroadm-common-types:rpc-response-status;
383     }
384     description
385       "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
386        service-rpc-result Notification shall be sent.";
387   }
388   rpc service-reversion {
389     input {
390       leaf service-name {
391         type string;
392         mandatory true;
393         description
394           "Identifier for the service to be reverted
395            in the ROADM network, e.g., CLFI, CLCI, etc. ";
396       }
397       leaf due-date {
398         type yang:date-and-time;
399         description
400           "date and time service to be reverted";
401       }
402     }
403     output {
404       uses org-openroadm-common-types:rpc-response-status;
405     }
406     description
407       "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
408        service-rpc-result Notification shall be sent.";
409   }
410   rpc service-reroute {
411     input {
412       leaf service-name {
413         type string;
414         mandatory true;
415         description
416           "Identifier for the service to be re-routed in
417            the ROADM network, e.g., CLFI, CLCI, etc.";
418       }
419     }
420     output {
421       uses org-openroadm-common-types:rpc-response-status;
422       uses org-openroadm-routing-constraints:routing-constraints;
423     }
424     description
425       "Whether this request was validated and processed correct. If sucessful, it return the proposed new route.
426        If acceptable, this request should be followed by a service-reroute-confirm to complete the reroute operation.";
427   }
428   rpc service-reroute-confirm {
429     input {
430       leaf service-name {
431         type string;
432         mandatory true;
433         description
434           "Identifier for the service to be re-routed in
435            the ROADM network, e.g., CLFI, CLCI, etc.";
436       }
437       uses org-openroadm-routing-constraints:routing-constraints;
438     }
439     output {
440       uses org-openroadm-common-types:rpc-response-status;
441     }
442     description
443       "Whether this request passed initial validation and was accepted for processing. Once the request completes processing, a
444        service-rpc-result Notification shall be sent.";
445   }
446   rpc network-re-optimization {
447     input {
448       leaf service-name {
449         type string;
450         description
451           "Identifier for the service in the ROADM network,
452            e.g., CLFI, CLCI, etc. whose path is to be checked by the RNC
453            for re-optimization";
454       }
455       leaf a-end {
456         type string;
457         description
458           "Services whose A-ends are terminated at the
459            specified office location are to be checked by the RNC for
460            re-optimization";
461       }
462       leaf z-end {
463         type string;
464         description
465           "Services whose Z-ends are terminated at the
466            specified office location are to be checked by the RNC for
467            re-optimization ";
468       }
469       leaf pass-through {
470         type string;
471         description
472           "Services that are pass-through (either via
473            regen or express) at the specified office location are to
474            be checked by the RNC for re-optimization";
475       }
476       leaf customer-code {
477         type string;
478         description
479           "Services that belong to the specified customer
480            are to be checked by the RNC for re-optimization ";
481       }
482     }
483     output {
484       uses org-openroadm-common-types:rpc-response-status;
485       leaf optimization-candidate {
486         type string;
487       }
488     }
489   }
490   container service-list {
491     description
492       "List of service. Can only be created, deleted, modified, etc. using special RPCs.";
493     list services {
494       key "service-name";
495       uses org-openroadm-common-service-types:service;
496     }
497   }
498   container temp-service-list {
499     description
500       "List of temporary services Can only be created, deleted, modified, etc. using special RPCs.";
501     list services {
502       key "common-id";
503       uses org-openroadm-common-service-types:service {
504         refine "service-name" {
505           mandatory false;
506         }
507       }
508     }
509   }
510   notification service-rpc-result {
511     description
512       "This Notification indicates result of  service RPC";
513     leaf notification-type {
514       type org-openroadm-common-service-types:service-notification-types;
515     }
516     uses org-openroadm-common-types:rpc-response-status;
517     uses org-openroadm-common-service-types:service-notification-result;
518   }
519   notification service-traffic-flow {
520     description
521       "This Notification indicates that traffic is flowing again on the service after an administrative action has completed";
522     leaf service-name {
523       type string;
524       description
525         "Identifier for the service being reported on";
526       mandatory true;
527     }
528     leaf actual-date {
529       type yang:date-and-time;
530       description
531         "Actual date and time traffic started flowing";
532     }
533   }
534   notification service-notification {
535     description
536       "This Notification that a service has been added, modified or removed.
537        A resourceCreation notification shall contain the created service in its entirety.
538        A resourceMofified notification shall contain just the modified field, plus the service identifier
539        A resourceDeleted notification shall just contain the service identifier";
540     leaf notificationType {
541       type org-openroadm-resource-types:resource-notification-type;
542       description
543         "Whether this notification indicates a service creation, service modification or service deletion.";
544     }
545     uses org-openroadm-common-service-types:service;
546   }
547 }