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 2b8521a..c60ce16 100644 (file)
@@ -6,7 +6,7 @@
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * ================================================================================
- * Modifications Copyright (C) 2018-2019 Orange
+ * 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.
@@ -73,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";
         }
     }
 
@@ -97,6 +97,7 @@ module appc-provider-lcm {
             enum "Terminate";
             enum "SoftwareUpload";
             enum "HealthCheck";
+            enum "LicenseManagement";
             enum "LiveUpgrade";
             enum "Lock";
             enum "Unlock";
@@ -123,8 +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;
+            }
         }
     }
 
@@ -566,6 +600,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -616,6 +654,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -639,6 +681,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+             }
         }
     }
 
@@ -670,6 +716,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -797,7 +847,7 @@ module appc-provider-lcm {
                 uses action-identifiers;
                 leaf payload {
                     type payload;
-                    mandatory true;
+                    mandatory false;
                 }
             }
             output {
@@ -973,9 +1023,8 @@ module appc-provider-lcm {
             uses status;
             leaf payload {
                 type payload;
-                mandatory true;
-                         }
-
+                mandatory false;
+            }
         }
     }
 
@@ -1157,6 +1206,10 @@ module appc-provider-lcm {
             output {
                 uses common-header;
                 uses status;
+                leaf payload {
+                    type payload;
+                    mandatory false;
+                }
             }
         }
 
@@ -1180,6 +1233,10 @@ module appc-provider-lcm {
         output {
             uses common-header;
             uses status;
+            leaf payload {
+                type payload;
+                mandatory false;
+            }
         }
     }
 
@@ -1317,6 +1374,60 @@ 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;
+            }
+        }
+    }
+
     /**********************************************************************************
      * Define the traffic distribution service
      **********************************************************************************/
@@ -1363,8 +1474,386 @@ module appc-provider-lcm {
         }
     }
 
+    /**********************************************************************************
+     * 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;
+                           }
+        }
+    }
 
- /**********************************************************************************
-     * Additional RPCs added here...
- **********************************************************************************/
+    /**********************************************************************************
+     * 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...
+     **********************************************************************************/
 }