Added x-onap-requestorid to common-header for LCM commands
[appc.git] / appc-provider / appc-provider-model / src / main / yang / appc-provider-lcm.yang
index a5947c4..c60ce16 100644 (file)
@@ -2,9 +2,11 @@
  * ============LICENSE_START=======================================================
  * ONAP : APPC
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Copyright (C) 2017 Amdocs
+ * ================================================================================
+ * Modifications Copyright (C) 2018-2019 Orange Nokia
  * =============================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -45,9 +47,6 @@ module appc-provider-lcm {
     yang-version 1;
     namespace "org:onap:appc:lcm";
     prefix appc-provider-lcm;
-    organization "Copyright 2017 AT&T Intellectual Property.";
-    contact
-        "Dewayne Hafenstein <dh868g@att.us.com>";
         
     description
       "Defines the services and request/response requirements for the ECOMP APP-C component.";
@@ -74,7 +73,7 @@ module appc-provider-lcm {
                 string) as follows yyyy-MM-ddTHH:mm:ss.SSSSSSSSZ";
         type string {
             length "16..28";
-            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";
+            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";
         }
     }
 
@@ -98,6 +97,7 @@ module appc-provider-lcm {
             enum "Terminate";
             enum "SoftwareUpload";
             enum "HealthCheck";
+            enum "LicenseManagement";
             enum "LiveUpgrade";
             enum "Lock";
             enum "Unlock";
@@ -124,7 +124,23 @@ module appc-provider-lcm {
             enum "Reboot";
             enum "AttachVolume";
             enum "DetachVolume";
-            
+            enum "PreConfigure";
+            enum "GetConfig";
+            enum "DistributeTraffic";
+            enum "DistributeTrafficCheck";
+            enum "PostRebuild";
+            enum "PreRebuild";
+            enum "PreEvacuate";
+            enum "PostEvacuate";
+            enum "PreMigrate";
+            enum "PostMigrate";
+            enum "Provisioning";
+            enum "StartTraffic";
+            enum "StatusTraffic";
+            enum "StopTraffic";
+            enum "ConfigScaleIn";
+            enum "DownloadNESw";
+            enum "ActivateNESw";
         }
         description "The action to be taken by APP-C, e.g. Restart, Rebuild, Migrate";
     }
@@ -222,6 +238,16 @@ module appc-provider-lcm {
                 mandatory false;
             }
 
+            leaf x-onap-requestorid {
+                description "This is the user who initiated the LCM action. The content of the
+                             header should be in the format of attuid@domain or mechid@domain.
+                             If id or domain is missing, return an error. This parameter is
+                             mandatory for v2.01 and optional for v2.00. The Yang model has it as
+                             optional and software makes determination";
+                type string;
+                mandatory false;
+            }
+
 
             /**********************************************************************************
              * Flags are generic flags that apply to any and all commands, all are optional
@@ -492,6 +518,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -516,6 +546,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -539,6 +573,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory true;
+                    }
         }
     }
 
@@ -562,6 +600,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -585,6 +627,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory true;
+                         }
         }
     }
 
@@ -608,6 +654,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -631,6 +681,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+             }
         }
     }
 
@@ -662,6 +716,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -777,30 +835,30 @@ module appc-provider-lcm {
         }
     }
 
-    rpc config-scaleout {
-        description "An operation to scaleout the configurations of a virtual network
-                function (or VM)";
-        input {
-            uses common-header;
-            leaf action {
-                type action;
-                mandatory true;
-            }
-            uses action-identifiers;
-            leaf payload {
-                type payload;
-                mandatory false;
+    rpc config-scale-out {
+            description "An operation to Modify the configuration or other action to support
+            a ConfigScaleOut of a VNF.";
+            input {
+                uses common-header;
+                leaf action {
+                    type action;
+                    mandatory true;
+                }
+                uses action-identifiers;
+                leaf payload {
+                    type payload;
+                    mandatory false;
+                }
             }
-        }
-        output {
-            uses common-header;
-            uses status;
-            leaf payload {
-                 type payload;
-                 mandatory false;
+            output {
+                uses common-header;
+                uses status;
+                leaf payload {
+                     type payload;
+                     mandatory false;
+                }
             }
         }
-    }
 
     rpc config-restore {
         description "An operation to restore the configurations of a virtual network
@@ -963,6 +1021,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -1144,6 +1206,10 @@ module appc-provider-lcm {
             output {
                 uses common-header;
                 uses status;
+                leaf payload {
+                    type payload;
+                    mandatory false;
+                }
             }
         }
 
@@ -1167,6 +1233,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -1304,9 +1374,486 @@ module appc-provider-lcm {
         }
     }
 
+    /**********************************************************************************
+     * Define the PreConfigure service
+    **********************************************************************************/
+    rpc pre-configure {
+        description "An operation to retrieve the current config";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+        }
+    }
 
