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