Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Table of Contents
outlinetrue

Background


  • For the ONAP Beijing release, the APPC project delivered the CDT design tool to support the APPC model driven design approach.
  • For the next ONAP releases Casablanca, we are proposing to develop a common design tool to support both SDNC and Generic L4-7 NFs (APPC, VFC) Controller integrated with SDC.
  • This common design tool, also called “Controller Design Studio”, will be built with associated data dictionary and an Ingredient Resource Resolution Microservice
  • The common design tool models shall be backwards compatible to the current use cases supported in Amsterdam and  Beijing release by Generic L4-7 NF (APP-C specific). 

Introduction

The system is designed to be self service, which means that users, not just programmers, can reconfigure the software system as needed to meet customer requirements. To accomplish this goal, the system is built around models that provide for real-time changes in how the system operates.  Users merely need to change a model to change how a service operates.

Self service is a completely new way of delivering services.  It removes the dependence on code releases and the delays they cause and puts the control of services into the hands of the service providers.  They can change a model and its parameters and create a new service without writing a single line of code.  This makes SERVICE PROVIDER(S) more responsive to its customers and able to deliver products that more closely match the needs of its customers.

Architecture

The Controller Design Studio is composed of two major components: the GUI (or frontend) and the Run Time (or backend).  The GUI handles direct user input and allows for displaying both design time and run time activities.  For design time, it allows for the creation of service modelscontroller blueprint, from selecting the DGs to be included, to incorporating the artifact templates, to adding necessary components.  For run time, it allows the user to direct the system to resolve the unresolved elements of the service model the controller blueprint and download the resulting configuration into a VNF.  At a more basic level, it allows for creation of data dictionaries, capabilities catalogs, and service modelscontroller blueprint, the basic elements that are used to generate a configuration. The essential function of the Controller Design Studio is to create and populate a Service Modelcontroller blueprint, create a configuration file from this Service ModelController blueprint, and download this configuration file (configlet) to a VNF/PNF.




Detailed Architecture PowerPoint Package:

Controller Design Studio.pptx

Proposed Work Items

Design Time

Feature
DescriptionJIRA 
 Owner AT&T SDN-C
 Owner Wiki PageNotes 

Controller Design Studio GUI

 

 

 

 





1Refactor and move the APP-C CDT to CCSDK for "Controller Design Studio" mS.


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-334

 






AT&T
Randa/Dan T AT&T base Code Contribution for Service Model Creation

All Controller Design Studio will be maintained in the APP-C repo[appc/cdt]] for Casablanca Release.

JIRA can be canceled.

2

CDS Controller Blueprint Creation and Management including artifact model, component model, connectivity model, and dg modeling in "Controller Design Studio" mS.

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1129

 





AT&T
Brinda M/Kapil S/Srikant VAT&T base Code Contribution for



[appc/cdt]] - Srikanth V


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1133

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1152

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1153

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1154

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1155

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1156

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1177

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1179



3

CDS Catalog Creation and Management in "Controller Design Studio" mS.

 AT&T Brinda M/Kapil S/Srikant V
4

CDS Data

AT&T base Code Contribution for Data

Dictionary Creation and Management in "Controller Design Studio" mS.

 AT&T Brinda M/Kapil S/Srikant V Enhance
5

CDT enhance existing screen to support data dictionary panel layout and data dictionary reference model creation for existing APP-C Models.

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1131

AT&T  

Tech M

IBM

Bell Canada

Erickson


 [appc/cdt]]

In Progress


Girish - Tech M

6
 AT&T APP-C 

Controller Design Time Studio app extension with SDC integration.

 


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-338


AT&T  

SDC

AT&T  APP-C/SDN-C

Tech M

IBM

Bell Canada


Deferred to the next ONAP release


7  CDS Backend mS Support 

 

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-458

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-410

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-415

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-416

AT&T   

ccsdk/apps

Brinda 


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-467

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-468

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-469

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-483

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-487

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-488

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-491

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-429
 

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-431

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-432

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-484


 8Policy Manager Naming Policy support for vFW Use case  AT&T 

 Support the vFW naming policy model and policy instance as part of PM deployment

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyPOLICY-983



Run Time 

Feature
DescriptionJIRA 
 Owner AT&T SDN-C
 ContributorsWiki
Page
Page NOTEs
  Instantiation  1Generic Resource API integration with netbox ip management capability for assign
 Bell CanadaPat to provide wiki page on the existing EIPAM capability


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-339






Bell Canada