+    /**********************************************************************************
+     * Define the VNF GetConfig service
+    **********************************************************************************/
+    rpc get-config {
+        description "An operation to retrieve the current running config";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+        }
+    }
 
- /**********************************************************************************
-     * Additional RPCs added here...
- **********************************************************************************/
+    /**********************************************************************************
+     * Define the traffic distribution service
+     **********************************************************************************/
+    rpc distribute-traffic {
+        description "An operation to distribute traffic between VMs";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true;
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+        }
+    }
+
+    /**********************************************************************************
+     * Define the distribute traffic check service
+     **********************************************************************************/
+    rpc distribute-traffic-check {
+        description "An operation to check conditions and the result of DistributeTraffic.";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true;
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+        }
+    }
+
+    /**********************************************************************************
+     * Define the PreRebuild service
+    **********************************************************************************/
+    rpc pre-rebuild {
+        description "An operation to perform prerequisite steps before a rebuild action";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+                           }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the PostRebuild service
+    **********************************************************************************/
+    rpc post-rebuild {
+        description "An operation to perform subsequent steps after a rebuild action";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+                           }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the PreEvacuate service
+     **********************************************************************************/
+    rpc pre-evacuate {
+        description "An operation to perform prerequisite steps before an evacuate action";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory false; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the PostEvacuate service
+     **********************************************************************************/
+    rpc post-evacuate {
+        description "An operation to perform postevacuate on  specified Ansible virtual machine (VM)";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+         }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the PreMigrate service
+     **********************************************************************************/
+    rpc pre-migrate {
+        description "An operation to perform premigrate on  specified Ansible virtual machine (VM)";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+         }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the PostMigrate service
+     **********************************************************************************/
+    rpc post-migrate {
+        description "An operation to perform postmigrate on  specified Ansible virtual machine (VM)";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+         }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the StartTraffic service
+     **********************************************************************************/
+    rpc start-traffic {
+        description "An operation to start a traffic action on specified Ansible virtual machine (VM)";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory false; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false; 
+            }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the StatusTraffic service
+     **********************************************************************************/
+    rpc status-traffic {
+        description "An operation to perform status-traffic on specified Ansible virtual machine (VM)";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory false; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false; 
+            }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the StopTraffic service
+     **********************************************************************************/
+    rpc stop-traffic {
+        description "An operation to stop an in-process traffic action";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory false; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false; 
+            }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the VNF provisioning service
+     **********************************************************************************/
+    rpc provisioning {
+        description "An vnf operation for  provisioning";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+                           }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the VNF LicenseManagement service
+     **********************************************************************************/
+    rpc license-management {
+        description "An vnf operation for  provisioning";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true; 
+            }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+                           }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the VNF ConfigScaleIn service
+     **********************************************************************************/
+    rpc config-scale-in {
+            description "An operation to Modify the configuration or other action to support
+            a ConfigScaleIn of a VNF.";
+            input {
+                uses common-header;
+                leaf action {
+                    type action;
+                    mandatory true;
+                }
+                uses action-identifiers;
+                leaf payload {
+                    type payload;
+                    mandatory false;
+                }
+            }
+            output {
+                uses common-header;
+                uses status;
+                leaf payload {
+                     type payload;
+                     mandatory false;
+                }
+            }
+        }
+
+    /**********************************************************************************
+     * Define the downloadNESw operation
+     **********************************************************************************/
+    rpc download-n-e-sw {
+        description "An operation to download NE software";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true;
+           }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory true;
+            }
+        }
+    }
+
+    /**********************************************************************************
+     * Define the activateNESw operation
+     **********************************************************************************/
+    rpc activate-n-e-sw {
+        description "An operation to activate NE software";
+        input {
+            uses common-header;
+            leaf action {
+                type action;
+                mandatory true;
+            }
+            uses action-identifiers;
+            leaf payload {
+                type payload;
+                mandatory true;
+           }
+        }
+        output {
+            uses common-header;
+            uses status;
+            leaf payload {
+                type payload;
+                mandatory true;
+            }
+        }
+    }
+
+    /**********************************************************************************
+     *  Additional RPCs added here...
+     **********************************************************************************/
 }