+ * Define the test service
+ **********************************************************************************/
+ rpc test {
+ description "An operation to test 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;
+ }
+ }
+ output {
+ uses common-header;
+ uses status;
+ }
+ }
+
+ /**********************************************************************************
+ * Define the stop service
+ **********************************************************************************/
+ rpc stop {
+ description "An operation to stop 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;
+ }
+ }
+ output {
+ uses common-header;
+ uses status;
+ }
+ }
+
+ rpc start {
+ description "An operation to start 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;
+ }
+ }
+ output {
+ uses common-header;
+ uses status;
+ }
+ }
+
+ /**********************************************************************************
+ * Define the audit service
+ **********************************************************************************/
+ rpc audit {
+ description "An operation to audit 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;
+ }
+ }
+ output {
+ uses common-header;
+ uses status;
+ leaf payload {
+ type payload;
+ mandatory false;
+ }
+ }
+ }
+
+ /**********************************************************************************
+ * Define the SoftwareUpload vSCP service
+ **********************************************************************************/
+ rpc software-upload {
+ description "An operation to upload a new version of vSCP image to vSCP for updating it";
+ 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;
+ }
+ }
+
+ /**********************************************************************************
+ * Define the PreHealthCheck vSCP service
+ **********************************************************************************/
+ rpc health-check {
+ description "An operation to perform health check of vSCP prior its upgrading";
+ 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 Upgrade vSCP service
+ **********************************************************************************/
+ rpc live-upgrade {
+ description "An operation to perform upgrade of vSCP";
+ 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;
+ }
+ }
+
+
+ /**********************************************************************************
+ * Define the VNF lock service
+ **********************************************************************************/
+ rpc lock {
+ description "An operation to perform VNF lock operation";
+ 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;
+ }
+ }
+
+ /**********************************************************************************
+ * Define the VNF unlock service
+ **********************************************************************************/
+ rpc unlock {
+ description "An operation to perform VNF unlock operation";
+ 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;
+ }
+ }
+
+ /**********************************************************************************
+ * Define the VNF check lock service
+ **********************************************************************************/
+ rpc check-lock {
+ description "An operation to check VNF lock status";
+ input {
+ uses common-header;
+ leaf action {
+ type action;
+ mandatory true;
+ }
+ uses action-identifiers;
+ }
+ output {
+ uses common-header;
+ uses status;
+ leaf locked {
+ type enumeration {
+ enum "TRUE";
+ enum "FALSE";
+ }
+ description "TRUE/FALSE - returns TRUE when the given VNF was locked, otherwise returns FALSE";
+ mandatory false;
+ }
+ }
+ }
+
+
+ rpc config-backup {
+ description "An operation to Backup 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;
+ }
+ }
+ output {
+ uses common-header;
+ uses status;
+ leaf payload {
+ type payload;
+ mandatory false;
+ }
+ }
+ }
+
+ rpc config-backup-delete {
+ description "An operation to Delete backup configurations of a virtual network
+ function (or VM)";
+ input {
+ uses common-header;
+ leaf action {
+ type action;
+ mandatory true;
+ }
+ uses action-identifiers;
+ }
+ output {
+ uses common-header;
+ uses status;
+ leaf payload {
+ type payload;
+ mandatory false;
+ }
+ }
+ }
+
+ rpc config-export {
+ description "An operation to Export configurations of a virtual network function
+ (or VM)";
+ input {
+ uses common-header;
+ leaf action {
+ type action;
+ mandatory true;
+ }
+ uses action-identifiers;
+ }
+ output {
+ uses common-header;
+ uses status;
+ }
+ }
+ rpc stop-application {
+ description "An operation to Stop Application traffic to a virtual network function";
+ 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 Start Application service
+ **********************************************************************************/
+ rpc start-application {
+ description "An operation to perform VNF Start Application operation";
+ 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;
+ }
+ }
+ }
+
+
+ /**********************************************************************************
+ * Gets the current state of the previously submitted LCM request
+ **********************************************************************************/
+ rpc action-status {
+ description "An operation to get the current state of the previously submitted LCM request";
+ 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;
+ }
+ }
+ }
+
+ /**********************************************************************************
+ * Define the VNF Query service
+ **********************************************************************************/
+ rpc query {
+ description "An operation to query the status of a targe VNF.
+ Returns information on each VM, including state (active or standby)
+ and status (healthy or unhealthy)";
+ input {
+ uses common-header;
+ leaf action {
+ type action;
+ mandatory true;
+ }
+ uses action-identifiers;
+ }
+ output {
+ uses common-header;
+ uses status;
+ list query-results {
+ leaf vserver-id {
+ description "Identifier of a VM";
+ type string;
+ mandatory true;
+ }
+ leaf vm-state {
+ description "The state of the VM";
+ type vm-state;
+ mandatory true;
+ }
+ leaf vm-status {
+ description "the status of the VM";
+ type vm-status;
+ mandatory true;
+ }
+ }
+ }
+ }
+
+ /**********************************************************************************
+ * Define the Reboot service
+ **********************************************************************************/
+ rpc reboot {
+ description "An operation to reboot a specified 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;
+ }
+ }
+
+ /**********************************************************************************
+ * Define the VM attach volume service
+ **********************************************************************************/
+ rpc attach-volume {
+ description "An operation to attach a cinder volume to a VM";
+ 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 VM detach volume service
+ **********************************************************************************/
+ rpc detach-volume {
+ description "An operation to detach a cinder volume from a VM";
+ 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 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
+ **********************************************************************************/
+ 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...