Alexis/Marc - Implementation Completed for all the Self Service sub dg and integration with netbox capability. Target Completion Date (9/07) - Delivered


Ajay/Pat  - Push the latest Sub DG to ONAP and Refactor naming Gen Sub DG to call the naming mS Rest API directly.

 

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-481

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-482



2Generic Resource API integration with netbox ip management capability for unassign 
 Bell Canada

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-340

Bell Canada

Alexis/Marc - Implementation Completed for all the Self Service sub dg and integration with netbox capability. Target Completion Date (9/07) - Delivered

3
Pat to provide wiki page on the existing EIPAM capability
netbox ip management REST API support in ONAP
 Bell CanadaAT&T base code contribution for policy driven naming mS in ONAP AT&T Ajay Sing/Biju Thomas AT&T base code contribution for Resource Resolution using data dictionary mS in ONAP AT&T Ajay Sing/Biju Thomas 


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-341






Bell Canada

Alexis/Marc - Implementation Completed for all the Netbox Client with Helm chart , pre-provisioning script and DB Creation. 


Create a helm chart for use case:

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-366

pre-provisioning scripts (Targeted for 8/17): 

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-460

Netbox Client – (Reserve the IP) - Target for 8/17

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-462


IPAM DB Creation: Target for 8/17

Jira
serverONAP JIRA
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-463


4Policy driven naming mS in ONAP

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-342

AT&T

[ccsdk/apps] 

Biju T: 7/20 for draft code submission and including draft template. (Preference with policy to boot with the artifacts)

8/17 – Submitted the Code

5Resource Resolution using data dictionary mS in ONAP

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-411

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-412


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-412




AT&T  

[ccsdk/apps] - Dan T contributed the fist batch of code in draft version.

 Kapil S/Brinda S

In Progress

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-490


6Template meshing mS in ONAP


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-344







AT&T

[ccsdk/apps] - Dan T contributed the fist batch of code in draft version.

 Kapil S/Brinda S

In Progress 

  • Design Time (Draft Code Submitted and API testing in progress.)
  • Runtime (requires discussion)



7
AT&T base code contribution for template meshing mS in ONAP AT&T Brinda M/Kapil S 
Controller Design Time Studio app extension with SDC integration ingest and store the artifact in the controller persona (SDN-C)


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-345






AT&T  

 

SDC

AT&T  APP-C/SDN-C

Tech M

IBM

Bell Canada

 


Deferred to the next ONAP release


8Controller Design Time Studio app extension with SDC integration ingest and store the artifact in the controller persona (APP-C)

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-349

 SDC

AT&T

 APP-C/SDN-C

Tech M

IBM

Bell Canada


Deferred to the next ONAP release


Heat and SDC Tosca Update for VFW to include SDNC Controller Blueprint Model Information.
 

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-380

 Bell Canada 

 

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-493

Post Instantiation

1APP-C Integration with resource resolution REST API based on data dictionary.
  AT&T APP-CAT&T base Code

Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyAPPC-1077

AT&T

Tech M

IBM

Bell Canada

Erickson


scale out use case. (include the discussion with Scott)


Krill


Swagger API for calling the RA API for data and artifact collection. Brinda/Kapil to provide this information.


Taka is the PTL for APP-C. Need to review the design with Taka before code contribution.


In Progress.



2

CDS Contribution for Configuration Generation, Preview and Deployment.

 AT&T SDN-C        


Jira
serverONAP JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCCSDK-346






AT&T

Kapil S/Brinda S


Deferred to Dublin Release





























Artifact

Instantiation

Expand
titleInstantiation

