blob: b149abea57b29cfcbbc6884ec3b2d37e456c290e [file] [log] [blame]
Patrick Brady7a261fb2017-06-06 22:35:43 -07001/*-
2 * ============LICENSE_START=======================================================
Patrick Brady10bba352017-07-19 12:09:28 -07003 * ONAP : APPC
Patrick Brady7a261fb2017-06-06 22:35:43 -07004 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
Patrick Brady7a261fb2017-06-06 22:35:43 -07006 * ================================================================================
Patrick Brady10bba352017-07-19 12:09:28 -07007 * Copyright (C) 2017 Amdocs
8 * =============================================================================
Patrick Brady7a261fb2017-06-06 22:35:43 -07009 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 * http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
Patrick Brady10bba352017-07-19 12:09:28 -070020 *
Patrick Brady7a261fb2017-06-06 22:35:43 -070021 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
Patrick Brady10bba352017-07-19 12:09:28 -070022 * ============LICENSE_END=========================================================
Patrick Brady7a261fb2017-06-06 22:35:43 -070023 */
24
Patrick Brady57b5eef2017-02-10 15:00:49 -080025/*
26 * Yang model for the Application Controller (APP-C) component of ECOMP
27 *
28 * This model is used to define the data and services of the Application Controller
29 * component of ECOMP. The APP-C controller initiates the processing of directed
30 * graphs, which define the actual process implementations used. The name of the
31 * directed graph is set by properties and cannot be changed dynamically.
32 *
33 * The services exposed by this provider are:
34 *
35 * restart-vnf:
36 * Used to request a restart of a virtual network function (a VM).
37 *
38 * rebuild-vnf:
39 * Used to request a rebuild of a virtual network function (a VM).
40 *
41 */
42
43module appc-provider-lcm {
44
45 yang-version 1;
Patrick Bradyc7d00752017-06-01 10:45:37 -070046 namespace "org:openecomp:appc:lcm";
Patrick Brady57b5eef2017-02-10 15:00:49 -080047 prefix appc-provider-lcm;
48 organization "Copyright 2017 AT&T Intellectual Property.";
49
50 description
51 "Defines the services and request/response requirements for the ECOMP APP-C component.";
52
53 /*
54 * Note, the revision changes the package name of the generated java code. Do not
55 * change the revision unless you also update all references to the bindings.
56 */
57 revision "2016-01-08" {
58 description
59 "APP-C interface version 1.0.48";
60 }
61
62 /**********************************************************************************
63 * Data type definitions
64 *
65 * The following data type definitions are used to define common data structures,
66 * define constraints, or to impart special meanings to data objects related to the
67 * APP-C controller functions.
68 **********************************************************************************/
69
Patrick Bradyc7d00752017-06-01 10:45:37 -070070
Patrick Brady57b5eef2017-02-10 15:00:49 -080071
72 typedef ZULU {
Patrick Bradyc7d00752017-06-01 10:45:37 -070073 description "Define a common definition of a time stamp (expressed as a formatted
74 string) as follows yyyy-MM-ddTHH:mm:ss.SSSSSSSSZ";
Patrick Brady57b5eef2017-02-10 15:00:49 -080075 type string {
76 length "16..28";
77 pattern "[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}.[0-9]{1,6}Z";
78 }
79 }
80
81 typedef payload {
82 type string ;
83 description "The payload can be any valid JSON string value. Json escape characters need to be added when required to include an inner json within the payload to make it a valid json string value";
84 }
85
86 typedef action {
Patrick Bradyc7d00752017-06-01 10:45:37 -070087 type enumeration {
88 enum "Restart";
89 enum "Rebuild";
90 enum "Migrate";
91 enum "Evacuate";
92 enum "Snapshot";
93 enum "Rollback";
94 enum "Sync";
95 enum "Audit";
96 enum "Stop";
97 enum "Start";
98 enum "Terminate";
99 enum "SoftwareUpload";
100 enum "HealthCheck";
101 enum "LiveUpgrade";
102 enum "Lock";
103 enum "Unlock";
104 enum "Test";
105 enum "CheckLock";
106 enum "Configure";
107 enum "ConfigModify";
108 enum "ConfigScaleOut";
109 enum "ConfigRestore";
110 enum "ConfigBackup";
111 enum "ConfigBackupDelete";
112 enum "ConfigExport";
113 }
114 description "The action to be taken by APP-C, e.g. Restart, Rebuild, Migrate";
Patrick Brady57b5eef2017-02-10 15:00:49 -0800115 }
116
117 /**********************************************************************************
118 * All requests will include this standard header
119 *
120 * The standard request header is used to define a correlation identification for
121 * the request that is returned on all responses. This correlation identifier
122 * (called the service-request-id) is meaningful to the caller and is included on
123 * all responses from the services.
124 **********************************************************************************/
Patrick Bradyc7d00752017-06-01 10:45:37 -0700125
Patrick Brady57b5eef2017-02-10 15:00:49 -0800126
127 /**********************************************************************************
128 * Basic manipulation of a VNF (or VM) will typically include querying the current
129 * state, restarting, rebuilding, stopping, starting, etc. In all of these basic
130 * "state"-type operations, the services require the identification of the VNF to
131 * be operated on, and the region or LCP that contains that resource. This
132 * information is used across all of these services, so it has been defined as a
133 * common structure here and is referenced in the appropriate RPC definitions.
134 **********************************************************************************/
Patrick Bradyc7d00752017-06-01 10:45:37 -0700135
Patrick Brady57b5eef2017-02-10 15:00:49 -0800136
137 /**********************************************************************************
138 * All responses will include this standard header
139 *
140 * The standard response header includes the time of completion as well as a
141 * success|failure indication
142 **********************************************************************************/
Patrick Bradyc7d00752017-06-01 10:45:37 -0700143
Patrick Brady57b5eef2017-02-10 15:00:49 -0800144
145
146 /**********************************************************************************
147 * All requests/response will include this standard header
148 *
149 * The standard common header is used to define a correlation identification for
150 * the request that is returned on all responses.
151 **********************************************************************************/
Patrick Bradyc7d00752017-06-01 10:45:37 -0700152
153
154
155 grouping common-header {
156 description "A common header for all APP-C requests";
157 container common-header {
Patrick Brady57b5eef2017-02-10 15:00:49 -0800158 description "A common header for all APP-C requests";
Patrick Bradyc7d00752017-06-01 10:45:37 -0700159 leaf timestamp {
160 description "timestamp is in ISO 8601 timestamp format ZULU offset";
161 type ZULU;
162 mandatory true;
163 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800164
Patrick Bradyc7d00752017-06-01 10:45:37 -0700165 leaf api-ver {
166 description "api-ver is the API version identifier. A given release of APPC
167 should support all previous versions of APPC API (correlate with
168 general requirements)";
169 type string {
170 pattern "[2]\.\d\d" {
171 error-message "API Version 2.XX is supported at this end point";
Patrick Brady57b5eef2017-02-10 15:00:49 -0800172 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800173 }
Patrick Bradyc7d00752017-06-01 10:45:37 -0700174 mandatory true;
175 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800176
Patrick Bradyc7d00752017-06-01 10:45:37 -0700177 leaf originator-id {
178 description "originator-id an identifier of the calling system which can be
179 used addressing purposes, i.e. returning asynchronous response
180 to the proper destination over DMaaP (especially in case of multiple
181 consumers of APP-C APIs)";
182 type string;
183 mandatory true;
184 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800185
Patrick Bradyc7d00752017-06-01 10:45:37 -0700186 leaf request-id {
187 description "UUID for the request ID. An OSS/BSS identifier for the request
188 that caused the current action. Multiple API calls may be made
189 with the same request-id The request-id shall be recorded throughout
190 the operations on a single request";
191 type string;
192 mandatory true;
193 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800194
Patrick Bradyc7d00752017-06-01 10:45:37 -0700195 leaf sub-request-id {
196 description "Uniquely identifies a specific LCM action. It is persistent over
197 the life-cycle of a single request";
198 type string;
199 mandatory false;
200 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800201
202
203 /**********************************************************************************
204 * Flags are generic flags that apply to any and all commands, all are optional
205 * force = TRUE/FALSE - Execute command even if target is in unstable (i.e. locked, transiting, etc) state. Specific behaviour of forced commands varies, but implies cancellation of previous command and an override by the new command. The FALSE value is used by default.
206 * ttl = <0....N> - The timeout value for command execution, expressed in seconds
207 * mode = EXCLUSIVE/NORMAL - defines execution mode as follows:
208 * - EXCLUSIVE ? on encountering an exclusive command, the APP-C will:
209 * * Cease accepting additional command requests
210 * * Complete execution of outstanding commands
211 * * Execute the exclusive command to completion
212 * * Optionally report the result of the command
213 * * Optionally resume command acceptance and processing
214 * - NORMAL - Obverse of EXCLUSIVE, the default one.
215 **********************************************************************************/
Patrick Bradyc7d00752017-06-01 10:45:37 -0700216 container flags {
217 description "Flags are generic flags that apply to any and all commands, all
218 are optional";
219 leaf mode {
220 type enumeration {
221 enum "EXCLUSIVE";
222 enum "NORMAL";
Patrick Brady57b5eef2017-02-10 15:00:49 -0800223 }
Patrick Bradyc7d00752017-06-01 10:45:37 -0700224 description "EXCLUSIVE (accept no queued requests on this VNF while processing)
225 or NORMAL (queue other requests until complete)";
226 mandatory false;
227 }
228 leaf force {
229 type enumeration {
230 enum "TRUE";
231 enum "FALSE";
Patrick Brady57b5eef2017-02-10 15:00:49 -0800232 }
Patrick Bradyc7d00752017-06-01 10:45:37 -0700233 description "TRUE/FALSE - Execute action even if target is in unstable (i.e.
234 locked, transiting, etc.) state";
235 mandatory false;
236 }
237 leaf ttl {
238 description "<0....N> - The timeout value (expressed in seconds) for action
239 execution, between action being received by APPC and action initiation";
240 type uint16;
241 mandatory false;
242 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800243 }
244 }
245 }
246
247
Patrick Bradyc7d00752017-06-01 10:45:37 -0700248 grouping action-identifiers {
249 description "A block containing the action arguments. These are used to specify
250 the object upon which APP-C LCM command is to operate";
251 container action-identifiers {
252 description "A block containing the action arguments. These are used to specify
253 the object upon which APP-C LCM command is to operate";
254 leaf service-instance-id {
255 description "identifies a specific service the command refers to. When multiple
256 APP-C instances are used and applied to a subset of services,
257 this will become significant . The field is mandatory when the
258 vnf-id is empty";
259 type string;
260 mandatory false;
261 }
262 leaf vnf-id {
263 description "identifies the VNF to which this action is to be applied(vnf-id
264 uniquely identifies the service-instance referred to). Note that
265 some actions are applied to multiple VNFs in the same service.
266 When this is the case, vnf-id may be left out, but service-instance-id
267 must appear. The field is mandatory when service-instance-id is
268 empty";
269 type string;
270 mandatory false;
271 }
272 leaf vnfc-name {
273 description "identifies the VNFC to which this action is to be applied. Some
274 actions apply only to a component within a VNF (e.g. RESTART is
275 sometimes applied to on VM only). In such a case, the name of
276 the VNFC is used to search for the component within the VNF";
277 type string;
278 mandatory false;
279 }
280 leaf vserver-id {
281 description "identifies a specific VM within the given service/vnf to which
282 this action is to be applied";
283 type string;
284 mandatory false;
Patrick Brady57b5eef2017-02-10 15:00:49 -0800285 }
286 }
Patrick Bradyc7d00752017-06-01 10:45:37 -0700287 }
288
Patrick Brady57b5eef2017-02-10 15:00:49 -0800289
290 grouping status {
291 description "The specific response codes are to be aligned with ASDC reference doc (main table removed to avoid duplication and digression from main table). See ASDC and ECOMP Distribution Consumer Interface Agreement";
292 container status {
293 description "The specific response codes are to be aligned with ASDC reference doc (main table removed to avoid duplication and digression from main table). See ASDC and ECOMP Distribution Consumer Interface Agreement";
294 leaf code {
295 description "Response code";
296 type uint16;
297 mandatory true;
298 }
299 leaf message {
300 description "Response message";
301 type string;
302 mandatory true;
303 }
304 }
305 }
306
307
Patrick Brady57b5eef2017-02-10 15:00:49 -0800308
309
310
311 /**********************************************************************************
312 * Define the restart service
313 **********************************************************************************/
314 rpc restart {
315 description "An operation to restart a virtual network function (or VM)";
316 input {
317 uses common-header;
318 leaf action {
319 type action;
320 mandatory true;
321 }
322 uses action-identifiers;
323 leaf payload {
324 type payload;
325 mandatory false;
326 }
327 }
328 output {
329 uses common-header;
330 uses status;
331 }
332 }
333
334 /**********************************************************************************
335 * Define the rebuild service
336 **********************************************************************************/
337 rpc rebuild {
338 description "An operation to rebuild a virtual network function (or VM)";
339 input {
340 uses common-header;
341 leaf action {
342 type action;
343 mandatory true;
344 }
345 uses action-identifiers;
346 leaf payload {
347 type payload;
348 mandatory false;
349 }
350 }
351 output {
352 uses common-header;
353 uses status;
354 }
355 }
356
357 /**********************************************************************************
358 * Define the migrate service
359 **********************************************************************************/
360 rpc migrate {
361 description "An operation to migrate a virtual network function (or VM)";
362 input {
363 uses common-header;
364 leaf action {
365 type action;
366 mandatory true;
367 }
368 uses action-identifiers;
369 leaf payload {
370 type payload;
371 mandatory false;
372 }
373 }
374 output {
375 uses common-header;
376 uses status;
377 }
378 }
379
380 /**********************************************************************************
381 * Define the evacuate service
382 **********************************************************************************/
383 rpc evacuate {
384 description "An operation to evacuate a virtual network function (or VM)";
385 input {
386 uses common-header;
387 leaf action {
388 type action;
389 mandatory true;
390 }
391 uses action-identifiers;
392 leaf payload {
393 type payload;
394 mandatory false;
395 }
396 }
397 output {
398 uses common-header;
399 uses status;
400 }
401 }
402
403
404 /**********************************************************************************
405 * Define the snapshot service
406 **********************************************************************************/
407 rpc snapshot {
408 description "An operation to create a snapshot of a virtual network function (or VM)";
409 input {
410 uses common-header;
411 leaf action {
412 type action;
413 mandatory true;
414 }
415 uses action-identifiers;
416 leaf payload {
417 type payload;
418 mandatory false;
419 }
420 leaf identity-url {
421 type string;
422 mandatory true;
423 }
424 }
425 output {
426 uses common-header;
427 uses status;
428 leaf snapshot-id {
429 type string;
430 }
431
432 }
433 }
434
435 /**********************************************************************************
436 * Define the rollback service
437 **********************************************************************************/
438 rpc rollback {
439 description "An operation to rollback to particular snapshot of a virtual network function (or VM)";
440 input {
441 uses common-header;
442 leaf action {
443 type action;
444 mandatory true;
445 }
446 uses action-identifiers;
447 leaf payload {
448 type payload;
449 mandatory false;
450 }
451 leaf identity-url {
452 type string;
453 mandatory true;
454 }
455 leaf snapshot-id {
456 type string;
457 mandatory true;
458 }
459 }
460 output {
461 uses common-header;
462 uses status;
463 }
464 }
465
466
467 /**********************************************************************************
468 * Additional RPCs added here...
469 **********************************************************************************/
470
471
472 /**********************************************************************************
473 * Define the sync service
474 **********************************************************************************/
475 rpc sync {
476 description "An operation to sync the configurations of a virtual network function (or VM)";
477 input {
478 uses common-header;
479 leaf action {
480 type action;
481 mandatory true;
482 }
483 uses action-identifiers;
Patrick Bradyc7d00752017-06-01 10:45:37 -0700484 leaf payload {
485 type payload;
486 mandatory false;
487 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800488 }
489 output {
490 uses common-header;
491 uses status;
Patrick Bradyc7d00752017-06-01 10:45:37 -0700492 leaf payload {
493 type payload;
494 mandatory false;
495 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800496 }
497 }
498
499 /**********************************************************************************
500 * Define the terminate service
501 **********************************************************************************/
502 rpc terminate {
503 description "An operation to terminate the configurations of a virtual network function (or VM)";
504 input {
505 uses common-header;
506 leaf action {
507 type action;
508 mandatory true;
509 }
510 uses action-identifiers;
511 leaf payload {
512 type payload;
513 mandatory false;
514 }
515 }
516 output {
517 uses common-header;
518 uses status;
519 }
520 }
521
Patrick Bradyc7d00752017-06-01 10:45:37 -0700522
523 rpc configure {
524 description "An operation to configure the configurations of a virtual network
525 function (or VM)";
Patrick Brady57b5eef2017-02-10 15:00:49 -0800526 input {
527 uses common-header;
528 leaf action {
Patrick Bradyc7d00752017-06-01 10:45:37 -0700529 type action;
530 mandatory true;
Patrick Brady57b5eef2017-02-10 15:00:49 -0800531 }
532 uses action-identifiers;
533 leaf payload {
Patrick Bradyc7d00752017-06-01 10:45:37 -0700534 type payload;
535 mandatory false;
Patrick Brady57b5eef2017-02-10 15:00:49 -0800536 }
537 }
538 output {
539 uses common-header;
540 uses status;
Patrick Bradyc7d00752017-06-01 10:45:37 -0700541 leaf payload {
542 type payload;
543 mandatory false;
544 }
545 }
546 }
547
548 rpc config-modify {
549 description "Use the ModifyConfig command when a full configuration cycle is either not required or is considered too costly. The ModifyConfig LCM action affects only a subset of the total configuration data of a VNF. The set of configuration parameters to be affected is a subset of the total configuration data of the target VNF type. The payload block must contain the configuration parameters to be modified and their values. A successful modify returns a success response. A failed modify returns a failure response and the specific failure messages in the response payload block";
550 input {
551 uses common-header;
552 leaf action {
553 type action;
554 mandatory true;
555 }
556 uses action-identifiers;
557 leaf payload {
558 type payload;
559 mandatory false;
560 }
561 }
562 output {
563 uses common-header;
564 uses status;
565 leaf payload {
566 type payload;
567 mandatory false;
568 }
569 }
570 }
571
572 rpc config-scaleout {
573 description "An operation to scaleout the configurations of a virtual network
574 function (or VM)";
575 input {
576 uses common-header;
577 leaf action {
578 type action;
579 mandatory true;
580 }
581 uses action-identifiers;
582 leaf payload {
583 type payload;
584 mandatory false;
585 }
586 }
587 output {
588 uses common-header;
589 uses status;
590 leaf payload {
591 type payload;
592 mandatory false;
593 }
594 }
595 }
596
597 rpc config-restore {
598 description "An operation to restore the configurations of a virtual network
599 function (or VM)";
600 input {
601 uses common-header;
602 leaf action {
603 type action;
604 mandatory true;
605 }
606 uses action-identifiers;
607 leaf payload {
608 type payload;
609 mandatory false;
610 }
611 }
612 output {
613 uses common-header;
614 uses status;
615 leaf payload {
616 type payload;
617 mandatory false;
618 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800619 }
620 }
621
622 /**********************************************************************************
623 * Define the test service
624 **********************************************************************************/
625 rpc test {
626 description "An operation to test the configurations of a virtual network function (or VM)";
627 input {
628 uses common-header;
629 leaf action {
630 type action;
631 mandatory true;
632 }
633 uses action-identifiers;
634 leaf payload {
635 type payload;
636 mandatory false;
637 }
638 }
639 output {
640 uses common-header;
641 uses status;
642 }
643 }
644
645 /**********************************************************************************
646 * Define the stop service
647 **********************************************************************************/
648 rpc stop {
649 description "An operation to stop the configurations of a virtual network function (or VM)";
650 input {
651 uses common-header;
652 leaf action {
653 type action;
654 mandatory true;
655 }
656 uses action-identifiers;
657 leaf payload {
658 type payload;
659 mandatory false;
660 }
661 }
662 output {
663 uses common-header;
664 uses status;
665 }
666 }
667
Patrick Bradyc7d00752017-06-01 10:45:37 -0700668 rpc start {
669 description "An operation to start a virtual network function (or VM)";
670 input {
671 uses common-header;
672 leaf action {
673 type action;
674 mandatory true;
675 }
676 uses action-identifiers;
677 leaf payload {
678 type payload;
679 mandatory false;
680 }
681 }
682 output {
683 uses common-header;
684 uses status;
685 }
686 }
687
Patrick Brady57b5eef2017-02-10 15:00:49 -0800688 /**********************************************************************************
689 * Define the audit service
690 **********************************************************************************/
691 rpc audit {
692 description "An operation to audit the configurations of a virtual network function (or VM)";
693 input {
694 uses common-header;
695 leaf action {
696 type action;
697 mandatory true;
698 }
699 uses action-identifiers;
Patrick Bradyc7d00752017-06-01 10:45:37 -0700700 leaf payload {
701 type payload;
702 mandatory false;
703 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800704 }
705 output {
706 uses common-header;
707 uses status;
Patrick Bradyc7d00752017-06-01 10:45:37 -0700708 leaf payload {
709 type payload;
710 mandatory false;
711 }
Patrick Brady57b5eef2017-02-10 15:00:49 -0800712 }
713 }
714
715 /**********************************************************************************
716 * Define the SoftwareUpload vSCP service
717 **********************************************************************************/
718 rpc software-upload {
719 description "An operation to upload a new version of vSCP image to vSCP for updating it";
720 input {
721 uses common-header;
722 leaf action {
723 type action;
724 mandatory true;
725 }
726 uses action-identifiers;
727 leaf payload {
728 type payload;
729 mandatory false;
730 }
731 }
732 output {
733 uses common-header;
734 uses status;
735 }
736 }
737
738
739
740 /**********************************************************************************
741 * Define the PreHealthCheck vSCP service
742 **********************************************************************************/
743 rpc health-check {
744 description "An operation to perform health check of vSCP prior its upgrading";
745 input {
746 uses common-header;
747 leaf action {
748 type action;
749 mandatory true;
750 }
751 uses action-identifiers;
752 leaf payload {
753 type payload;
754 mandatory false;
755 }
756 }
757 output {
758 uses common-header;
759 uses status;
760
761 }
762 }
763
764
765 /**********************************************************************************
766 * Define the Upgrade vSCP service
767 **********************************************************************************/
768 rpc live-upgrade {
769 description "An operation to perform upgrade of vSCP";
770 input {
771 uses common-header;
772 leaf action {
773 type action;
774 mandatory true;
775 }
776 uses action-identifiers;
777 leaf payload {
778 type payload;
779 mandatory false;
780 }
781 }
782 output {
783 uses common-header;
784 uses status;
785 }
786 }
787
788
789 /**********************************************************************************
790 * Define the VNF lock service
791 **********************************************************************************/
792 rpc lock {
793 description "An operation to perform VNF lock operation";
794 input {
795 uses common-header;
796 leaf action {
797 type action;
798 mandatory true;
799 }
800 uses action-identifiers;
801 leaf payload {
802 type payload;
803 mandatory false;
804 }
805 }
806 output {
807 uses common-header;
808 uses status;
809 }
810 }
811
812 /**********************************************************************************
Patrick Bradyc7d00752017-06-01 10:45:37 -0700813 * Define the VNF unlock service
814 **********************************************************************************/
Patrick Brady57b5eef2017-02-10 15:00:49 -0800815 rpc unlock {
816 description "An operation to perform VNF unlock operation";
817 input {
818 uses common-header;
819 leaf action {
820 type action;
821 mandatory true;
822 }
823 uses action-identifiers;
824 leaf payload {
825 type payload;
826 mandatory false;
827 }
828 }
829 output {
830 uses common-header;
831 uses status;
832 }
833 }
834
835 /**********************************************************************************
836 * Define the VNF check lock service
837 **********************************************************************************/
838 rpc check-lock {
839 description "An operation to check VNF lock status";
840 input {
841 uses common-header;
842 leaf action {
843 type action;
844 mandatory true;
845 }
846 uses action-identifiers;
847 }
848 output {
849 uses common-header;
850 uses status;
851 leaf locked {
852 type enumeration {
853 enum "TRUE";
854 enum "FALSE";
855 }
856 description "TRUE/FALSE - returns TRUE when the given VNF was locked, otherwise returns FALSE";
857 mandatory false;
858 }
859 }
860 }
861
862
Patrick Bradyc7d00752017-06-01 10:45:37 -0700863 rpc config-backup {
864 description "An operation to Backup configurations of a virtual network function
865 (or VM)";
866 input {
867 uses common-header;
868 leaf action {
869 type action;
870 mandatory true;
871 }
872 uses action-identifiers;
873 }
874 output {
875 uses common-header;
876 uses status;
877 leaf payload {
878 type payload;
879 mandatory false;
880 }
881 }
882 }
883
884 rpc config-backup-delete {
885 description "An operation to Delete backup configurations of a virtual network
886 function (or VM)";
887 input {
888 uses common-header;
889 leaf action {
890 type action;
891 mandatory true;
892 }
893 uses action-identifiers;
894 }
895 output {
896 uses common-header;
897 uses status;
898 leaf payload {
899 type payload;
900 mandatory false;
901 }
902 }
903 }
904
905 rpc config-export {
906 description "An operation to Export configurations of a virtual network function
907 (or VM)";
908 input {
909 uses common-header;
910 leaf action {
911 type action;
912 mandatory true;
913 }
914 uses action-identifiers;
915 }
916 output {
917 uses common-header;
918 uses status;
919 }
920 }
921
Patrick Brady57b5eef2017-02-10 15:00:49 -0800922 /**********************************************************************************
923 * Additional RPCs added here...
924 **********************************************************************************/
925}