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 controller 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 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 controller 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 controller blueprint, create a configuration file from this Controller blueprint, and download this configuration file (configlet) to a VNF/PNF.




Detailed Architecture PowerPoint Package:

Controller Design Studio Package.pptx


Proposed Work Items

Design Time

Feature
DescriptionJIRA  Owner Wiki PageNotes 

Controller Design Studio GUI





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


Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-334






AT&T

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 Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1129





AT&T


[appc/cdt]] - Srikanth V


Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1133

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1152

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1153

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1154

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1155

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1156

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1177

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1179



3

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

4

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

5

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

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyAPPC-1131

AT&T  

Tech M

IBM

Bell Canada

Erickson


 [appc/cdt]]

In Progress


Girish - Tech M

6

Controller Design Time Studio app extension with SDC integration.


Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-338


AT&T  

Tech M

IBM

Bell Canada


Deferred to the next ONAP release


7  CDS Backend mS Support 

 

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-458

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-410

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-415

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-416

AT&T   

ccsdk/apps

Brinda 


Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-467

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-468

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-469

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-483

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-487

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-488

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-491

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-429
 

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-431

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-432

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-458



Run Time 

Feature
DescriptionJIRA  ContributorsWiki Page NOTEs
  Instantiation  1Generic Resource API integration with netbox ip management capability for assign


Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-339






Bell Canada

Alexis/Marc -

()

Yuriy to setup a session with Alexis and Marc/Dan T. [Complete]

Design In Progress

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

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

- 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 Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-

340Bell Canada

Alexis/Marc - ()

Yuriy to setup a session with Alexis and Marc/Dan T.  [Complete]

Design In Progress

Target Completion Date (9/07)

3netbox ip management REST API support in ONAP Jira Legacy

481

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-

341Bell Canada

Alexis/Marc -

helm chart  –  Completed.

Should it be contributed under CCSDK? Marc and Dan T to discuss. Still needs to be decided at later point.

Create a helm chart for use case: Jira LegacyserverSystem Jira

482



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

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-

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

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

Jira LegacyserverSystem Jira

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

3netbox ip management REST API support in ONAP


Jira Legacy
serverSystem Jira

serverId4733707d-2057-3a0f-ae5e-4fd8aff50176keyCCSDK-460

columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCCSDK-

462

IPAM DB Creation: Alexis to follow up with Dan T if the table should be created in SDNC or CCSDK?  Targeted for 8/24

  • IPAM_Prefix_Assignment
  • IPAM_IP Assignment

    341






    Bell Canada

    Alexis/Marc -

    helm chart  –  Completed.

    Should it be contributed under CCSDK? Marc and Dan T to discuss. Still needs to be decided at later point.

    Create a helm chart for use case:

    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-366

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

    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-460

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

    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-462


    IPAM DB Creation: Alexis to follow up with Dan T if the table should be created in SDNC or CCSDK?  Targeted for 8/24

    • IPAM_Prefix_Assignment
    • IPAM_IP Assignment

    Jira Legacy
    serverSystem Jira
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-463


    4Policy driven naming mS in ONAP

    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    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 Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-411

    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    4634Policy driven naming mS in ONAP

    412


    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    342

    412




    AT&
    T
    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

    - Dan T contributed the fist batch of code in draft version.

     Kapil S/Brinda S

    In Progress

    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    411

    490

    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    412

    492

    6Template meshing mS in ONAP


    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    412

    344







    AT&
    T  
    T

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

     Kapil S/

    Brinda S

    In Progress

    Brinda S

    In Progress 

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



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


    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    490Template meshing mS in ONAP

    345

    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-492

    6






    AT&T  

    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 Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    344

    349

    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)
    7Controller Design Time Studio app extension with SDC integration ingest and store the artifact in the controller persona (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 Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    345

    AT&T  

    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)

    380

     Bell Canada 

     

    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-

    349

    AT&T

    Tech M

    IBM

    Bell Canada

    Deferred to the next ONAP release

    493

    Post Instantiation

    1APP-C Integration with resource resolution REST API based on data dictionary.

    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    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.


    Jira Legacy
    serverSystem Jira
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
    keyCCSDK-346






    AT&T

    Kapil S/Brinda S

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


    In Progress





























    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:




    Widget Connector
    urlhttps://www.youtube.com/watch?v=NmW7e6uSqto&t=2s


    Widget Connector
    urlhttps://www.youtube.com/watch?v=ZbXFQawMmhU


    Widget Connector
    urlhttps://www.youtube.com/watch?v=SuQG5bw8oCI