Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
netbox mS Capability [HELM Chart]
    Expand
    titleArchitecture
    Expand
    titlenetbox mS Capability [ccsdk]
    E2E Swim Lane Diagrams Design Time and Run Time
    View file
    nameSwimming Diagram for instantiation.bdf.pptx
    height400
                              
    Expand
    title
    Expand
    title
    netbox mS Capability [IPAM DB Creation SDN-C]
    Expand
    titlenetbox mS Capability [pre-provisioning scripts]
    Expand
    titlePlugin IP Assignment DG flow using generic-resource-api [Assign]

    Overview

    The generic-resource-api is used to assign cloud parameter assignment during instantiation flow. The vf-module instantiation flow begins with the main DG, self-serve-vfmodule-assign, when the svc-action = assign in the rpc request.

    The main DG will call a series of sub-DGs according to the execution order of all the predefined capability components, such as generate-name, vlan-tag-assignment, eipam-ip-assignment, etc.

    For IP assignment, the main DG calls the sub-DG, self-serve-eipam-ip-assignment to start the ip assignment process.

    This wiki serves as the blueprint for capability integration with generic-resource-api for ip assignments, and it is used to integrate EIPAM custom plugin to obtain ip address assignments during vf-module orchestration.

    Prerequisite                  

    The following parameters must be set in context memory prior to the self-serve-eipam-ip-assignment sub-DG is called.

    • ss.capability-name
      • value that matches the capability DG name; i.e. self-serve-eipam-ip-assignment
    • ss.capability-action
      • assign
    • vnf-index
      • The array index of the vnf that owns this vf-module in config tree
    • vf-module-index
      • The array index of this vf-module in config tree
    • service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[].

    Logic

    1.   Unresolved Parameter Resolution

    -        Calls self-serve-capability-param-resolution DG to resolve all the unresolved values in vf-module-parameters.param[].resource-resolution-data.resource-key[].value where resource-resolution-data.capability-name matches this DG name.

    2.   Call EIPAM Plugin

    -        The EIPAM plugin returns the ip assignment in a context variable, called eipam-ip-block

    -        eipam-ip-block.plans[].requests[].ip-prefix

    -        eipam-ip-block.plans[].requests[].ip-prefix-length

    -        eipam-ip-block.plans[].requests[].ReservedAssignments[0]. ReservedAssignment[3].ReservedKeyIPAddress

    -        Insert an entry to EIPAM_IP_ASSIGNMENTS table

    3.   Set Heat Parameters

    The sub-DG, self-serve-vfmodule-assign will set value of then heat parameters based on the EIPAM

    -        vmxvre_oam_ip_0 = eipam-ip-block.plans[].requests[].ip-prefix

    -        vmxvre_oam_ip_prefix_0 = eipam-ip-block.plans[].requests[].ip-prefix-length

    -        vmxvre_oam_gateway = eipam-ip-block.plans[].requests[].ReservedAssignments[0].

    -        ReservedAssignment[3].ReservedKeyIPAddress

    Architecture

    Image Added

    SDNC Modeling Process (via Controller Design Studio UI).

    1. Heat Mapping: Start by the HEAT environment file as final product required for Openstack spin up. Then for each cloud parameter we define the following:
      1. Cloud parameters assignment type (Default, Input, Capability)
      2. Resources ruleset (Assignment logic : Recipe, ingredients, Model-driven vs Custom logic)
      3. Assignment Capabilities: (microServices, DG-Capability logic, Policy models...

    2. Data Dictionaries: Define the SDNC model used to resolve resource values from various systems.
      1. Define source type (default. Input, DB, A&AI, mS…etc)
      2. Define model used to retrieve the resource value from the various sub-systems (input-key-mapping, output-key-mapping, url, path)
      3. Define DD’s name, type, complex data type (if sub-system supports a list of complex data structure)

    3. Controller Blueprint: Create SDNC model and all associated capabilities, artifact templates, Data Dictionaries
      1. model Identifier: (model name, version, author…etc)
      2. Capabilities ( Resource-Assignment, Artifact-template)
      3. Template Instance (Upload Artifact Templates)
        1. Edit/View each Artifact Template
        2. Upload Artifact Template JSON file
        3. Load template and Auto-Map to Data Dictionaries
        4. Review Mapping Table and Edit DDs, Default values, DD Source


    Execution - Runtime process (via VID to SO to SDNC)

    5. Capability DGs execution flow

    Logic for vnf and vf-module assignement is pretty much the same. The main difference is, vnf assignment will take care of calling the naming microservice if specified in the controller blueprint artifact.

    This is the general logic of the VNF assign flow and sub-flows:

    Gliffy Diagram
    nameVNF_Assign_flow
    pagePin4


        This is the general logic of the vf-module assign flow and sub-flows:

    Gliffy Diagram
    nameVF_Module_DG_Flow
    pagePin3
                                                             

    Expand
    titleONAP GIT Repo for Heat YML/ENV files

    https://github.com/onap/demo/blob/master/heat/vFW/base_vfw.yaml

    Expand
    titlenetbox mS Capability [ccsdk]
    Expand
    titlenetbox mS Capability [HELM Chart]

    The work bellow is based on the following git repository, providing netbox docker images: https://github.com/ninech/netbox-docker

    The Netbox helm chart has been submitted in OOM, the code can be found here: https://github.com/onap/oom/tree/master/kubernetes/contrib/charts/netbox

    This helm chart is comprised of three subcharts, being:

    • netbox-app: provides the IPAM capability we're seeking for current selected use cases (vFW).
    • netbox-nginx: reverse proxy exposing IPAM system in a secure fashion (using NodePort).
    • netbox-postgress: backend database persisting the Netbox data. Currently a deployment, should be converted to statefull set using StorageClass.


    Regarding the netbox-app, this charts come with possibility for customization. The folder tree structure is the following:

    Code Block
    .
    ??? config
        ??? configuration				Those are configuration scripts coming from Netbox itself, they remained un-touched.
        ?   ??? configuration.py
        ?   ??? gunicorn_config.py
        ?   ??? ldap_config.py
        ??? initializers				Those YAML files are where we can added so pre-provisioning data, such as user or custom fields.
        ?   ??? custom_fields.yml
        ?   ??? groups.yml
        ?   ??? users.yml
        ??? provisioning				This defines the entrypoint of netbox-app deployment, that will provision prefix to support vFW use case.
        ?   ??? provision.sh
        ??? startup_scripts				Those scripts are provided by Netbox itself, they remained un-touched.
            ??? 00_users.py
            ??? 10_groups.py
            ??? 20_custom_fields.py


    In order to test Netbox locally using this helm chart, here are the steps to follow:

    Code Block
    git clone https://gerrit.onap.org/r/oom
    cd oom/kubernetes
    helm serve &
    make contrib
    helm install local/contrib --name netbox --namespace $NAMESPACE

    This will result in installing the 3 charts, and run the job that will provisioned Netbox for us.

    Ouput of the helm install should look like the following:

    Code Block
    $ helm install local/contrib --name netbox --namespace onap-adetalhouet
    NAME:   netbox
    
    LAST DEPLOYED: Tue Aug 28 14:30:57 2018
    NAMESPACE: onap-adetalhouet
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/ConfigMap
    NAME                                        DATA  AGE
    netbox-netbox-app-configuration-configmap   3     1s
    netbox-netbox-app-initializers-configmap    3     1s
    netbox-netbox-app-startupscripts-configmap  3     1s
    netbox-netbox-app-provisioning-configmap    1     1s
    netbox-netbox-nginx-config-configmap        1     1s
    netbox-netbox-postgres-docker-entry-initd   0     1s
    
    ==> v1/PersistentVolumeClaim
    NAME                    STATUS   VOLUME                                    CAPACITY  ACCESS MODES  STORAGECLASS  AGE
    netbox-netbox-static    Pending  nfs-dev-sc                                1s
    netbox-netbox-postgres  Bound    pvc-8193e062-aaf0-11e8-beaa-f40343575464  1Gi  RWX  nfs-dev-sc  1s
    
    ==> v1/Service
    NAME             TYPE       CLUSTER-IP     EXTERNAL-IP  PORT(S)         AGE
    netbox-app       ClusterIP  10.43.179.246  <none>       8001/TCP        1s
    netbox-nginx     NodePort   10.43.136.76   <none>       8080:30269/TCP  1s
    netbox-postgres  ClusterIP  10.43.64.155   <none>       5432/TCP        1s
    
    ==> v1beta1/Deployment
    NAME                    DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
    netbox-netbox-app       1        1        1           0          1s
    netbox-netbox-nginx     1        1        1           0          1s
    netbox-netbox-postgres  1        1        1           0          1s
    
    ==> v1/Job
    NAME                            DESIRED  SUCCESSFUL  AGE
    netbox-netbox-app-provisioning  1        0           1s
    
    ==> v1/Pod(related)
    NAME                                    READY  STATUS   RESTARTS  AGE
    netbox-netbox-app-f54cd84d5-g6xr2       0/1    Pending  0         1s
    netbox-netbox-nginx-5d4f86ffcf-qlkhc    0/1    Pending  0         1s
    netbox-netbox-postgres-76857df45-5jjm9  0/1    Pending  0         1s
    netbox-netbox-app-provisioning-26stg    0/1    Pending  0         1s
    
    ==> v1/Secret
    NAME                    TYPE    DATA  AGE
    netbox-netbox-app-pass  Opaque  6     1s
    Expand
    titlenetbox mS Capability [IPAM DB Creation SDN-C]

    These are the tables to create:

    TableColumns 
    ipam_ip_poolipam_serial_pool_idcreate_dateprefixprefix_idaddress_family(v4/v6)prefix_status:Pending, Activate, Deletedescription (vfw-protect, or vfw-unprotected)region (RegionOne, RegionTwo)  
    ipam_ip_assignmentipam_serial_ip_assignment_idcreate_dateservice_instance_idvf_module_idip_adressip_address_type (vip, fixed, floating etc..) prefix_id (string)ip_address_id (string)ip_statusip_response


    These are the tables we created:


    Code Block
    mysql> show columns from IPAM_IP_ASSIGNEMENT;
    +---------------------+--------------+------+-----+-------------------+----------------+
    | Field               | Type         | Null | Key | Default           | Extra          |
    +---------------------+--------------+------+-----+-------------------+----------------+
    | ipam_ip_uuid        | int(11)      | NO   | PRI | NULL              | auto_increment |
    | create_date         | datetime     | NO   |     | CURRENT_TIMESTAMP |                |
    | service_instance_id | varchar(255) | YES  |     | NULL              |                |
    | vf_module_id        | varchar(255) | YES  |     | NULL              |                |
    | external_key        | varchar(255) | YES  |     | NULL              |                |
    | prefix_id           | varchar(255) | YES  |     | NULL              |                |
    | ip_address_id       | varchar(255) | YES  |     | NULL              |                |
    | ip_address          | varchar(255) | YES  |     | NULL              |                |
    | ip_address_type     | varchar(255) | YES  |     | NULL              |                |
    | ip_status           | varchar(255) | YES  |     | NULL              |                |
    | ip_response_json    | varchar(255) | YES  |     | NULL              |                |
    +---------------------+--------------+------+-----+-------------------+----------------+
    10 rows in set (0.00 sec)mysql> show columns from IPAM_IP_POOL;
    +----------------+--------------+------+-----+-------------------+----------------+
    | Field          | Type         | Null | Key | Default           | Extra          |
    +----------------+--------------+------+-----+-------------------+----------------+
    | ipam_pool_uuid | int(11)      | NO   | PRI | NULL              | auto_increment |
    | create_date    | datetime     | NO   |     | CURRENT_TIMESTAMP |                |
    | prefix_id      | int(2)       | YES  |     | NULL              |                |
    | prefix         | varchar(255) | YES  |     | NULL              |                |
    | address_family | int(1)       | YES  |     | NULL              |                |
    | prefix_status  | varchar(255) | YES  |     | NULL              |                |
    | description    | varchar(255) | YES  |     | NULL              |                |
    +----------------+--------------+------+-----+-------------------+----------------+


    This is the pool being hardcoded in the pool table to support vFW use case

    Code Block
    mysql> select * from IPAM_IP_POOL;
    +----------------+---------------------+-----------+-----------------+----------------+---------------+-------------+
    | ipam_pool_uuid | create_date         | prefix_id | prefix          | address_family | prefix_status | description |
    +----------------+---------------------+-----------+-----------------+----------------+---------------+-------------+
    |              1 | 2018-08-17 20:15:12 |         3 | 10.0.0.0/8      |              4 | ACTIVE        | private     |
    |              2 | 2018-08-17 20:19:29 |         2 | 192.168.10.0/24 |              4 | ACTIVE        | unprotected |
    |              3 | 2018-08-17 20:20:08 |         1 | 192.168.20.0/24 |              4 | ACTIVE        | protected   |
    +----------------+---------------------+-----------+-----------------+----------------+---------------+-------------+



    Expand
    titlenetbox mS Capability [pre-provisioning scripts]

    Three main things are achived durig pre-provisioning:

    • Create an admin onap user, as follow. This is part of the netbbox-app chart resources file: config/initializers/users.yml.

      Code Block
      onap:
          first_name: Steve
          last_name: McQueen
          email: steve.mcqueen@onap.org
          password: onap123$
          api_token: onceuponatimeiplayedwithnetbox20180814
          is_staff: true # whether user is admin or not, default = false
          is_active: true # whether user is active, default = true
          is_superuser: true # Whether user has all edit rights or not, default = false
    • Create an custom_fields being client_key in order to uniquely identify the resource with a key generated by ONAP. This is part of the netbbox-app chart resources file: config/initializers/custom_fields.yml.

      Code Block
      external-key: 
        description: "The external-key uniquely identify the resources to a service within ONAP."
        filterable: true
        label: ONAP external key
        on_objects: 
          - ipam.models.IPAddress
        required: true
        type: text
        weight: 0
      resource-name:
        description: "The resource-name of the element using this IP."
        filterable: true
        label: ONAP resource name
        on_objects:
          - ipam.models.IPAddress
        required: true
        type: text
        weight: 0
    • The following script creating the prefixes and some objects within Netbox:

      Code Block
      #!/bin/bash
      
      # Create region
      
      echo "Create region: RegionOne"
      curl --silent -X POST \
        http://{{ .Values.service.name }}:{{ .Values.service.internalPort }}/api/dcim/regions/ \
        -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
        -H 'Content-Type: application/json' \
        -d '{
        "name": "RegionOne",
        "slug": "RegionOne"
      }'
      
      # Create tenant group
      
      echo "Create tenant group: ONAP group"
      curl --silent -X POST \
        http://{{ .Values.service.name }}:{{ .Values.service.internalPort }}/api/tenancy/tenant-groups/ \
        -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
        -H 'Content-Type: application/json' \
        -d '{
        "name": "ONAP group",
        "slug": "onap-group"
      }'
      
      # Create tenant
      
      echo "Create tenant ONAP in ONAP group"
      curl --silent -X POST \
        http://{{ .Values.service.name }}:{{ .Values.service.internalPort }}/api/tenancy/tenants/ \
        -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
        -H 'Content-Type: application/json' \
        -d '{
        "name": "ONAP",
        "slug": "onap",
        "group": 1,
        "description": "ONAP tenant",
        "comments": "Tenant for ONAP demo use cases"
      }'
      
      # Create site
      
      echo "Create ONAP demo site: Montreal Lab"
      curl --silent -X POST \
        http://{{ .Values.service.name }}:{{ .Values.service.internalPort }}/api/dcim/sites/ \
        -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
        -H 'Content-Type: application/json' \
        -d '{
        "name": "Montreal Lab D3",
        "slug": "mtl-lab-d3",
        "region": 1,
        "tenant": 1,
        "facility": "Campus",
        "time_zone": "Canada/Atlantic",
        "description": "Site hosting the ONAP use cases",
        "physical_address": "1 Graham Bell",
        "shipping_address": "1 Graham Bell",
        "contact_name": "Alexis",
        "contact_phone": "0000000000",
        "contact_email": "adetalhouet89@gmail.com",
        "comments": "ONAP lab"
      }'
      
      # Create prefixes
      
      echo "Create Prefix for vFW protected network"
      curl --silent -X POST \
        http://{{ .Values.service.name }}:{{ .Values.service.internalPort }}/api/ipam/prefixes/ \
        -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
        -H 'Content-Type: application/json' \
        -d '{
        "prefix": "192.168.20.0/24",
        "site": 1,
        "tenant": 1,
        "is_pool": true,
        "description": "IP Pool for protected network - vFW use case"
      }'
      
      echo "Create Prefix for vFW unprotected network"
      curl --silent -X POST \
        http://{{ .Values.service.name }}:{{ .Values.service.internalPort }}/api/ipam/prefixes/ \
        -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
        -H 'Content-Type: application/json' \
        -d '{
        "prefix": "192.168.10.0/24",
        "site": 1,
        "tenant": 1,
        "is_pool": true,
        "description": "IP Pool for unprotected network - vFW use case"
      }'
      
      echo "Create Prefix for ONAP general purpose network"
      curl --silent -X POST \
        http://{{ .Values.service.name }}:{{ .Values.service.internalPort }}/api/ipam/prefixes/ \
        -H 'Authorization: Token onceuponatimeiplayedwithnetbox20180814' \
        -H 'Content-Type: application/json' \
        -d '{
        "prefix": "10.0.0.0/8",
        "site": 1,
        "tenant": 1,
        "is_pool": true,
        "description": "IP Pool for ONAP - general purpose"
      }'
      
      
      
    Expand
    titleAdding capability in CCSDK / SDNC-OAM
    Work items required to add a new capability:

        If there is any database needed for the plugin, create them in sdnc/oam:
        sdnc/oam:
            - add a dump of the tables + static data if any in sdnc-oam/installation/sdnc/src/main/resources with the file name being ${SOMETHING}.data.dump. example: https://gerrit.onap.org/r/#/c/61137/
            - add the DG flow for the operation you're implementing. The DG should be named 'self-serve-$CAPABILITY_NAME', e.g. self-serve-netbbox-ip-assign

        The code to interact with the external system has to be done in the ccsdk/sli/adaptors:
        ccsdk/sli/apdaptors:
            - create a new plugin composed of features/installer/provider. example: https://github.com/onap/ccsdk-sli-adaptors/tree/master/netbox-client
            - add the module in the root pom.xml file. example: https://github.com/onap/ccsdk-sli-adaptors/blob/master/pom.xml#L114
            - add the plugin feature into ccsdk/sli/apdaptors/features/ccsdk-sli-adaptors-all/pom.xml. example: https://github.com/onap/ccsdk-sli-adaptors/blob/master/features/ccsdk-sli-adaptors-all/pom.xml#L61-L67
            - the interface you will create in the provider has to extend org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin. example: https://github.com/onap/ccsdk-sli-adaptors/blob/master/netbox-client/provider/src/main/java/org/onap/ccsdk/sli/adaptors/netbox/api/NetboxClient.java#L27
            - the functions defined in your interfaces: example: https://github.com/onap/ccsdk-sli-adaptors/blob/master/netbox-client/provider/src/main/java/org/onap/ccsdk/sli/adaptors/netbox/api/NetboxClient.java#L32-L42
                - can have up to two parameters, a Map<String,String> passing all the input parameters, and the org.onap.ccsdk.sli.core.sli.SvcLogicContext being the DG context
                - have to return org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus as this is the standard output for 'execute' block of DG

        In order to of the plugin has to be added to odlsli to it's landing in the SDNC image down the CI:
        ccsdk/distribution:
            - add the *.repo artifact in ccsdk/distribution/odlsli/pom.xml. example: https://github.com/onap/ccsdk-distribution/blob/master/odlsli/pom.xml#L122-L128
    Expand
    titlePlugin IP Assignment DG flow using generic-resource-api [Assign]

    Overview

    The generic-resource-api is used to assign cloud parameter assignment during instantiation flow. The vf-module instantiation flow begins with the main DG, self-serve-vfmodule-assign, when the svc-action = assign in the rpc request.

    The main DG will call a series of sub-DGs according to the execution order of all the predefined capability components, such as generate-name, vlan-tag-assignment, eipam-ip-assignment, etc.

    For IP assignment, the main DG calls the sub-DG, self-serve-eipam-ip-assignment to start the ip assignment process.

    This wiki serves as the blueprint for capability integration with generic-resource-api for ip assignments, and it is used to integrate EIPAM custom plugin to obtain ip address assignments during vf-module orchestration.

    Prerequisite                  

    The following parameters must be set in context memory prior to the self-serve-eipam-ip-assignment sub-DG is called.

    • ss.capability-name
      • value that matches the capability DG name; i.e. self-serve-eipam-ip-assignment
    • ss.capability-action
      • assign
    • vnf-index
      • The array index of the vnf that owns this vf-module in config tree
    • vf-module-index
      • The array index of this vf-module in config tree
    • service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[].

    Logic

    1.   Unresolved Parameter Resolution

    -        Calls self-serve-capability-param-resolution DG to resolve all the unresolved values in vf-module-parameters.param[].resource-resolution-data.resource-key[].value where resource-resolution-data.capability-name matches this DG name.

    2.   Call EIPAM Plugin

    -        The EIPAM plugin returns the ip assignment in a context variable, called eipam-ip-block

    -        eipam-ip-block.plans[].requests[].ip-prefix

    -        eipam-ip-block.plans[].requests[].ip-prefix-length

    -        eipam-ip-block.plans[].requests[].ReservedAssignments[0]. ReservedAssignment[3].ReservedKeyIPAddress

    -        Insert an entry to EIPAM_IP_ASSIGNMENTS table

    3.   Set Heat Parameters

    The sub-DG, self-serve-vfmodule-assign will set value of then heat parameters based on the EIPAM

    -        vmxvre_oam_ip_0 = eipam-ip-block.plans[].requests[].ip-prefix

    -        vmxvre_oam_ip_prefix_0 = eipam-ip-block.plans[].requests[].ip-prefix-length

    -        vmxvre_oam_gateway = eipam-ip-block.plans[].requests[].ReservedAssignments[0].

    -        ReservedAssignment[3].ReservedKeyIPAddress

    4.   Netbox API call

    VerbURIJSON payload (Bare minimal)ParamsTypeCommentsJSON responseNote
    POST/api/ipam/prefixes/{prefix-id}/available-ips/

    {

      "custom_fields": {

        "external-key": "test",

        "resource-name": "cloudParamName"

      }

    }

    prefix-idIntegerThe ID of the prefix from which to retrieve next available IP

    {


        "id": 4,


        "address": "192.168.10.2/32",


        "vrf": null,


        "tenant": null,


        "status": 1,


        "role": null,


        "interface": null,


        "description": "",


        "nat_inside": null,


        "custom_fields": {


            "external-key": "test",


            "resource-name": "cloudParamName"


        },


        "created": "2018-08-30",


        "last_updated": "2018-08-30T14:59:05.277820Z"


    }

    Loop function within the SDNC for getting the next available for each cloud param resource. 

    5.   Testing out the DG

    To test the DG to resolve multiple IPs, that mock-up data can be used:

    Code Block
    {
      "input": {
        "module-name": "GENERIC-RESOURCE-API",
        "rpc-name": "self-serve-netbox-ip-assignment",
        "mode": "sync",
        "sli-parameter": [
          {
            "parameter-name": "ss.capability-name",
            "string-value": "netbox-ip-assign"
          },
          {
            "parameter-name": "ss.capability-action",
            "string-value": "assign"
          },
          {
            "parameter-name": "vnf-index",
            "int-value": 0
          },
          {
            "parameter-name": "vf-module-index",
            "int-value": 0
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length",
            "string-value": "2"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name",
            "string-value": "unprotected_private_net_cidr"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name",
            "string-value": "netbox-ip-assign"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status",
            "string-value": "PENDING"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length",
            "int-value": 4
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name",
            "string-value": "service-instance-id"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value",
            "string-value": "1234-56789-4321-98766"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].name",
            "string-value": "prefix-id"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].value",
            "string-value": "1"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].name",
            "string-value": "vf-module-id"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].value",
            "string-value": "9999-999999-9999-999999"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].name",
            "string-value": "external_key"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].value",
            "string-value": "david-the-boss-blah"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].name",
            "string-value": "protected_private_net_cidr"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.capability-name",
            "string-value": "netbox-ip-assign"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.status",
            "string-value": "PENDING"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key_length",
            "int-value": 4
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].name",
            "string-value": "service-instance-id"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].value",
            "string-value": "1234-56789-4321-98765"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[1].name",
            "string-value": "prefix-id"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[1].value",
            "string-value": "1"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[2].name",
            "string-value": "vf-module-id"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[2].value",
            "string-value": "9999-999999-9999-999999"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[3].name",
            "string-value": "external_key"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[3].value",
            "string-value": "david-the-boss-blah-2"
          }
        ]
      }
    }

    6.   Additional notes

    Code Block
    collapsetrue
    Self Service flow, once the topology-operation run-time assign flow is forked to use the self-service flow, DG will trigger the self service execute node “configAssignmentNode” with the required input to get the resolved artifact template. DG then will persist the template in MDSAL and trigger the rest of capabilities according to execution order. Below is summary of flow. We can discuss the flow in more details on Monday’s call.  
     
    vnf-topology-operation
    
    -      This is the top level DG that will handle the rpc from MSO and it will invoke other DGs based on svc-action.
     
    vnf-topology-operation-assign
    
    -      Called by vnf-topology-operation when svc-action=assign
    -      execute self-serve forking logic and invoke self-serve-vnf-assign DG
     
    self-serve-vnf-assign
    
    -      Called by vnf-topology-operation-assign
    -      Set vnf-index
    -      Copy MSO request inputs to service-data
    -      Call self-serve-ra-assignment if vnf-parameters-data.param_length is not null
    -      When self-serve-ra-assignment returns success, loop thru VNF capability execution order to call each capability DG by capabaility-name
    -      Each capability DG will call self-serve-capability-param-resolution to resolve all unresolved value in resource-keys before calling its
    -      capability component.
    -      When ALL capability DG returns success, call self-serve-unresolved-composite-data DG.
    -      Call AAI Put to update AAI
    -      If ALL capability DG and AAI update are successful, persists service-data in MD-SAL and return SUCCESS to MSO
    -      If Any capability DG returns failure, persists service-data in MD-SAL and return FAILED to MSO
     
    self-serve-ra-assignment
    
    -      Called by self-serve-vnf-assign
    -      Generate input json string for configAssignmentNode
    -      Call ConfigAssignmentNode
    -      Parse ConfigAssignmentNode Response
    -      Copy RA response to param[] 
     
    self-service-capability-param-resolution
    
    -      Called by all Capability DGs
    -      Loop thru all resource-key[].value that contains “$”
    -      Resolve resource-key[].value by looping thru all param[].value
    -      Return failure if resource-key[].value cannot be resolved.
    Expand
    titlePlugin IP Unassignment DG flow using generic-resource-api [Unassignment]


    Overview

    The generic-resource-api is used to unassign cloud parameters during the vf-module unassign flow. The vf-module unassign flow begins with the main DG, self-serve-vfmodule-unassign, when the svc-action = unassign in the rpc request.

    The main DG will call a series of sub-DGs according to the execution order of all the predefined capability components, such as generate-name, vlan-tag-assignment, eipam-ip-assignment, etc to unassign cloud parameters.  Upon successful unassignment, the main DG will clear the service-data data in MD-SAL

    Prerequisites

    The following parameters must be set in context memory prior to the self-serve-eipam-ip-assignment sub-DG is called.


    • ss.capability-name

      • value that matches the capability DG name; i.e. self-serve-eipam-ip-assignment

    • ss.capability-action

      • unassign

    • vnf-index

      • The array index of the vnf that owns this vf-module in config tree

    • vf-module-index

      • The array index of this vf-module in config tree

    • service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[].

    Logic

    1.   Set EIPAM_IP_ASSIGNMENTS status

    • set EIPAM_IP_ASSIGNMENTS.status t0 PENDING_DELETE by service-instance-id and client-key

    2.   Call EIPAM Plugin unassignIp

    • Calls EIPAM plugin unassignIp method to unassign ip from EIPAM

    3.   Set Heat Parameters status

    • Set service-data … vf-module-parameters.param[].resource-resolution-data.status to DELETED for the following params

      • vmxvre_oam_ip_0

      • vmxvre_oam_ip_prefix_0

      • vmxvre_oam_gateway

    4.   Netbox API call

    ActionVerbURIJSON payload (Bare minimal)ParamsTypeCommentsJSON responseNote
    Delete IPDELETE/api/ipam/ip-addresses/{ip-id}/-ip-idIntegerThe ID of the IP address to delete-done as part of the VF Module delete action.

    5.   Testing out the DG

    To test the DG to release multiple IPs, that mock-up data can be used:

    Code Block
    {
      "input": {
        "module-name": "GENERIC-RESOURCE-API",
        "rpc-name": "self-serve-netbox-ip-assignment",
        "mode": "sync",
        "sli-parameter": [
          {
            "parameter-name": "ss.capability-name",
            "string-value": "netbox-ip-assign"
          },
          {
            "parameter-name": "ss.capability-action",
            "string-value": "unassign"
          },
          {
            "parameter-name": "vnf-index",
            "int-value": 0
          },
          {
            "parameter-name": "vf-module-index",
            "int-value": 0
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length",
            "string-value": "2"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name",
            "string-value": "netbox-ip-assign"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status",
            "string-value": "PENDING"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length",
            "int-value": 2
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name",
            "string-value": "service-instance-id"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value",
            "string-value": "1234-56789-4321-98766"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].name",
            "string-value": "external_key"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].value",
            "string-value": "david-the-boss-blah"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.capability-name",
            "string-value": "netbox-ip-assign"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.status",
            "string-value": "PENDING"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key_length",
            "int-value": 2
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].name",
            "string-value": "service-instance-id"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].value",
            "string-value": "1234-56789-4321-98765"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[1].name",
            "string-value": "external_key"
          },
          {
            "parameter-name": "service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[1].value",
            "string-value": "david-the-boss-blah-2"
          }
        ]
      }
    }



    Expand
    titleSDNC Artifacts


    1.   SDNC Blueprint

    • Code Block
      themeMidnight
      collapsetrue
      {
        "metadata": {
          "template_author": "aa0419",
          "template_name": "sdnc_vFW_blueprint1",
          "template_version": "1.0.0",
          "service-type": "vFW",
          "template_tags": "vFW, ONAP",
          "release": "1810",
          "vnf-type": "VFW"
        },
        "topology_template": {
          "inputs": {
            "request-id": {
              "required": true,
              "type": "string"
            },
            "service-instance-id": {
              "required": true,
              "type": "string"
            },
            "scope-type": {
              "required": true,
              "type": "string"
            },
            "action-name": {
              "required": true,
              "type": "string"
            },
            "hostname": {
              "required": true,
              "type": "string"
            },
            "resource-assignment-request": {
              "description": "This is Dynamic Data type for the receipe resource-assignment-action.",
              "required": false,
              "type": "dt-resource-assignment-request"
            }
          },
          "node_templates": {
            "resource-assignment-ra-component": {
              "type": "component-resource-assignment",
              "interfaces": {
                "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {
                  "operations": {
                    "process": {
                      "inputs": {
                        "action-name": "{ \"get_input\" : \"action-name\" }",
                        "service-template-name": "{ \"get_attribute\" : \"service-template-name\" }",
                        "template-names": [
                          "sdnc_vnf_vFW",
                          "sdnc_base",
                          "sdnc_vFW",
                          "sdnc_vsn",
                          "sdnc_vpg"
                        ],
                        "service-template-version": "{ \"get_attribute\" : \"service-template-version\" }",
                        "resource-type": "vnf-type",
                        "request-id": "{ \"get_input\" : \"request-id\" }",
                        "resource-id": "{ \"get_input\" : \"hostname\" }"
                      },
                      "outputs": {
                        "resource-assignment-params": "Success",
                        "status": "status"
                      }
                    }
                  }
                }
              },
              "capabilities": {
                "component-node": {
                  
                }
              }
            },
            "resource-assignment-action": {
              "type": "dg-resource-assignment",
              "properties": {
                "mode": "sync",
                "version": "LATEST",
                "is-start-flow": false
              },
              "interfaces": {
                "CONFIG": {
                  "operations": {
                    "ResourceAssignment": {
                      "inputs": {
                        "params": [
                          
                        ]
                      }
                    }
                  }
                }
              },
              "capabilities": {
                "dg-node": {
                  
                },
                "content": {
                  "properties": {
                    "type": "json"
                  }
                }
              },
              "requirements": {
                "component-dependency": {
                  "capability": "component-node",
                  "node": "resource-assignment-ra-component",
                  "relationship": "tosca.relationships.DependsOn"
                }
              }
            },
            "sdnc_vnf_vFW": {
              "type": "artifact-config-template",
              "properties": {
                "action-names": [
                  "resource-assignment-action"
                ]
              },
              "capabilities": {
                "content": {
                  "properties": {
                    "content": "sdnc_vnf_vFW"
                  }
                },
                "mapping": {
                  "properties": {
                    "mapping": [
                      {
                        "name": "service-instance-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "service-instance-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-model-customization-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-model-customization-uuid",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "aic-cloud-region",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "aic-cloud-region",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf_name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf_name",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-naming-policy",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-naming-policy",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "nf-role",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "nf-role",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      }
                    ]
                  }
                }
              }
            },
            "sdnc_vFW": {
              "type": "artifact-config-template",
              "capabilities": {
                "content": {
                  "properties": {
                    "content": "sdnc_vFW"
                  }
                },
                "mapping": {
                  "properties": {
                    "mapping": [
                      {
                        "name": "service-instance-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "service-instance-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-name",
                        "dictionary-source": "mdsal",
                        "dependencies": [
                          "service-instance-id"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-model-customization-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-model-customization-uuid",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-type",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-type",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-model-customization-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-model-customization-uuid",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfccustomizationuuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfccustomizationuuid",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "aic-cloud-region",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "aic-cloud-region",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "availability_zone_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "availability_zone_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vm-type",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vm-type",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnfc-model-invariant-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnfc-model-invariant-uuid",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vfccustomizationuuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnfc-model-version",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnfc-model-version",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vfccustomizationuuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "nf-role",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "vFW"
                        },
                        "input-param": false,
                        "dictionary-name": "nf-role",
                        "dictionary-source": "default",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "nfc-naming-code",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "nfc-naming-code",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "public_net_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "public_net_id"
                        },
                        "input-param": false,
                        "dictionary-name": "public_net_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_net_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "value": "",
                          "default": "onap_private_net_id"
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_net_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_subnet_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "value": "Oam_Network_Puhf",
                          "default": "Oam_Network_Puhf"
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_subnet_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "unprotected_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "unprotected_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "protected_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "protected_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "nexus_artifact_repo",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "nexus_artifact_repo"
                        },
                        "input-param": false,
                        "dictionary-name": "nexus_artifact_repo",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "sec_group",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "onap_sg_PUhf"
                        },
                        "input-param": false,
                        "dictionary-name": "sec_group",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                       
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfw_name_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfw_name_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-naming-policy",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {}
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "SDNC_Policy.Config_MS_ONAP_VFW_NAMING_TIMESTAMP"
                        },
                        "input-param": false,
                        "dictionary-name": "vf-naming-policy",
                        "dictionary-source": "default",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf_module_name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf_module_name",
                        "dictionary-source": "input",
                        "dependencies": [
      
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-label",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-label",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "private-prefix-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "private-prefix-id",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfw_private_ip_2",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfw_private_ip_2",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "protected-prefix-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "protected-prefix-id",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfw_private_ip_1",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfw_private_ip_1",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "unprotected-prefix-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "unprotected-prefix-id",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfw_private_ip_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfw_private_ip_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vpg_private_ip_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vpg_private_ip_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf_name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf_name",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      }
                    ]
                  }
                }
              }
            },
            "sdnc_vpg": {
              "type": "artifact-config-template",
              "capabilities": {
                "content": {
                  "properties": {
                    "content": "sdnc_vpg"
                  }
                },
                "mapping": {
                  "properties": {
                    "mapping": [
                      {
                        "name": "service-instance-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "service-instance-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-name",
                        "dictionary-source": "mdsal",
                        "dependencies": [
                          "service-instance-id"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-model-customization-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-model-customization-uuid",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-type",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-type",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-model-customization-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-model-customization-uuid",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfccustomizationuuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfccustomizationuuid",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "aic-cloud-region",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "aic-cloud-region",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "availability_zone_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "availability_zone_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vm-type",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vm-type",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnfc-model-invariant-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnfc-model-invariant-uuid",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vfccustomizationuuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnfc-model-version",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnfc-model-version",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vfccustomizationuuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "nf-role",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "vPG"
                        },
                        "input-param": false,
                        "dictionary-name": "nf-role",
                        "dictionary-source": "default",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "nfc-naming-code",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "nfc-naming-code",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "public_net_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "public_net_id"
                        },
                        "input-param": false,
                        "dictionary-name": "public_net_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_net_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "onap_private_net_id"
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_net_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_subnet_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "Oam_Network_Puhf"
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_subnet_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "unprotected_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "unprotected_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfw_private_ip_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfw_private_ip_0",
                        "dictionary-source": "mdsal",
                        "dependencies": [
                          "service-instance-id","vnf-id","vf-module-id"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vsn_private_ip_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vsn_private_ip_0",
                        "dictionary-source": "mdsal",
                        "dependencies": [
                          "service-instance-id","vnf-id","vf-module-id"
                        ],
                        "version": 0
                      },
                      {
                        "name": "nexus_artifact_repo",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "nexus_artifact_repo"
                        },
                        "input-param": false,
                        "dictionary-name": "nexus_artifact_repo",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "sec_group",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "onap_sg_PUhf"
                        },
                        "input-param": false,
                        "dictionary-name": "sec_group",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "pvg_private_ip_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "pvg_private_ip_0",
                        "dictionary-source": "mdsal",
                        "dependencies": [
                          "service-instance-id","vnf-id","vf-module-id"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vpg_name_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vpg_name_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-naming-policy",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "SDNC_Policy.Config_MS_ONAP_VPG_NAMING_TIMESTAMP"
                        },
                        "input-param": false,
                        "dictionary-name": "vf-naming-policy",
                        "dictionary-source": "default",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf_module_name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf_module_name",
                        "dictionary-source": "input",
                        "dependencies": [
      
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-label",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-label",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "private-prefix-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "private-prefix-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vpg_private_ip_1",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vpg_private_ip_1",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      }
                    ]
                  }
                }
              }
            },
            "sdnc_vsn": {
              "type": "artifact-config-template",
              "capabilities": {
                "content": {
                  "properties": {
                    "content": "sdnc_vsn"
                  }
                },
                "mapping": {
                  "properties": {
                    "mapping": [
                      {
                        "name": "service-instance-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "service-instance-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-name",
                        "dictionary-source": "mdsal",
                        "dependencies": [
                          "service-instance-id"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-model-customization-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-model-customization-uuid",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-type",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-type",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-model-customization-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-model-customization-uuid",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfccustomizationuuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfccustomizationuuid",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "aic-cloud-region",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "aic-cloud-region",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "aic_clli",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "aic_clli",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "availability_zone_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "availability_zone_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vm-type",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vm-type",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnfc-model-invariant-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnfc-model-invariant-uuid",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vfccustomizationuuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnfc-model-version",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnfc-model-version",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vfccustomizationuuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "nf-role",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "vSN"
                        },
                        "input-param": false,
                        "dictionary-name": "nf-role",
                        "dictionary-source": "default",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "nfc-naming-code",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "nfc-naming-code",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "public_net_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "value": "public_net_id",
                          "default": "public_net_id"
                        },
                        "input-param": false,
                        "dictionary-name": "public_net_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_net_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_net_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_subnet_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "Oam_Network_Puhf"
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_subnet_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "unprotected_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "unprotected_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "protected_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "protected_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "onap_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "onap_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                         
                        ],
                        "version": 0
                      },
                      {
                        "name": "nexus_artifact_repo",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "value": "nexus_artifact_repo",
                          "default": "nexus_artifact_repo"
                        },
                        "input-param": false,
                        "dictionary-name": "nexus_artifact_repo",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "sec_group",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "onap_sg_PUhf"
                        },
                        "input-param": false,
                        "dictionary-name": "sec_group",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vfw_private_ip_1",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vfw_private_ip_1",
                        "dictionary-source": "mdsal",
                        "dependencies": [
                          "service-instance-id","vnf-id","vf-module-id"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vsn_name_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vsn_name_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-naming-policy",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "SDNC_Policy.Config_MS_ONAP_VSN_NAMING_TIMESTAMP"
                        },
                        "input-param": false,
                        "dictionary-name": "vf-naming-policy",
                        "dictionary-source": "default",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf_module_name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf_module_name",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vf-module-label",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vf-module-label",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vf-module-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "private-prefix-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "private-prefix-id",
                        "dictionary-source": "input",
                        "dependencies": [
                      
                        ],
                        "version": 0
                      },
                      {
                        "name": "vsn_private_ip_1",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vsn_private_ip_1",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "protected-prefix-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "protected-prefix-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vsn_private_ip_0",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vsn_private_ip_0",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      }
                    ]
                  }
                }
              }
            },
            "sdnc_base": {
              "type": "artifact-config-template",
              "capabilities": {
                "content": {
                  "properties": {
                    "content": "sdnc_base"
                  }
                },
                "mapping": {
                  "properties": {
                    "mapping": [
                      {
                        "name": "service-instance-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "service-instance-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-id",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-model-customization-uuid",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
                              
                            }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-model-customization-uuid",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "aic-cloud-region",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "aic-cloud-region",
                        "dictionary-source": "input",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "nf-role",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "nf-role",
                        "dictionary-source": "db",
                        "dependencies": [
                          "vnf-model-customization-uuid"
                        ],
                        "version": 0
                      },
                      {
                        "name": "vnf-name",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "string",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "vnf-name",
                        "dictionary-source": "mdsal",
                        "dependencies": [
                          "service-instance-id"
                        ],
                        "version": 0
                      },
                      {
                        "name": "protected_private_subnet_id",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          },
                          "default": "Protected_Network_Puhf"
                        },
                        "input-param": false,
                        "dictionary-name": "protected_private_subnet_id",
                        "dictionary-source": "default",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      },
                      {
                        "name": "unprotected_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "unprotected_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                         
                        ],
                        "version": 0
                      },
                      {
                        "name": "protected_private_net_cidr",
                        "property": {
                          "description": "",
                          "required": true,
                          "type": "",
                          "status": "",
                          "constraints": [
                            {
      
      					  }
                          ],
                          "entry_schema": {
                            "type": ""
                          }
                        },
                        "input-param": false,
                        "dictionary-name": "protected_private_net_cidr",
                        "dictionary-source": "db",
                        "dependencies": [
                          
                        ],
                        "version": 0
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "node_types": {
          "tosca.nodes.Component": {
            "description": "This is default Component Node",
            "version": "1.0.0",
            "derived_from": "tosca.nodes.Root"
          },
          "tosca.nodes.DG": {
            "description": "This is Directed Graph Node Type",
            "version": "1.0.0",
            "derived_from": "tosca.nodes.Root"
          },
          "tosca.nodes.Artifact": {
            "description": "This is Deprecated Artifact Node Type.",
            "version": "1.0.0",
            "derived_from": "tosca.nodes.Root"
          },
          "component-resource-assignment": {
            "description": "This is Resource Assignment Component API",
            "version": "1.0.0",
            "capabilities": {
              "component-node": {
                "type": "tosca.capabilities.Node"
              }
            },
            "interfaces": {
              "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode": {
                "operations": {
                  "process": {
                    "inputs": {
                      "action-name": {
                        "description": "Action Name of the process",
                        "required": true,
                        "type": "string"
                      },
                      "service-template-name": {
                        "description": "Service Template Name.",
                        "required": true,
                        "type": "string"
                      },
                      "service-template-version": {
                        "description": "Service Template Version.",
                        "required": true,
                        "type": "string"
                      },
                      "resource-type": {
                        "description": "Request type.",
                        "required": true,
                        "type": "string"
                      },
                      "template-names": {
                        "description": "Name of the artifact Node Templates, to get the template Content.",
                        "required": true,
                        "type": "list",
                        "entry_schema": {
                          "type": "string"
                        }
                      },
                      "request-id": {
                        "description": "Request Id, Unique Id for the request.",
                        "required": true,
                        "type": "string"
                      },
                      "resource-id": {
                        "description": "Resource Id.",
                        "required": true,
                        "type": "string"
                      }
                    },
                    "outputs": {
                      "resource-assignment-params": {
                        "required": true,
                        "type": "string"
                      },
                      "status": {
                        "required": true,
                        "type": "string"
                      }
                    }
                  }
                }
              }
            },
            "derived_from": "tosca.nodes.Component"
          },
          "dg-resource-assignment": {
            "description": "This is Resource Assignment Directed Graph",
            "version": "1.0.0",
            "properties": {
              "mode": {
                "required": false,
                "type": "string",
                "default": "sync"
              },
              "version": {
                "required": false,
                "type": "string",
                "default": "LATEST"
              },
              "is-start-flow": {
                "required": false,
                "type": "boolean",
                "default": "false"
              }
            },
            "capabilities": {
              "dg-node": {
                "type": "tosca.capabilities.Node"
              },
              "content": {
                "type": "tosca.capabilities.Content",
                "properties": {
                  "type": {
                    "required": false,
                    "type": "string",
                    "default": "json"
                  },
                  "content": {
                    "required": false,
                    "type": "string"
                  }
                }
              }
            },
            "requirements": {
              "component-dependency": {
                "capability": "component-node",
                "node": "component-resource-assignment",
                "relationship": "tosca.relationships.DependsOn"
              }
            },
            "interfaces": {
              "CONFIG": {
                "operations": {
                  "ResourceAssignment": {
                    "inputs": {
                      "params": {
                        "required": false,
                        "type": "list",
                        "entry_schema": {
                          "type": "datatype-property"
                        }
                      }
                    }
                  }
                }
              }
            },
            "derived_from": "tosca.nodes.DG"
          },
          "artifact-config-template": {
            "description": "This is Configuration Velocity Template",
            "version": "1.0.0",
            "properties": {
              "action-names": {
                "required": true,
                "type": "list",
                "entry_schema": {
                  "type": "string"
                }
              }
            },
            "capabilities": {
              "content": {
                "type": "tosca.capabilities.Content",
                "properties": {
                  "content": {
                    "required": true,
                    "type": "string"
                  }
                }
              },
              "mapping": {
                "type": "tosca.capabilities.Mapping",
                "properties": {
                  "mapping": {
                    "required": false,
                    "type": "list",
                    "entry_schema": {
                      "type": "datatype-resource-assignment"
                    }
                  }
                }
              }
            },
            "derived_from": "tosca.nodes.Artifact"
          }
        },
        "data_types": {
          "datatype-property": {
            "version": "1.0.0",
            "description": "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs",
            "properties": {
              "type": {
                "required": true,
                "type": "string"
              },
              "description": {
                "required": false,
                "type": "string"
              },
              "required": {
                "required": false,
                "type": "boolean"
              },
              "default": {
                "required": false,
                "type": "string"
              },
              "entry_schema": {
                "required": false,
                "type": "string"
              }
            },
            "derived_from": "tosca.datatypes.Root"
          },
          "datatype-resource-assignment": {
            "version": "1.0.0",
            "description": "This is Resource Assignment Data Type",
            "properties": {
              "property": {
                "required": true,
                "type": "datatype-property"
              },
              "input-param": {
                "required": true,
                "type": "boolean"
              },
              "dictionary-name": {
                "required": false,
                "type": "string"
              },
              "dictionary-source": {
                "required": false,
                "type": "string"
              },
              "dependencies": {
                "required": true,
                "type": "list",
                "entry_schema": {
                  "type": "string"
                }
              },
              "status": {
                "required": false,
                "type": "string"
              },
              "message": {
                "required": false,
                "type": "string"
              },
              "updated-date": {
                "required": false,
                "type": "string"
              },
              "updated-by": {
                "required": false,
                "type": "string"
              }
            },
            "derived_from": "tosca.datatypes.Root"
          },
          "dt-resource-assignment-request": {
            "version": "1.0.0",
            "description": "This is Dynamic Data type definition generated from resource mapping for the config template name activate-template.",
            "properties": {
              "password-user-ftap-nsm": {
                "required": true,
                "type": "string",
                "default": "password-user-ftap"
              },
              "reservation-id": {
                "required": true,
                "type": "string",
                "value": "123"
              },
              "security-manager-resource-key": {
                "required": true,
                "type": "string",
                "value": "sdnc"
              },
              "password-user-ftap": {
                "description": "",
                "required": true,
                "type": "string",
                "status": "",
                "constraints": [
                  {
                    
                  }
                ],
                "entry_schema": {
                  "type": ""
                }
              }
            },
            "derived_from": "tosca.datatypes.Dynamic"
          }
        }
      }

    2.   Artifact Templates

    • VNF

    View file
    namesdnc_vnf_vFW.json
    height250

    • BASE

    View file
    namesdnc_base.json
    height250

    • vFW

    View file
    namesdnc_vFW.json
    height250

    • vSN

    View file
    namesdnc_vsn.json
    height250

    • vPG

    View file
    namesdnc_vpg.json
    height250

    3.   Data Dictionaries


    View file
    nameNew_DD.zip
    height250

    Expand
    titlePlugin IP Unassignment DG flow using generic-resource-api [Unassignment]

    Overview

    The generic-resource-api is used to unassign cloud parameters during the vf-module unassign flow. The vf-module unassign flow begins with the main DG, self-serve-vfmodule-unassign, when the svc-action = unassign in the rpc request.

    The main DG will call a series of sub-DGs according to the execution order of all the predefined capability components, such as generate-name, vlan-tag-assignment, eipam-ip-assignment, etc to unassign cloud parameters.  Upon successful unassignment, the main DG will clear the service-data data in MD-SAL

    Prerequisites

    The following parameters must be set in context memory prior to the self-serve-eipam-ip-assignment sub-DG is called.

    • ss.capability-name

      • value that matches the capability DG name; i.e. self-serve-eipam-ip-assignment

    • ss.capability-action

      • unassign

    • vnf-index

      • The array index of the vnf that owns this vf-module in config tree

    • vf-module-index

      • The array index of this vf-module in config tree

    • service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[].

    Logic

    1.   Set EIPAM_IP_ASSIGNMENTS status

    • set EIPAM_IP_ASSIGNMENTS.status t0 PENDING_DELETE by service-instance-id and client-key

    2.   Call EIPAM Plugin unassignIp

    • Calls EIPAM plugin unassignIp method to unassign ip from EIPAM

    3.   Set Heat Parameters status

    Set service-data … vf-module-parameters.param[].resource-resolution-data.status to DELETED for the following params

  1. vmxvre_oam_ip_0

  2. vmxvre_oam_ip_prefix_0

  3. vmxvre_oam_gateway