2 * Yang model for the Application Controller (APP-C) component of ECOMP
4 * This model is used to define the data and services of the Application Controller
5 * component of ECOMP. The APP-C controller initiates the processing of directed
6 * graphs, which define the actual process implementations used. The name of the
7 * directed graph is set by properties and cannot be changed dynamically.
9 * The services exposed by this provider are:
12 * Used to request a restart of a virtual network function (a VM).
15 * Used to request a rebuild of a virtual network function (a VM).
19 module appc-provider-lcm {
22 namespace "org:openecomp:appc:lcm";
23 prefix appc-provider-lcm;
24 organization "Copyright 2017 AT&T Intellectual Property.";
27 "Defines the services and request/response requirements for the ECOMP APP-C component.";
30 * Note, the revision changes the package name of the generated java code. Do not
31 * change the revision unless you also update all references to the bindings.
33 revision "2016-01-08" {
35 "APP-C interface version 1.0.48";
38 /**********************************************************************************
39 * Data type definitions
41 * The following data type definitions are used to define common data structures,
42 * define constraints, or to impart special meanings to data objects related to the
43 * APP-C controller functions.
44 **********************************************************************************/
49 description "Define a common definition of a time stamp (expressed as a formatted
50 string) as follows yyyy-MM-ddTHH:mm:ss.SSSSSSSSZ";
53 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";
59 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";
75 enum "SoftwareUpload";
84 enum "ConfigScaleOut";
87 enum "ConfigBackupDelete";
90 description "The action to be taken by APP-C, e.g. Restart, Rebuild, Migrate";
93 /**********************************************************************************
94 * All requests will include this standard header
96 * The standard request header is used to define a correlation identification for
97 * the request that is returned on all responses. This correlation identifier
98 * (called the service-request-id) is meaningful to the caller and is included on
99 * all responses from the services.
100 **********************************************************************************/
103 /**********************************************************************************
104 * Basic manipulation of a VNF (or VM) will typically include querying the current
105 * state, restarting, rebuilding, stopping, starting, etc. In all of these basic
106 * "state"-type operations, the services require the identification of the VNF to
107 * be operated on, and the region or LCP that contains that resource. This
108 * information is used across all of these services, so it has been defined as a
109 * common structure here and is referenced in the appropriate RPC definitions.
110 **********************************************************************************/
113 /**********************************************************************************
114 * All responses will include this standard header
116 * The standard response header includes the time of completion as well as a
117 * success|failure indication
118 **********************************************************************************/
122 /**********************************************************************************
123 * All requests/response will include this standard header
125 * The standard common header is used to define a correlation identification for
126 * the request that is returned on all responses.
127 **********************************************************************************/
131 grouping common-header {
132 description "A common header for all APP-C requests";
133 container common-header {
134 description "A common header for all APP-C requests";
136 description "timestamp is in ISO 8601 timestamp format ZULU offset";
142 description "api-ver is the API version identifier. A given release of APPC
143 should support all previous versions of APPC API (correlate with
144 general requirements)";
146 pattern "[2]\.\d\d" {
147 error-message "API Version 2.XX is supported at this end point";
154 description "originator-id an identifier of the calling system which can be
155 used addressing purposes, i.e. returning asynchronous response
156 to the proper destination over DMaaP (especially in case of multiple
157 consumers of APP-C APIs)";
163 description "UUID for the request ID. An OSS/BSS identifier for the request
164 that caused the current action. Multiple API calls may be made
165 with the same request-id The request-id shall be recorded throughout
166 the operations on a single request";
171 leaf sub-request-id {
172 description "Uniquely identifies a specific LCM action. It is persistent over
173 the life-cycle of a single request";
179 /**********************************************************************************
180 * Flags are generic flags that apply to any and all commands, all are optional
181 * 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.
182 * ttl = <0....N> - The timeout value for command execution, expressed in seconds
183 * mode = EXCLUSIVE/NORMAL - defines execution mode as follows:
184 * - EXCLUSIVE ? on encountering an exclusive command, the APP-C will:
185 * * Cease accepting additional command requests
186 * * Complete execution of outstanding commands
187 * * Execute the exclusive command to completion
188 * * Optionally report the result of the command
189 * * Optionally resume command acceptance and processing
190 * - NORMAL - Obverse of EXCLUSIVE, the default one.
191 **********************************************************************************/
193 description "Flags are generic flags that apply to any and all commands, all
200 description "EXCLUSIVE (accept no queued requests on this VNF while processing)
201 or NORMAL (queue other requests until complete)";
209 description "TRUE/FALSE - Execute action even if target is in unstable (i.e.
210 locked, transiting, etc.) state";
214 description "<0....N> -Â The timeout value (expressed in seconds) for action
215 execution, between action being received by APPC and action initiation";
224 grouping action-identifiers {
225 description "A block containing the action arguments. These are used to specify
226 the object upon which APP-C LCM command is to operate";
227 container action-identifiers {
228 description "A block containing the action arguments. These are used to specify
229 the object upon which APP-C LCM command is to operate";
230 leaf service-instance-id {
231 description "identifies a specific service the command refers to. When multiple
232 APP-C instances are used and applied to a subset of services,
233 this will become significant . The field is mandatory when the
239 description "identifies the VNF to which this action is to be applied(vnf-id
240 uniquely identifies the service-instance referred to). Note that
241 some actions are applied to multiple VNFs in the same service.
242 When this is the case, vnf-id may be left out, but service-instance-id
243 must appear. The field is mandatory when service-instance-id is
249 description "identifies the VNFC to which this action is to be applied. Some
250 actions apply only to a component within a VNF (e.g. RESTART is
251 sometimes applied to on VM only). In such a case, the name of
252 the VNFC is used to search for the component within the VNF";
257 description "identifies a specific VM within the given service/vnf to which
258 this action is to be applied";
267 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";
269 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";
271 description "Response code";
276 description "Response message";
287 /**********************************************************************************
288 * Define the restart service
289 **********************************************************************************/
291 description "An operation to restart a virtual network function (or VM)";
298 uses action-identifiers;
310 /**********************************************************************************
311 * Define the rebuild service
312 **********************************************************************************/
314 description "An operation to rebuild a virtual network function (or VM)";
321 uses action-identifiers;
333 /**********************************************************************************
334 * Define the migrate service
335 **********************************************************************************/
337 description "An operation to migrate a virtual network function (or VM)";
344 uses action-identifiers;
356 /**********************************************************************************
357 * Define the evacuate service
358 **********************************************************************************/
360 description "An operation to evacuate a virtual network function (or VM)";
367 uses action-identifiers;
380 /**********************************************************************************
381 * Define the snapshot service
382 **********************************************************************************/
384 description "An operation to create a snapshot of a virtual network function (or VM)";
391 uses action-identifiers;
411 /**********************************************************************************
412 * Define the rollback service
413 **********************************************************************************/
415 description "An operation to rollback to particular snapshot of a virtual network function (or VM)";
422 uses action-identifiers;
443 /**********************************************************************************
444 * Additional RPCs added here...
445 **********************************************************************************/
448 /**********************************************************************************
449 * Define the sync service
450 **********************************************************************************/
452 description "An operation to sync the configurations of a virtual network function (or VM)";
459 uses action-identifiers;
475 /**********************************************************************************
476 * Define the terminate service
477 **********************************************************************************/
479 description "An operation to terminate the configurations of a virtual network function (or VM)";
486 uses action-identifiers;
500 description "An operation to configure the configurations of a virtual network
508 uses action-identifiers;
525 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";
532 uses action-identifiers;
548 rpc config-scaleout {
549 description "An operation to scaleout the configurations of a virtual network
557 uses action-identifiers;
574 description "An operation to restore the configurations of a virtual network
582 uses action-identifiers;
598 /**********************************************************************************
599 * Define the test service
600 **********************************************************************************/
602 description "An operation to test the configurations of a virtual network function (or VM)";
609 uses action-identifiers;
621 /**********************************************************************************
622 * Define the stop service
623 **********************************************************************************/
625 description "An operation to stop the configurations of a virtual network function (or VM)";
632 uses action-identifiers;
645 description "An operation to start a virtual network function (or VM)";
652 uses action-identifiers;
664 /**********************************************************************************
665 * Define the audit service
666 **********************************************************************************/
668 description "An operation to audit the configurations of a virtual network function (or VM)";
675 uses action-identifiers;
691 /**********************************************************************************
692 * Define the SoftwareUpload vSCP service
693 **********************************************************************************/
694 rpc software-upload {
695 description "An operation to upload a new version of vSCP image to vSCP for updating it";
702 uses action-identifiers;
716 /**********************************************************************************
717 * Define the PreHealthCheck vSCP service
718 **********************************************************************************/
720 description "An operation to perform health check of vSCP prior its upgrading";
727 uses action-identifiers;
741 /**********************************************************************************
742 * Define the Upgrade vSCP service
743 **********************************************************************************/
745 description "An operation to perform upgrade of vSCP";
752 uses action-identifiers;
765 /**********************************************************************************
766 * Define the VNF lock service
767 **********************************************************************************/
769 description "An operation to perform VNF lock operation";
776 uses action-identifiers;
788 /**********************************************************************************
789 * Define the VNF unlock service
790 **********************************************************************************/
792 description "An operation to perform VNF unlock operation";
799 uses action-identifiers;
811 /**********************************************************************************
812 * Define the VNF check lock service
813 **********************************************************************************/
815 description "An operation to check VNF lock status";
822 uses action-identifiers;
832 description "TRUE/FALSE - returns TRUE when the given VNF was locked, otherwise returns FALSE";
840 description "An operation to Backup configurations of a virtual network function
848 uses action-identifiers;
860 rpc config-backup-delete {
861 description "An operation to Delete backup configurations of a virtual network
869 uses action-identifiers;
882 description "An operation to Export configurations of a virtual network function
890 uses action-identifiers;
898 /**********************************************************************************
899 * Additional RPCs added here...
900 **********************************************************************************/