{

  "resource-accumulator-resolved-data": [

    {

"param-name": "service-instance-id",

      "param-value": "${service-instance-id}"

    },

    {

      "param-name": "vnf_id",

      "param-value": "${vnf-id}"

    },

    {

      "param-name": "vnf_name",

      "param-value": "${vnf-name}"

    },

    {

      "param-name": "vnf_model_customization_uuid",

      "param-value": "${vnf-model-customization-uuid}"

    },

    {

      "param-name": "vf_module_id",

      "param-value": "${vf-module-id}"

    },

    {

      "param-name": "vf_module_customization_uuid",

      "param-value": "${vf-module-model-customization-uuid}"

    },

    {

      "param-name": "aic-cloud-region",

      "param-value": "${aic-cloud-region}"

    },

    {

      "param-name": "aic_clli",

      "param-value": "${aic_clli}"

    },

    {

      "param-name": "avaiablity_zone_0",

      "param-value": "${avaiablity_zone_0}"

    },

    {

      "param-name": "cloud_env",

      "param-value": "openstack"

    },

    {

      "param-name": "repo_url_artifacts",

      "param-value": "

https://nexus.onap.org/content/groups/staging"

    },

    {

      "param-name": "repo_url_blob",

      "param-value": "

https://nexus.onap.org/content/repositories/raw"

    },

    {

      "param-name": "dcae_collector_port",

      "param-value": "8080"

    },

    {

      "param-name": "image_name",

      "param-value": "Ubuntu 14.04 LTS Generic"

    },

    {

      "param-name": "flavor_name",

      "param-value": "m1.medium"

    },

    {

      "param-name": "install_script_version",

      "param-value": "1.2.1-SNAPSHOT"

    },

    {

      "param-name": "demo_artifacts_version",

      "param-value": "1.2.1-SNAPSHOT"

    },

    {

      "param-name": "dcae_collector_ip",

      "param-value": "10.0.4.1"

    },

    {

      "param-name": "pub_key",

      "param-value": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKXDgoo3+WOqcUG8/5uUbk81+yczgwC4Y8ywTmuQqbNxlY1oQ0YxdMUqUnhitSXs5S/yRuAVOYHwGg2mCs20oAINrP+mxBI544AMIb9itPjCtgqtE2EWo6MmnFGbHB4Sx3XioE7F4VPsh7japsIwzOjbrQe+Mua1TGQ5d4nfEOQaaglXLLPFfuc7WbhbJbK6Q7rHqZfRcOwAMXgDoBqlyqKeiKwnumddo2RyNT8ljYmvB6buz7KnMinzo7qB0uktVT05FH9Rg0CTWH5norlG5qXgP2aukL0gk1ph8iAt7uYLf1ktp+LJI2gaF6L0/qli9EmVCSLr1uJ38Q8CBflhkh"

    }

  ],

  "capability-data": [

    {

      "capability-name": "generate-name",

      "key-mapping": [

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vsn_name_0"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}_vsn_name_0"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vsn-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VM"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "NFC_NAMING_CODE",

              "param-value": "${nfc-naming-code}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_name_0",

              "resource-value": "${vsn_name_0}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vfw_name_0"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}_vfw_name_0"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vfw-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VM"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "NFC_NAMING_CODE",

              "param-value": "${nfc-naming-code}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_name_0",

              "resource-value": "${vfw_name_0}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "vf-module-name"

            },

            {

              "param-name": "external-key",

              "param-value": "${vf-module-id}"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vf-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VF-MODULE"

            },

            {

              "param-name": "VNF_NAME",

              "param-value": "${vnf-name}"

            },

            {

              "param-name": "VF_MODUEL_LABLE",

              "param-value": "${vf-module-label}"

            },

            {

              "param-name": "VF_MODUEL_TYPE",

              "param-value": "${vf-module-type}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vf_module_name",

              "resource-value": "${vf-module-name}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "resource-name",

              "param-value": "volume-name"

            },

            {

              "param-name": "policy-instance-name",

              "param-value": "${vf-naming-policy}"

            },

            {

              "param-name": "nf-role",

              "param-value": "${nf-role}"

            },

            {

              "param-name": "naming-type",

              "param-value": "VOLUME"

            },

            {

              "param-name": "VOLUME_GROUP_NAME",

              "param-value": "${volume-group-name}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vmxvre_volume_name_1",

              "resource-value": "${volume-name}"

            },

            {

              "resource-name": "vmxvre_volume_name_0",

              "resource-value": "${volume-name}"

            }

          ]

        }

      ]

    },

    {

      "capability-name": "netbox-ip-assignment",

      "key-mapping": [

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "protected_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "onap_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vpg_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_2",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_1",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vfw_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_private_ip_1",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "vsn_private_ip_0",

              "resource-value": "${address}"

            }

          ]

        },

        {

          "payload": [

            {

              "param-name": "service-instance-id",

              "param-value": "${service-instance-id}"

            },

            {

              "param-name": "prefix-id",

              "param-value": "${prefix-id}"

            },

            {

              "param-name": "vf-module-id",

              "param-value": "${vf-module-id}"

            }

          ],

          "output-key-mapping": [

            {

              "resource-name": "unprotected_private_net_cidr",

              "resource-value": "${address}"

            }

          ]

        }

      ]

    }

  ]

}



Controller Design Studio Functionality Demo: