Generic resource API catch up
[sdnc/northbound.git] / generic-resource-api / model / src / main / yang / GENERIC-RESOURCE-API.yang
index 2a607cb..7892351 100644 (file)
@@ -61,6 +61,12 @@ module GENERIC-RESOURCE-API {
                container vnf-data {\r
                   uses vnf-operation-information;\r
                   uses vnf-topology;\r
+                  container vnf-network-collections {\r
+                     uses vnf-network-collection;\r
+                  }\r
+                  container vnf-sub-interface-groups {\r
+                     uses vnf-sub-interface-group;\r
+                  }\r
                   container vnf-provided-allotted-resources {\r
                      leaf-list vnf-provided-ar-id {\r
                         description "List of allotted resources using capacity from this vnf";\r
@@ -98,6 +104,29 @@ module GENERIC-RESOURCE-API {
                uses allotted-resource-info;\r
             }\r
          }\r
+         container provided-configurations {\r
+            list provided-configuration {\r
+               key "configuration-id";\r
+               uses configuration-info;\r
+            }\r
+         }\r
+         container vnfc-instance-groups {\r
+            uses vnfc-instance-group;\r
+         }\r
+         container network-instance-groups {\r
+            uses network-instance-group;\r
+         }\r
+         container forwarding-paths {\r
+            list forwarding-path {\r
+               key "forwarding-path-id";\r
+               leaf forwarding-path-id {\r
+                  description "Generated by SDNC";\r
+                  type string;\r
+                  mandatory true;\r
+               }\r
+               uses forwarding-path-information;\r
+            }\r
+         }\r
       }\r
    }\r
    grouping service-status {\r
@@ -134,6 +163,7 @@ module GENERIC-RESOURCE-API {
                enum "delete";\r
                enum "unassign";\r
                enum "deactivate";\r
+               enum "create";\r
             }\r
          }\r
          leaf response-timestamp {\r
@@ -225,6 +255,10 @@ module GENERIC-RESOURCE-API {
          leaf network-type {\r
             type string;\r
          }\r
+         leaf from-preload {\r
+            description "Indicates if source is preload data";\r
+            type boolean;\r
+         }\r
          uses onap-model-information;\r
       }\r
    }\r
@@ -237,6 +271,10 @@ module GENERIC-RESOURCE-API {
          container network-input-parameters {\r
             uses param;\r
          }\r
+         leaf network-instance-group-id {\r
+            description "When network has instance-group role in service model";\r
+            type string;\r
+         }\r
       }\r
    }\r
    grouping network-topology {\r
@@ -262,12 +300,14 @@ module GENERIC-RESOURCE-API {
          leaf network-type {\r
             type string;\r
          }\r
+         leaf network-instance-group-id {\r
+            description "When network is part of network instance-Group-data & instance Group in A&AI";\r
+            type string;\r
+         }\r
          leaf network-technology {\r
-            description "should we keep this?";\r
             type string;\r
          }\r
          leaf eipam-v4-address-plan {\r
-            description "??";\r
             type string;\r
          }\r
          leaf eipam-v6-address-plan {\r
@@ -292,6 +332,81 @@ module GENERIC-RESOURCE-API {
          }\r
       }\r
    }\r
+   grouping network-instance-group {\r
+      list network-instance-group {\r
+         key "network-instance-group-id";\r
+         leaf network-instance-group-id {\r
+            description "Also a Key in Network Instance Group in A&AI";\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         leaf network-instance-group-function {\r
+            type string;\r
+         }\r
+         leaf service-instance-id {\r
+            type string;\r
+         }\r
+         uses onap-model-information;\r
+         container subnet-assignment-policy {\r
+            leaf subnet-use {\r
+               description "Current valid values - unique, shared (default)";\r
+               type string;\r
+            }\r
+         }\r
+         container vpn-binding-policy {\r
+            leaf vpn-binding {\r
+               type string;\r
+            }\r
+            leaf vpn-name {\r
+               type string;\r
+            }\r
+            leaf vpn-type {\r
+               type string;\r
+            }\r
+            leaf vpn-platform {\r
+               type string;\r
+            }\r
+            leaf global-route-target {\r
+               type string;\r
+            }\r
+            leaf route-target-role {\r
+               type string;\r
+            }\r
+         }\r
+         uses subnets;\r
+         leaf subnet-key-value {\r
+            description "key-value provided to EIPAM when  creating shared subnet";\r
+            type string;\r
+         }\r
+         container networks {\r
+            list network {\r
+               key "network-id";\r
+               leaf network-id {\r
+                  description "Index into network-topology-identifier structure";\r
+                  type string;\r
+                  mandatory true;\r
+               }\r
+               uses vpn-bindings;\r
+               leaf vlan-tag-id {\r
+                  type uint32;\r
+               }\r
+               leaf network-status {\r
+                  description "assigned, unassigned";\r
+                  type string;\r
+               }\r
+               container customer-bonding-requests {\r
+                  list customer-bonding-request {\r
+                     key "configuration-id";\r
+                     leaf configuration-id {\r
+                        description "e.g. vlan network receptor configuration id";\r
+                        type string;\r
+                     }\r
+                  }\r
+               }\r
+            }\r
+         }\r
+      }\r
+   }\r
    grouping network-level-oper-status {\r
       container network-level-oper-status {\r
          uses oper-status-data;\r
@@ -310,7 +425,9 @@ module GENERIC-RESOURCE-API {
             type string;\r
          }\r
          leaf vnf-type {\r
-            description "vnf-model-id in Pats model?in Pats vnf submodule, contained within vnf-instance-topology-identifier grouping (along with vnf-name and vnf-instance-id)";\r
+            type string;\r
+         }\r
+         leaf vnf-name {\r
             type string;\r
          }\r
          uses onap-model-information;\r
@@ -319,11 +436,9 @@ module GENERIC-RESOURCE-API {
    grouping vnf-request-input {\r
       container vnf-request-input {\r
          leaf request-version {\r
-            description "keep this? e.g. 1702";\r
             type string;\r
          }\r
          leaf vnf-name {\r
-            description "in Pats vnf submodule, contained within vnf-instance-topology-identifier (along with vnf-model-id and vnf-instance-id)";\r
             type string;\r
          }\r
          uses region-identifier;\r
@@ -333,6 +448,13 @@ module GENERIC-RESOURCE-API {
                uses vnf-network-data;\r
             }\r
          }\r
+         list vnf-network-instance-group-ids {\r
+            key "vnf-network-instance-group-id";\r
+            leaf vnf-network-instance-group-id {\r
+               description "List of vnf network-instance-group";\r
+               type string;\r
+            }\r
+         }\r
          container vnf-input-parameters {\r
             uses param;\r
          }\r
@@ -347,6 +469,10 @@ module GENERIC-RESOURCE-API {
          container vnf-parameters-data {\r
             uses param;\r
          }\r
+         leaf sdnc-generated-cloud-resources {\r
+            description "Indicate if source is sdnc generated cloud param";\r
+            type boolean;\r
+         }\r
       }\r
    }\r
    grouping vnf-topology-identifier-structure {\r
@@ -380,7 +506,7 @@ module GENERIC-RESOURCE-API {
    grouping vnf-resource-assignments {\r
       container vnf-resource-assignments {\r
          leaf vnf-status {\r
-            description "Do we need this?Orchestration status from AAI - to be set by SDNCWill not be used for vIPR.";\r
+            description "Orchestration status from AAI - to be set by SDNC";\r
             type string;\r
          }\r
          container availability-zones {\r
@@ -425,7 +551,19 @@ module GENERIC-RESOURCE-API {
       }\r
       container subnets-data {\r
          list subnet-data {\r
-            key "ip-version";\r
+            key "sdnc-subnet-id";\r
+            leaf sdnc-subnet-id {\r
+               description "Unique SDNC generated UUID of the subnet. Key into A&AI instance.This maps to ipv4-key-subnet-id and ipv6-key-subnet-id in VNF-API";\r
+               type string;\r
+            }\r
+            leaf subnet-role {\r
+               description "Subnet Role for the subnet";\r
+               type string;\r
+            }\r
+            leaf subnet-name {\r
+               description "Populated for preload only";\r
+               type string;\r
+            }\r
             leaf ip-version {\r
                description "Should be ipv4 or ipv6";\r
                type string;\r
@@ -434,6 +572,13 @@ module GENERIC-RESOURCE-API {
                description "subnet UUID to be passed into the HEAT template";\r
                type string;\r
             }\r
+            leaf dhcp-enabled {\r
+               description "Indicator to use this subnet for  DHCP ";\r
+               type enumeration {\r
+                  enum "Y";\r
+                  enum "N";\r
+               }\r
+            }\r
          }\r
       }\r
    }\r
@@ -458,6 +603,10 @@ module GENERIC-RESOURCE-API {
          leaf vf-module-type {\r
             type string;\r
          }\r
+         leaf from-preload {\r
+            description "Indicates if source is preload data";\r
+            type boolean;\r
+         }\r
          uses onap-model-information;\r
       }\r
    }\r
@@ -485,6 +634,10 @@ module GENERIC-RESOURCE-API {
          container vf-module-parameters {\r
             uses param;\r
          }\r
+         leaf sdnc-generated-cloud-resources {\r
+            description "Indicate if source is sdnc-generated-cloud-resources.When true, the parameters are literal HEAT template parameter names;When false, the parameters need to be converted to HEAT format"; \r
+            type boolean;\r
+         }\r
       }\r
    }\r
    grouping vf-module-topology-identifier {\r
@@ -498,7 +651,6 @@ module GENERIC-RESOURCE-API {
             type string;\r
          }\r
          leaf vf-module-type {\r
-            description "In Pats model referred to as model-id";\r
             type string;\r
          }\r
       }\r
@@ -506,7 +658,7 @@ module GENERIC-RESOURCE-API {
    grouping vf-module-assignments {\r
       container vf-module-assignments {\r
          leaf vf-module-status {\r
-            description "Do we need this?Orchestration status from AAI - to be set by SDNCNot being used for vIPR.";\r
+            description "Orchestration status from AAI - to be set by SDNC";\r
             type string;\r
          }\r
          container vms {\r
@@ -515,6 +667,7 @@ module GENERIC-RESOURCE-API {
                uses vm-topology-data;\r
             }\r
          }\r
+         uses vlan-vnfc-instance-groups;\r
       }\r
    }\r
    grouping vm-topology-data {\r
@@ -535,10 +688,18 @@ module GENERIC-RESOURCE-API {
       }\r
       container vm-names {\r
          leaf-list vm-name {\r
-            description "ordered-by: user";\r
             type string;\r
             ordered-by user;\r
          }\r
+         list vnfc-names {\r
+            key "vnfc-name";\r
+            leaf vnfc-name {\r
+               type string;\r
+            }\r
+            container vnfc-networks {\r
+               uses vnfc-network-data;\r
+            }\r
+         }\r
       }\r
       container vm-networks {\r
          list vm-network {\r
@@ -547,6 +708,83 @@ module GENERIC-RESOURCE-API {
          }\r
       }\r
    }\r
+   grouping vnfc-network-data {\r
+      list vnfc-network-data {\r
+         key "vnfc-network-role";\r
+         leaf vnfc-network-role {\r
+            description "e.g. dummy net - parent port network role ";\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         leaf vnfc-type {\r
+            description "Vm-type e.g. FW,";\r
+            type string;\r
+         }\r
+         container vnfc-ports {\r
+            list vnfc-port {\r
+               key "vnfc-port-id";\r
+               leaf vnfc-port-id {\r
+                  description "Port(s) with a given network-role are assigned vnfc-port-id from series - 01, 02, 03 ...Example: VM with two ports with network-role =X and another 2 ports with network-role=Y vnfc-port-ids:01 - 1st port with network-role=X02 - 2nd port with network-role=X01 - 1st port with network-role=Y02 - 2nd port with network-role=Y";\r
+                  type string;\r
+                  mandatory true;\r
+               }\r
+               leaf common-sub-interface-role {\r
+                  description "If sub-interfaces have common interface role (network role)";\r
+                  type string;\r
+               }\r
+               container vnic-sub-interfaces {\r
+                  uses sub-interface-network-data;\r
+               }\r
+            }\r
+         }\r
+         list vnfc-subnet {\r
+            key "vnfc-subnet-role";\r
+            leaf vnfc-subnet-role {\r
+               description "Default value if subnet role is not defined.";\r
+               type string;\r
+               mandatory true;\r
+            }\r
+            list vnfc-ip-assignments {\r
+               key "vnfc-address-family";\r
+               leaf vnfc-address-family {\r
+                  description "indicates if this is IpV4 or IpV6";\r
+                  type enumeration {\r
+                     enum "ipv4";\r
+                     enum "ipv6";\r
+                  }\r
+               }\r
+               leaf vnfc-subnet-dhcp {\r
+                  description "Indicator to use DHCP for IP assignment. Unless dhcp=N, we wouldnt have any IPs here, since they would not be SDNC assigned ";\r
+                  type enumeration {\r
+                     enum "Y";\r
+                     enum "N";\r
+                  }\r
+               }\r
+               leaf vnfc-subnet-ip-count {\r
+                  description "The number of IP addresses to be assigned per vnfc for this subnet role";\r
+                  type uint8;\r
+               }\r
+               list vnfc-subnet-ip {\r
+                  key "vnfc-ip-address";\r
+                  leaf vnfc-ip-address {\r
+                     description "Either IpV4 IP or IpV6 IP addresses should be present";\r
+                     type inet:ip-address;\r
+                  }\r
+                  leaf vnfc-client-key {\r
+                     type string;\r
+                  }\r
+                  leaf ip-type {\r
+                     description "Capture what type of IP this is, if is virtual IP (AKA, floating IP) or Fixed IP. ";\r
+                     type enumeration {\r
+                        enum "FIXED";\r
+                        enum "VIP";\r
+                     }\r
+                  }\r
+               }\r
+            }\r
+         }\r
+      }\r
+   }\r
    grouping vm-network-data {\r
       leaf network-role {\r
          description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";\r
@@ -576,7 +814,7 @@ module GENERIC-RESOURCE-API {
             }\r
             container network-ips {\r
                leaf-list network-ip {\r
-                  description "List of assigned ip addresses of type ip-version on a network. Is there a way to specify  format to indicate ipv4 or ipv6 format?";\r
+                  description "List of assigned ip addresses of type ip-version on a network";\r
                   type string;\r
                   ordered-by user;\r
                }\r
@@ -650,142 +888,647 @@ module GENERIC-RESOURCE-API {
          type string;\r
       }\r
    }\r
-   grouping contrail-route-operation-information {\r
+   grouping forwarding-path-operation-information {\r
       uses sdnc-request-header;\r
       uses request-information;\r
       uses service-information;\r
-      uses allotted-resource-information;\r
-      uses contrail-route-request-input;\r
-   }\r
-   grouping contrail-route-request-input {\r
-      container contrail-route-request-input {\r
-         container source-network {\r
-            uses network-info;\r
-         }\r
-         container dest-network {\r
-            uses network-info;\r
-         }\r
-         container contrail-applied-service-info {\r
-            leaf service-instance-id {\r
-               description "The service-instance-id of the service in which the resource(s) providing the applied-service are. For vIPR, this is the service-instance-id of the vIPR-ATM service in which the vIPR-ATM VNF Contrail service is the applied service. MSO will populate with the input data.";\r
-               type string;\r
-            }\r
-            leaf contrail-fqdn {\r
-               description "For future use by MSO on input; MSO not expected to populate in 1707. If MSO can identify the contrail-fqdn of the Contrail applied service for this contrail-route, then it would be specified here on input. Otherwise, SDN-C will look it up by the vIPR-ATM VNF in the service-instance-id of the contrail-applied-service-info grouing.";\r
+      uses forwarding-path-request-input;\r
+   }\r
+   grouping forwarding-path-request-input {\r
+      container forwarding-path-request-input {\r
+         list forwarding-paths {\r
+            key "forwarding-path-name";\r
+            leaf forwarding-path-name {\r
+               description "Forwarding-path-name from tosca-model. ";\r
                type string;\r
+               mandatory true;\r
             }\r
-         }\r
-         container contrail-route-input-parameters {\r
-            uses param;\r
+            uses onap-model-information;\r
          }\r
       }\r
    }\r
-   grouping network-info {\r
-      leaf network-id {\r
+   grouping forwarding-path-information {\r
+      leaf forwarding-path-name {\r
+         description "Fowarding-path name from TOSCA model, or name generated by SDNC";\r
          type string;\r
       }\r
-      leaf network-role {\r
-         type string;\r
+      leaf forwarding-path-type {\r
+         description "Based on MySQL Forwarding_Path tables path_type value from related TOSCA model";\r
+         type enumeration {\r
+            enum "VNF";\r
+            enum "Service";\r
+         }\r
       }\r
-   }\r
-   grouping contrail-route-topology {\r
-      container contrail-route-topology {\r
-         uses allotted-resource-identifiers;\r
-         uses onap-model-information;\r
-         uses contrail-route-assignments;\r
-         container contrail-route-parameters {\r
-            uses param;\r
+      uses onap-model-information;\r
+      container service-paths {\r
+         list service-path {\r
+            key "service-path-instance-id";\r
+            uses service-path-information;\r
          }\r
       }\r
    }\r
-   grouping contrail-route-assignments {\r
-      container contrail-route-assignments {\r
-         leaf fq-name {\r
-            description "The Contrail fq-name of the network policy";\r
-            type string;\r
-         }\r
-         leaf contrail-id {\r
-            description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)";\r
+   grouping service-path-information {\r
+      leaf service-path-instance-id {\r
+         description "Service path instance ID generated by SDNC. Identifies a service-path-instance within a forwarding-path definition";\r
+         type string;\r
+      }\r
+      leaf service-path-instance-name {\r
+         description "A unique name generated by SDNC ( forwarding-path-name + service-path-instance-id )";\r
+         type string;\r
+      }\r
+      leaf version {\r
+         description "Only one version of the service-path-instance data will be available in MD-SAL.  version will be updated when the service-path-instance is reevaluated ";\r
+         type string;\r
+      }\r
+      list service {\r
+         key "service-instance-id";\r
+         leaf service-instance-id {\r
+            description "service-instance-id of each service-instance in the service-path-instance";\r
             type string;\r
          }\r
-         container source-network {\r
-            uses network-info;\r
-         }\r
-         container dest-network {\r
-            uses network-info;\r
+         leaf service-path-sequence-id {\r
+            description "e.g. S1S2S3S5seq id=1  S1-S2seq id=2  S2S3seq id=3  S3S5Incremental integer value";\r
+            type uint32;\r
          }\r
-         container contrail-applied-service {\r
-            leaf service-instance-id {\r
-               description "The service-instance-id of the vnf from which the contrail applied service is coming";\r
-               type string;\r
-            }\r
-            leaf vnf-id {\r
-               description "The vnf representing the contrail applied service";\r
-               type string;\r
-            }\r
-            leaf contrail-fqdn {\r
-               description "This is the fq-name of the Contrail service instance through which the route is passing.";\r
-               type string;\r
+         container vnfs {\r
+            list vnf {\r
+               key "vnf-instance-id";\r
+               uses vnf-path-information;\r
             }\r
          }\r
-         leaf vlan-tag {\r
-            description "Contrail-assigned vlan-tag to the vipr vm interface for this route.";\r
-            type string;\r
-         }\r
       }\r
    }\r
-   grouping security-zone-operation-information {\r
-      uses sdnc-request-header;\r
-      uses request-information;\r
-      uses service-information;\r
-      uses allotted-resource-information;\r
-      uses security-zone-request-input;\r
-   }\r
-   grouping security-zone-request-input {\r
-      container security-zone-request-input {\r
-         leaf vlan-tag {\r
-            type string;\r
-         }\r
-         leaf trusted-network-role {\r
-            description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
+   grouping vnf-path-information {\r
+      leaf vnf-instance-id {\r
+         description "VNF instance ID in the path";\r
+         type string;\r
+      }\r
+      leaf vnf-path-sequence-id {\r
+         description "Sequence ID at the VNF instance levele.g.  e.g. V1V2V3V5V6seq id=1  V1-V2seq id=2  V2V3seq id=3  V3V5seq id=4  V5V6incremental integer value.";\r
+         type uint32;\r
+      }\r
+      leaf left-network-name {\r
+         description "Every VNF instance in the path is connected to one or two VNFs.";\r
+         type string;\r
+      }\r
+      leaf left-network-role {\r
+         type string;\r
+      }\r
+      leaf right-network-name {\r
+         type string;\r
+      }\r
+      leaf right-network-role {\r
+         type string;\r
+      }\r
+      container vf-module-instance {\r
+         leaf vf-module-id {\r
             type string;\r
          }\r
-         leaf untrusted-network-role {\r
-            description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
+         leaf vf-module-name {\r
             type string;\r
          }\r
-         container security-zone-input-parameters {\r
-            uses param;\r
-         }\r
       }\r
    }\r
-   grouping security-zone-topology {\r
-      container security-zone-topology {\r
-         uses allotted-resource-identifiers;\r
-         uses onap-model-information;\r
-         uses security-zone-assignments;\r
-         container security-zone-parameters {\r
-            uses param;\r
-         }\r
+   grouping forwarding-path-level-oper-status { \r
+      container forwarding-path-level-oper-status { \r
+         uses oper-status-data; \r
+      } \r
+   }\r
+   grouping configuration-info {\r
+      leaf configuration-id {\r
+         type string;\r
+      }\r
+      leaf configuration-type {\r
+         description "Not an enum, but expected values are port-mirror-configuration, , vlan-network-receptor";\r
+         type string;\r
+      }\r
+      leaf configuration-sub-type {\r
+         description "Not an enum, but expected values are vprobe and pprobe";\r
+         type string;\r
+      }\r
+      leaf configuration-topology-link {\r
+         description "Pointer to the configurations topology";\r
+         type string;\r
       }\r
    }\r
-   grouping security-zone-assignments {\r
-      container security-zone-assignments {\r
-         leaf trusted-network-role {\r
-            description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
+   grouping vnfc-instance-group {\r
+      list vnfc-instance-group {\r
+         key "instance-group-role nfc-naming-code configuration-id";\r
+         leaf instance-group-role {\r
+            description "i.e.TSBC_VNFC_group";\r
             type string;\r
+            mandatory true;\r
          }\r
-         leaf security-zone-name-trusted {\r
+         leaf nfc-naming-code {\r
+            description "Set to nfc-naming-code from A&AI";\r
             type string;\r
+            mandatory true;\r
          }\r
-         leaf untrusted-network-role {\r
-            description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
+         leaf configuration-id {\r
             type string;\r
+            mandatory true;\r
          }\r
-         leaf security-zone-name-untrusted {\r
+         leaf group-type {\r
+            description " port-mirror-source or  port-mirror-dest";\r
             type string;\r
          }\r
-         leaf security-zone-service-instance-id {\r
+         uses vnfc-objects;\r
+      }\r
+   }\r
+   grouping vnfc-objects {\r
+      container vnfc-objects {\r
+         list vnfc-object {\r
+            key "vnfc-key";\r
+            leaf vnfc-key {\r
+               type string;\r
+            }\r
+            leaf vnfc-name {\r
+               description "Vnfc name as key in A&AI";\r
+               type string;\r
+            }\r
+            leaf vm-type {\r
+               type string;\r
+            }\r
+            leaf vnf-id {\r
+               type string;\r
+            }\r
+            leaf vserver-name {\r
+               type string;\r
+            }\r
+            leaf vserver-id {\r
+               type string;\r
+            }\r
+            container vnics {\r
+               list vnic {\r
+                  key "vnic-port-name";\r
+                  leaf vnic-port-name {\r
+                     type string;\r
+                  }\r
+                  leaf vnic-port-id {\r
+                     type string;\r
+                  }\r
+                  container capacity {\r
+                     leaf vnic-capacity {\r
+                        type uint32;\r
+                     }\r
+                     leaf used-capacity {\r
+                        description "Updated for destination port when source port is mapped/unmapped.";\r
+                        type uint32;\r
+                     }\r
+                  }\r
+                  container vnic-ip-addresses {\r
+                     uses ip-addresses;\r
+                  }\r
+               }\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping vnfcs {\r
+      container vnfcs {\r
+         list vnfc {\r
+            key "vnfc-name";\r
+            leaf vnfc-name {\r
+               description "Vnfc name as key in A&AI";\r
+               type string;\r
+            }\r
+            leaf vserver-name {\r
+               type string;\r
+            }\r
+            leaf vserver-id {\r
+               type string;\r
+            }\r
+            uses vnics;\r
+         }\r
+      }\r
+   }\r
+   grouping vnics {\r
+      container vnics {\r
+         list vnic {\r
+            key "vnic-port-name";\r
+            leaf vnic-port-name {\r
+               type string;\r
+            }\r
+            leaf vnic-port-id {\r
+               type string;\r
+            }\r
+            uses sub-interfaces;\r
+         }\r
+      }\r
+   }\r
+   grouping sub-interfaces {\r
+      container sub-interfaces {\r
+         list sub-interface {\r
+            key "sub-interface-port-name";\r
+            leaf sub-interface-port-name {\r
+               type string;\r
+            }\r
+            leaf sub-interface-port-id {\r
+               type string;\r
+            }\r
+            container sub-interface-ip-addresses {\r
+               uses ip-addresses;\r
+            }\r
+            uses vlan-tags;\r
+            container sub-interface-network {\r
+               leaf network-name {\r
+                  type string;\r
+               }\r
+               leaf network-id {\r
+                  type string;\r
+               }\r
+            }\r
+            leaf sub-interface-status {\r
+               description "NULL, unassigned, assigned";\r
+               type string;\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping vlan-tags {\r
+      container vlan-tags {\r
+         leaf vlan-interface {\r
+            description "A&AI Key";\r
+            type string;\r
+         }\r
+         leaf upper-tag-id {\r
+            type uint32;\r
+         }\r
+         leaf lower-tag-id {\r
+            type uint32;\r
+         }\r
+      }\r
+   }\r
+   grouping vlan-vnfc-instance-groups {\r
+      container vlan-vnfc-instance-groups {\r
+         list vlan-vnfc-instance-group {\r
+            key "instance-group-id";\r
+            leaf instance-group-id {\r
+               description "A&AI ID";\r
+               type string;\r
+               mandatory true;\r
+            }\r
+            leaf instance-group-function {\r
+               type string;\r
+            }\r
+            leaf vnf-id {\r
+               type string;\r
+            }\r
+            container vnfcs {\r
+               list vnfc {\r
+                  key "vnfc-name";\r
+                  leaf vnfc-name {\r
+                     type string;\r
+                  }\r
+                  uses vnic-groups;\r
+               }\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping vnic-groups {\r
+      container vnic-groups {\r
+         list vnic-group {\r
+            key "vnic-interface-role";\r
+            leaf vnic-interface-role {\r
+               description "Same as network-role of network where vnic is connected";\r
+               type string;\r
+               mandatory true;\r
+            }\r
+            leaf network-instance-group-function {\r
+               description "network-instance-Group-function for network collection where vnics with vnic-interface-role will connect";\r
+               type string;\r
+            } \r
+            leaf vlan-assignment-policy-name {\r
+               description "Policy name in ASDC model & policy definition in Policy Engine";\r
+               type string;\r
+            }\r
+            leaf vlan-tag-index-next {\r
+               description "Next tag to be assigned";\r
+               type uint32;\r
+            }\r
+            container vlan-common-ip-addresses {\r
+               uses ip-addresses;\r
+            }\r
+            container vlan-vnics {\r
+               list vlan-vnic {\r
+                  key "vnic-port-id";\r
+                  leaf vnic-port-id {\r
+                     type string;\r
+                     mandatory true;\r
+                  }\r
+                  container vnic-sub-interfaces {\r
+                     uses sub-interface-network-data;\r
+                  }\r
+               }\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping vnf-network-collection {\r
+      list vnf-network-collection {\r
+         key "network-instance-group-function";\r
+         leaf network-instance-group-function {\r
+            description "Network Instance-Group function in A&AI";\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         leaf network-instance-group-id {\r
+            description "Network Instance-Group id in A&AI";\r
+            type string;\r
+         }\r
+         leaf network-collection-service-instance-id {\r
+            description "Service-instance-id of service that created the network collection";\r
+            type string;\r
+         }\r
+         leaf network-collection-customization-uuid {\r
+            description "network-collection-customization-uuid stored in Network IsntanceGroup.customization-uuid in A&AI";\r
+            type string;\r
+         }\r
+         container vnf-floating-ip {\r
+            uses ip-addresses;\r
+         }\r
+      }\r
+   }\r
+   grouping vnf-sub-interface-group {\r
+      list vnf-sub-interface-group {\r
+         key "vnfc-instance-group-function network-instance-group-function parent-port-role";\r
+         leaf vnfc-instance-group-function {\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         leaf network-instance-group-function {\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         leaf parent-port-role {\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         uses vnfcs;\r
+         container customer-bonding-requests {\r
+            list customer-bonding-request {\r
+               key "configuration-id";\r
+               leaf configuration-id {\r
+                  description "e.g. vlan network receptor configuration id";\r
+                  type string;\r
+               }\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping sub-interface-network-data {\r
+      list sub-interface-network-data {\r
+         key "network-id";\r
+         leaf network-id {\r
+            description "Subinterface network id (UUID in A&AI)";\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         leaf network-name {\r
+            description "Subinterface network name";\r
+            type uint32;\r
+         }\r
+         leaf vlan-tag-id {\r
+            description "Vlan tag assigned to subinterface port";\r
+            type uint32;\r
+         }\r
+         leaf network-role {\r
+            description "e.g. untrusted ";\r
+            type string;\r
+         }\r
+         leaf network-role-tag {\r
+            description "Assuming HEAT template network role tag parameter - not used";\r
+            type string;\r
+         }\r
+         container network-information-items {\r
+            list network-information-item {\r
+               key "ip-version";\r
+               leaf ip-version {\r
+                  description "Use ipv4 or ipv6";\r
+                  type string;\r
+               }\r
+               leaf use-dhcp {\r
+                  description "Indicator to use DHCP on this network for this VM - set to N for Vlan tagging";\r
+                  type enumeration {\r
+                     enum "Y";\r
+                     enum "N";\r
+                  }\r
+               }\r
+               leaf ip-count {\r
+                  description "The number of ip addresses to be assigned per vm for this network role";\r
+                  type uint8;\r
+               }\r
+               container network-ips {\r
+                  leaf-list network-ip {\r
+                     description "List of assigned ip addresses of type ip-version on a network.";\r
+                     type inet:ip-address;\r
+                     ordered-by user;\r
+                  }\r
+               }\r
+            }\r
+         }\r
+         container floating-ips {\r
+            leaf-list floating-ip-v4 {\r
+               description "Floating ipv4 for VMs of a given type on this network";\r
+               type inet:ip-address;\r
+               ordered-by user;\r
+            }\r
+            leaf-list floating-ip-v6 {\r
+               description "Floating ipv6 for VMs of a given type on this network";\r
+               type inet:ipv6-address;\r
+               ordered-by user;\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping vnf-cloud-param {\r
+      leaf service-instance-id {\r
+         type string;\r
+      }\r
+      leaf service-instance-name {\r
+         type string;\r
+      }\r
+      list vnf {\r
+         key "vnf-id";\r
+         leaf vnf-id {\r
+            type string;\r
+         }\r
+         leaf vnf-name {\r
+            type string;\r
+         }\r
+         uses param;\r
+         list vf-module {\r
+            key "vf-module-id";\r
+            leaf vf-module-id {\r
+               type string;\r
+            }\r
+            uses param;\r
+         }\r
+      }\r
+   }\r
+   grouping vnf-get-resource-request-input-data {\r
+      list vnf {\r
+         key "vnf-id";\r
+         leaf vnf-id {\r
+            type string;\r
+         }\r
+         list vf-module {\r
+            key "vf-module-id";\r
+            leaf vf-module-id {\r
+               type string;\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping pnf-information {\r
+      container pnf-information {\r
+         leaf pnf-name {\r
+            description "Key for A&AI query";\r
+            type string;\r
+         }\r
+         leaf pnf-type {\r
+            type string;\r
+         }\r
+         uses onap-model-information;\r
+      }\r
+   }\r
+   grouping contrail-route-operation-information {\r
+      uses sdnc-request-header;\r
+      uses request-information;\r
+      uses service-information;\r
+      uses allotted-resource-information;\r
+      uses contrail-route-request-input;\r
+   }\r
+   grouping contrail-route-request-input {\r
+      container contrail-route-request-input {\r
+         container source-network {\r
+            uses network-info;\r
+         }\r
+         container dest-network {\r
+            uses network-info;\r
+         }\r
+         container contrail-applied-service-info {\r
+            leaf service-instance-id {\r
+               description "The service-instance-id of the service in which the resource(s) providing the applied-service are. For vIPR, this is the service-instance-id of the vIPR-ATM service in which the vIPR-ATM VNF Contrail service is the applied service. MSO will populate with the input data.";\r
+               type string;\r
+            }\r
+            leaf contrail-fqdn {\r
+               description "For future use by MSO on input; MSO not expected to populate in 1707. If MSO can identify the contrail-fqdn of the Contrail applied service for this contrail-route, then it would be specified here on input. Otherwise, SDN-C will look it up by the vIPR-ATM VNF in the service-instance-id of the contrail-applied-service-info grouing.";\r
+               type string;\r
+            }\r
+         }\r
+         container contrail-route-input-parameters {\r
+            uses param;\r
+         }\r
+      }\r
+   }\r
+   grouping network-info {\r
+      leaf network-id {\r
+         type string;\r
+      }\r
+      leaf network-role {\r
+         type string;\r
+      }\r
+   }\r
+   grouping contrail-route-topology {\r
+      container contrail-route-topology {\r
+         uses allotted-resource-identifiers;\r
+         uses onap-model-information;\r
+         uses contrail-route-assignments;\r
+         container contrail-route-parameters {\r
+            uses param;\r
+         }\r
+      }\r
+   }\r
+   grouping contrail-route-assignments {\r
+      container contrail-route-assignments {\r
+         leaf fq-name {\r
+            description "The Contrail fq-name of the network policy";\r
+            type string;\r
+         }\r
+         leaf contrail-id {\r
+            description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)";\r
+            type string;\r
+         }\r
+         container source-network {\r
+            uses network-info;\r
+         }\r
+         container dest-network {\r
+            uses network-info;\r
+         }\r
+         container contrail-applied-service {\r
+            leaf service-instance-id {\r
+               description "The service-instance-id of the vnf from which the contrail applied service is coming";\r
+               type string;\r
+            }\r
+            leaf vnf-id {\r
+               description "The vnf representing the contrail applied service";\r
+               type string;\r
+            }\r
+            leaf contrail-fqdn {\r
+               description "This is the fq-name of the Contrail service instance through which the route is passing.";\r
+               type string;\r
+            }\r
+         }\r
+         leaf vlan-tag {\r
+            description "Contrail-assigned vlan-tag to the vipr vm interface for this route.";\r
+            type string;\r
+         }\r
+      }\r
+   }\r
+   grouping security-zone-operation-information {\r
+      uses sdnc-request-header;\r
+      uses request-information;\r
+      uses service-information;\r
+      uses allotted-resource-information;\r
+      uses security-zone-request-input;\r
+   }\r
+   grouping security-zone-request-input {\r
+      container security-zone-request-input {\r
+         leaf vlan-tag {\r
+            type string;\r
+         }\r
+         leaf trusted-network-role {\r
+            description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
+            type string;\r
+         }\r
+         leaf untrusted-network-role {\r
+            description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
+            type string;\r
+         }\r
+         container security-zone-input-parameters {\r
+            uses param;\r
+         }\r
+      }\r
+   }\r
+   grouping security-zone-topology {\r
+      container security-zone-topology {\r
+         uses allotted-resource-identifiers;\r
+         uses onap-model-information;\r
+         uses security-zone-assignments;\r
+         container security-zone-parameters {\r
+            uses param;\r
+         }\r
+      }\r
+   }\r
+   grouping security-zone-assignments {\r
+      container security-zone-assignments {\r
+         leaf trusted-network-role {\r
+            description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
+            type string;\r
+         }\r
+         leaf security-zone-name-trusted {\r
+            type string;\r
+         }\r
+         leaf untrusted-network-role {\r
+            description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
+            type string;\r
+         }\r
+         leaf security-zone-name-untrusted {\r
+            type string;\r
+         }\r
+         leaf security-zone-service-instance-id {\r
             description "Will be the same as the parent-service-instance-id";\r
             type string;\r
          }\r
@@ -798,6 +1541,235 @@ module GENERIC-RESOURCE-API {
          }\r
       }\r
    }\r
+   grouping port-mirror-topology-operation-information {\r
+      uses sdnc-request-header;\r
+      uses request-information;\r
+      uses service-information;\r
+      uses configuration-information;\r
+      uses port-mirror-configuration-request-input;\r
+   }\r
+   grouping port-mirror-configuration-request-input {\r
+      container port-mirror-configuration-request-input {\r
+         container source-port {\r
+            uses port-info;\r
+            leaf source-port-id {\r
+               description "needed for srv-action=disable/enable";\r
+               type string;\r
+            }\r
+         }\r
+         container dest-port {\r
+            uses port-info;\r
+         }\r
+         uses region-identifier;\r
+         container port-mirror-configuration-input-parameters {\r
+            uses param;\r
+         }\r
+      }\r
+   }\r
+   grouping port-info {\r
+      leaf service-instance-id {\r
+         description "May not be need.";\r
+         type string;\r
+      }\r
+      uses pnf-information;\r
+      uses vnf-information;\r
+   }\r
+   grouping port-mirror-configuration-topology {\r
+      container port-mirror-configuration-topology {\r
+         uses configuration-identifiers;\r
+         uses onap-model-information;\r
+         uses port-mirror-configuration-assignments;\r
+         container port-mirror-configuration-parameters {\r
+            uses param;\r
+         }\r
+      }\r
+   }\r
+   grouping port-mirror-configuration-assignments {\r
+      container port-mirror-configuration-assignments {\r
+         container contrail-vmi-params {\r
+            uses param;\r
+         }\r
+         leaf vnics-group-id {\r
+            type string;\r
+         }\r
+         leaf owning-entity {\r
+            type string;\r
+         }\r
+         leaf tenant-context {\r
+            description "From tenant object in A&AI";\r
+            type string;\r
+         }\r
+         leaf tenant {\r
+            description "Tenant name from A&AI for source VNF";\r
+            type string;\r
+         }\r
+         leaf tenant-id {\r
+            description "tenant-id from A&AI for source VNF";\r
+            type string;\r
+         }\r
+         leaf dest-tenant {\r
+            description "Tenant name from A&AI for destination VNF";\r
+            type string;\r
+         }\r
+         leaf dest-tenant-id {\r
+            description "tenant-id from A&AI for destination VNF";\r
+            type string;\r
+         }\r
+         leaf cloud-region-id {\r
+            type string;\r
+         }\r
+         leaf cloud-owner {\r
+            type string;\r
+         }\r
+         leaf dest-network-fqdn {\r
+            type string;\r
+         }\r
+         leaf source-network-fqdn {\r
+            type string;\r
+         }\r
+         leaf source-capacity {\r
+            description "Source port pps (packets per second) rating from tosca model";\r
+            type uint32;\r
+         }\r
+         leaf source-vnf-id {\r
+            type string;\r
+         }\r
+         leaf dest-vnf-id {\r
+            description "For vProbe";\r
+            type string;\r
+         }\r
+         leaf dest-pnf-name {\r
+            description "For pProbe";\r
+            type string;\r
+         }\r
+         leaf dest-p-interface {\r
+            description "For pProbe; from policy manager";\r
+            type string;\r
+         }\r
+         leaf dest-pnf-port-policy-name {\r
+            description "For pProbe; from tosca model";\r
+            type string;\r
+         }\r
+         leaf probe-type {\r
+            description "vprobe or pprobe; derived from configuration-information.configuration-sub-type";\r
+            type string;\r
+         }\r
+         leaf route-allotted-resource-id {\r
+            description "For vProbe";\r
+            type string;\r
+         }\r
+         container source-vnfc-instance-group-id {\r
+            leaf service-instance-id {\r
+               type string;\r
+            }\r
+            leaf nfc-naming-code {\r
+               type string;\r
+            }\r
+            leaf instance-group-role {\r
+               type string;\r
+            }\r
+            leaf configuration-id {\r
+               type string;\r
+            }\r
+         }\r
+         container dest-vnfc-instance-group-id {\r
+            leaf service-instance-id {\r
+               type string;\r
+            }\r
+            leaf nfc-naming-code {\r
+               type string;\r
+            }\r
+            leaf instance-group-role {\r
+               type string;\r
+            }\r
+            leaf configuration-id {\r
+               type string;\r
+            }\r
+         }\r
+         container source-to-dest-maps {\r
+            list source-to-dest-map {\r
+               key "source-port-id";\r
+               leaf source-port-id {\r
+                  type string;\r
+                  mandatory true;\r
+               }\r
+               leaf source-port-name {\r
+                  type string;\r
+               }\r
+               leaf source-vserver-id {\r
+                  type string;\r
+               }\r
+               leaf dest-vserver-id {\r
+                  type string;\r
+               }\r
+               leaf dest-port-id {\r
+                  type string;\r
+               }\r
+               leaf dest-port-name {\r
+                  type string;\r
+               }\r
+               leaf link-name {\r
+                  type string;\r
+               }\r
+               container dest-ip-addresses {\r
+                  uses ip-addresses;\r
+               }\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping gc-topology-operation-information {\r
+      uses sdnc-request-header;\r
+      uses request-information;\r
+      uses service-information;\r
+      uses configuration-information;\r
+      uses gc-request-input;\r
+   }\r
+   grouping gc-request-input {\r
+      container gc-request-input {\r
+         leaf vnf-id {\r
+            type string;\r
+         }\r
+         container input-parameters {\r
+            uses param;\r
+         }\r
+      }\r
+   }\r
+   grouping vnr-parameters {\r
+      container vnr-parameters {\r
+         leaf vnf-id {\r
+            type string;\r
+         }\r
+         leaf vnf-service-instance-id {\r
+            type string;\r
+         }\r
+         leaf network-collection-service-instance-id {\r
+            description "service instance id that created network-collection";\r
+            type string;\r
+         }\r
+         leaf network-instance-group-id {\r
+            type string;\r
+         }\r
+         leaf network-id {\r
+            type string;\r
+         }\r
+         leaf vnfc-instance-group-function {\r
+            type string;\r
+         }\r
+         leaf network-instance-group-function {\r
+            type string;\r
+         }\r
+         leaf parent-port-role {\r
+            type string;\r
+         }\r
+         leaf upper-tag-id {\r
+            type uint32;\r
+         }\r
+         leaf lower-tag-id {\r
+            type uint32;\r
+         }\r
+      }\r
+   }\r
    grouping tunnelxconn-operation-information {\r
        uses sdnc-request-header;\r
        uses request-information;\r
@@ -880,7 +1852,6 @@ module GENERIC-RESOURCE-API {
               }\r
           }\r
    }\r
-\r
    grouping connection-attachment-operation-information {\r
       uses sdnc-request-header;\r
       uses request-information;\r
@@ -996,6 +1967,95 @@ module GENERIC-RESOURCE-API {
          }\r
       }\r
    }\r
+   grouping configuration-information {\r
+      container configuration-information {\r
+         leaf configuration-id {\r
+            type string;\r
+         }\r
+         leaf configuration-name {\r
+            type string;\r
+         }\r
+         leaf configuration-type {\r
+            description "Not an enum, but expected values are port-mirror-configuration, vlan-network-receptor";\r
+            type string;\r
+         }\r
+         leaf configuration-sub-type {\r
+            description "e.g. vprobe and pprobe when configuration-type=port-mirror-configuration";\r
+            type string;\r
+         }\r
+         uses onap-model-information;\r
+      }\r
+   }\r
+   grouping configuration-identifiers {\r
+      container configuration-identifiers {\r
+         leaf configuration-id {\r
+            type string;\r
+         }\r
+         leaf configuration-name {\r
+            type string;\r
+         }\r
+         leaf configuration-type {\r
+            description "Not an enum, but expected values are port-mirror-configuration.";\r
+            type string;\r
+         }\r
+         leaf configuration-sub-type {\r
+            description " vprobe and pprobe";\r
+            type string;\r
+         }\r
+         leaf parent-service-instance-id {\r
+            description "Service-instance-id of the parent service to which this resource belongs.";\r
+            type string;\r
+         }\r
+      }\r
+   }\r
+   grouping configuration-oper-status {\r
+      container configuration-oper-status {\r
+         uses oper-status-data;\r
+      }\r
+   }\r
+   grouping configuration-status {\r
+      container configuration-status {\r
+         leaf response-code {\r
+            type string;\r
+         }\r
+         leaf response-message {\r
+            type string;\r
+         }\r
+         leaf final-indicator {\r
+            type string;\r
+         }\r
+         leaf request-status {\r
+            type enumeration {\r
+               enum "synccomplete";\r
+               enum "asynccomplete";\r
+               enum "notifycomplete";\r
+            }\r
+         }\r
+         leaf action {\r
+            description "value would one of possible request-actions; match the list in service-data oper-status";\r
+            type string;\r
+         }\r
+         leaf rpc-name {\r
+            type string;\r
+         }\r
+         leaf rpc-action {\r
+            description "this is the svc-action from the incoming request";\r
+            type enumeration {\r
+               enum "assign";\r
+               enum "activate";\r
+               enum "create";\r
+               enum "disable";\r
+               enum "enable";\r
+               enum "delete";\r
+               enum "unassign";\r
+               enum "deactivate";\r
+            }\r
+         }\r
+         leaf response-timestamp {\r
+            type string;\r
+         }\r
+      }\r
+   }\r
    grouping topology-response-common {\r
       leaf svc-request-id {\r
          description "the request id from the request message for which this is the responseKeep as M";\r
@@ -1021,7 +2081,7 @@ module GENERIC-RESOURCE-API {
             type string;\r
          }\r
          leaf svc-action {\r
-            description "Enumerated listThis is the rpcAction";\r
+            description "This is the rpcAction";\r
             type enumeration {\r
                enum "reserve";\r
                enum "assign";\r
@@ -1033,6 +2093,9 @@ module GENERIC-RESOURCE-API {
                enum "deactivate";\r
                enum "unassign";\r
                enum "create";\r
+               enum "disable";\r
+               enum "enable";\r
+               enum "update";\r
             }\r
          }\r
          leaf svc-notification-url {\r
@@ -1083,6 +2146,18 @@ module GENERIC-RESOURCE-API {
                enum "ActivateSiteInstance";\r
                enum "DeactivateSiteInstance";\r
                enum "DeleteSiteInstance";\r
+               enum "CreatePortMirrorConfigurationInstance";\r
+               enum "DeletePortMirrorConfigurationInstance";\r
+               enum "ChangePortMirrorConfigurationInstance";\r
+               enum "CreateGenericConfigurationInstance";\r
+               enum "DeleteGenericConfigurationInstance";\r
+               enum "PreloadVfModuleRequest";\r
+               enum "DeletePreloadVfModuleRequest";\r
+               enum "PreloadNetworkRequest";\r
+               enum "DeletePreloadNetworkRequest";\r
+               enum "CreateForwardingPathInstance";\r
+               enum "DeleteForwardingPathInstance";\r
+               enum "UpdateForwardingPathInstance";\r
             }\r
          }\r
          leaf source {\r
@@ -1167,6 +2242,43 @@ module GENERIC-RESOURCE-API {
          leaf value {\r
             type string;\r
          }\r
+         container resource-resolution-data {\r
+            list resource-key {\r
+               key "name";\r
+               leaf name {\r
+                  type string;\r
+               }\r
+               leaf value {\r
+                  type string;\r
+               }\r
+            }\r
+            leaf status {\r
+               description "SUCCESS, FAILED, or PENDING - RA returned data as capability";\r
+               type string;\r
+            }\r
+            leaf capability-name {\r
+               description "Resource assignment resolution Capability name";\r
+               type string;\r
+            }\r
+         }\r
+      }\r
+   }\r
+   grouping ip-addresses {\r
+      container ip-addresses {\r
+         leaf ipv4-address {\r
+            type inet:ip-address;\r
+         }\r
+         leaf ipv6-address {\r
+            type inet:ip-address;\r
+         }\r
+         leaf vipv4-address {\r
+            description "Virtual v4";\r
+            type inet:ip-address;\r
+         }\r
+         leaf vipv6-address {\r
+            description "Virtual v6";\r
+            type inet:ip-address;\r
+         }\r
       }\r
    }\r
    grouping instance-reference {\r
@@ -1199,6 +2311,7 @@ module GENERIC-RESOURCE-API {
             enum "unassign";\r
             enum "deactivate";\r
             enum "create";\r
+            enum "changeassign";\r
          }\r
       }\r
       leaf last-action {\r
@@ -1237,6 +2350,18 @@ module GENERIC-RESOURCE-API {
             enum "ActivateSiteInstance";\r
             enum "DeactivateSiteInstance";\r
             enum "DeleteSiteInstance";\r
+            enum "CreatePortMirrorConfigurationInstance";\r
+            enum "DeletePortMirrorConfigurationInstance";\r
+            enum "ChangePortMirrorConfigurationInstance";\r
+            enum "CreateGenericConfigurationInstance";\r
+            enum "DeleteGenericConfigurationInstance";\r
+            enum "PreloadVfModuleRequest";\r
+            enum "DeletePreloadVfModuleRequest";\r
+            enum "PreloadNetworkRequest";\r
+            enum "DeletePreloadNetworkRequest";\r
+            enum "CreateForwardingPathInstance";\r
+            enum "DeleteForwardingPathInstance";\r
+            enum "UpdateForwardingPathInstance";\r
          }\r
       }\r
       leaf last-svc-request-id {\r
@@ -1244,7 +2369,6 @@ module GENERIC-RESOURCE-API {
          type string;\r
       }\r
       leaf last-order-status {\r
-         description "fieldused by generic-resource-api";\r
          type enumeration {\r
             enum "Active";\r
             enum "PendingAssignment";\r
@@ -1278,18 +2402,33 @@ module GENERIC-RESOURCE-API {
          uses instance-reference;\r
       }\r
    }\r
-   grouping vf-module-response-information {\r
-      container vf-module-response-information {\r
+   grouping vf-module-response-information {\r
+      container vf-module-response-information {\r
+         uses instance-reference;\r
+      }\r
+   }\r
+   grouping contrail-route-response-information {\r
+      container contrail-route-response-information {\r
+         uses instance-reference;\r
+      }\r
+   }\r
+   grouping security-zone-response-information {\r
+      container security-zone-response-information {\r
+         uses instance-reference;\r
+      }\r
+   }\r
+   grouping getpathsegment-response-information {\r
+      container getpathsegment-response-information {\r
          uses instance-reference;\r
       }\r
    }\r
-   grouping contrail-route-response-information {\r
-      container contrail-route-response-information {\r
+   grouping port-mirror-response-information {\r
+      container port-mirror-response-information {\r
          uses instance-reference;\r
       }\r
    }\r
-   grouping security-zone-response-information {\r
-      container security-zone-response-information {\r
+   grouping gc-response-information {\r
+      container gc-response-information {\r
          uses instance-reference;\r
       }\r
    }\r
@@ -1309,266 +2448,46 @@ module GENERIC-RESOURCE-API {
       }\r
    }\r
    grouping preload-model-information {\r
-      list vnf-preload-list {\r
-         key "vnf-name vnf-type";\r
-         leaf vnf-name {\r
+      list preload-list {\r
+         key "preload-id preload-type";\r
+         leaf preload-id {\r
             description "vf-module-name or network name";\r
             type string;\r
             mandatory true;\r
          }\r
-         leaf vnf-type {\r
-            description "vf-module-type or network type";\r
+         leaf preload-type {\r
+            description "network or vf-module";\r
             type string;\r
             mandatory true;\r
          }\r
          uses preload-data;\r
       }\r
    }\r
-   grouping vnf-topology-response-body {\r
-      leaf svc-request-id {\r
-         type string;\r
-      }\r
-      leaf response-code {\r
-         type string;\r
-      }\r
-      leaf response-message {\r
-         type string;\r
-      }\r
-      leaf ack-final-indicator {\r
-         type string;\r
-      }\r
-   }\r
    grouping preload-data {\r
       container preload-data {\r
-         uses vnf-topology-information;\r
-         uses network-topology-information;\r
-         uses oper-status;\r
-      }\r
-   }\r
-   grouping vnf-topology-information {\r
-      container vnf-topology-information {\r
-         uses vnf-topology-identifier;\r
-         uses vnf-assignments;\r
-         uses vnf-parameters;\r
-      }\r
-   }\r
-   grouping vnf-topology-identifier {\r
-      container vnf-topology-identifier {\r
-         leaf service-type {\r
-            type string;\r
-         }\r
-         leaf service-id {\r
-            type string;\r
-         }\r
-         leaf vnf-name {\r
-            description "vf-module-name";\r
-            type string;\r
-         }\r
-         leaf vnf-type {\r
-            description "vf-module-type";\r
-            type string;\r
-         }\r
-         leaf generic-vnf-name {\r
-            type string;\r
-         }\r
-         leaf generic-vnf-type {\r
-            type string;\r
-         }\r
-         leaf generic-vnf-id {\r
-            type string;\r
-         }\r
-      }\r
-   }\r
-   grouping vnf-assignments {\r
-      container vnf-assignments {\r
-         leaf vnf-status {\r
-            description "Orchestration Status from AAI - to be set by SDNC";\r
-            type string;\r
-         }\r
-         list availability-zones {\r
-            key "availability-zone";\r
-            leaf availability-zone {\r
-               description "Openstack availability zone name or UUID";\r
-               type string;\r
-            }\r
-         }\r
-         list vnf-networks {\r
-            key "network-role";\r
-            uses vnf-network;\r
-            uses sriov-vlan-filter-list;\r
-         }\r
-         uses vm-topology;\r
-      }\r
-   }\r
-   grouping vm-topology {\r
-      list vnf-vms {\r
-         key "vm-type";\r
-         leaf vm-type {\r
-            type string;\r
-            mandatory true;\r
-         }\r
-         leaf vm-count {\r
-            type uint8;\r
-         }\r
-         list vm-names {\r
-            key "vm-name";\r
-            leaf vm-name {\r
-               type string;\r
-            }\r
-         }\r
-         list vm-networks {\r
-            key "network-role";\r
-            uses vm-network;\r
-         }\r
-      }\r
-   }\r
-   grouping vnf-network {\r
-      leaf network-role {\r
-         description "A Network Role to which a VNF must connect";\r
-         type string;\r
-         mandatory true;\r
-      }\r
-      leaf network-name {\r
-         description "Unique Neutron UUID of an instance of the network role ";\r
-         type string;\r
-      }\r
-      leaf neutron-id {\r
-         description "Unique Neutron UUID of an instance of the network role ";\r
-         type string;\r
-      }\r
-      leaf network-id {\r
-         description "Unique Neutron UUID of an instance of the network role ";\r
-         type string;\r
-      }\r
-      leaf subnet-id {\r
-         description "ipv4 subnet UUID to be passed into the HEAT template";\r
-         type string;\r
-      }\r
-      leaf subnet-name {\r
-         description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";\r
-         type string;\r
-      }\r
-      leaf contrail-network-fqdn {\r
-         description "contrail network policy object";\r
-         type string;\r
-      }\r
-      leaf ipv6-subnet-id {\r
-         description "ipv6 subnet UUID to be passed into the HEAT template";\r
-         type string;\r
-      }\r
-      leaf ipv6-subnet-name {\r
-         description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";\r
-         type string;\r
-      }\r
-   }\r
-   grouping sriov-vlan-filter-list {\r
-      list sriov-vlan-filter-list {\r
-         key "sriov-vlan-filter";\r
-         leaf sriov-vlan-filter {\r
-            type string;\r
-         }\r
-      }\r
-   }\r
-   grouping vm-network {\r
-      leaf network-role {\r
-         description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";\r
-         type string;\r
-      }\r
-      leaf use-dhcp {\r
-         description "Indicator to use DHCP on this network for this VM";\r
-         type enumeration {\r
-            enum "Y";\r
-            enum "N";\r
-         }\r
-      }\r
-      leaf ip-count {\r
-         description "The number of ip addresses to be assigned per vm for this network role";\r
-         type uint8;\r
-      }\r
-      list network-ips {\r
-         key "ip-address";\r
-         leaf ip-address {\r
-            description "List of assigned ipv4 addresses on a network";\r
-            type inet:ip-address;\r
-         }\r
-      }\r
-      list network-ips-v6 {\r
-         key "ip-address-ipv6";\r
-         leaf ip-address-ipv6 {\r
-            description "List of assigned ipv6 addresses on a network";\r
-            type inet:ipv6-address;\r
-         }\r
-      }\r
-      list network-macs {\r
-         key "mac-address";\r
-         leaf mac-address {\r
-            description "List of network assignments for this VM (one per network)";\r
-            type string;\r
-         }\r
-      }\r
-      leaf floating-ip {\r
-         description "Floating ipv4 for VMs of a given type on this network";\r
-         type inet:ip-address;\r
-      }\r
-      leaf floating-ip-v6 {\r
-         description "Floating ipv6 for VMs of a given type on this network";\r
-         type inet:ipv6-address;\r
-      }\r
-      list interface-route-prefixes {\r
-         key "interface-route-prefix-cidr";\r
-         leaf interface-route-prefix-cidr {\r
-            description "route prefixes (CIDRs) in ip/cidr format to be provided to MSO in vnf-topology as a list of static routes";\r
-            type string;\r
-            mandatory true;\r
-         }\r
-         leaf interface-route-prefix {\r
-            description "route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes";\r
-            type inet:ip-address;\r
-         }\r
+         uses preload-vf-module-topology-information;\r
+         uses preload-network-topology-information;\r
+         uses preload-oper-status;\r
       }\r
    }\r
-   grouping vnf-parameters {\r
-      list vnf-parameters {\r
-         key "vnf-parameter-name";\r
-         leaf vnf-parameter-name {\r
-            description "The name of an arbitrary instance-specific vnf-parameters";\r
-            type string;\r
-         }\r
-         leaf vnf-parameter-value {\r
-            description "The value of an arbitrary instance-specific vnf-parameters ";\r
-            type string;\r
-         }\r
+   grouping preload-vf-module-topology-information {\r
+      container preload-vf-module-topology-information {\r
+         uses vnf-topology-identifier-structure;\r
+         uses vnf-resource-assignments;\r
+         uses vf-module-topology;\r
       }\r
    }\r
-   grouping network-topology-information {\r
-      container network-topology-information {\r
-         uses network-topology-identifier;\r
+   grouping preload-network-topology-information {\r
+      container preload-network-topology-information {\r
+         uses network-topology-identifier-structure;\r
          uses subnets;\r
          uses vpn-bindings;\r
          uses network-policy;\r
          uses route-table-reference;\r
+         uses host-routes;\r
          uses provider-network-information;\r
       }\r
    }\r
-   grouping network-topology-identifier {\r
-      container network-topology-identifier {\r
-         leaf service-type {\r
-            type string;\r
-         }\r
-         leaf network-name {\r
-            type string;\r
-         }\r
-         leaf network-role {\r
-            type string;\r
-         }\r
-         leaf network-type {\r
-            type string;\r
-         }\r
-         leaf network-technology {\r
-            type string;\r
-         }\r
-      }\r
-   }\r
    grouping subnets {\r
       list subnets {\r
          key "start-address";\r
@@ -1596,9 +2515,22 @@ module GENERIC-RESOURCE-API {
          leaf dhcp-end-address {\r
             type string;\r
          }\r
+         leaf addr-from-start {\r
+            description "Default is N";\r
+            type enumeration {\r
+               enum "Y";\r
+               enum "N";\r
+            }\r
+         }\r
          leaf subnet-name {\r
             type string;\r
          }\r
+         leaf subnet-role {\r
+            type string;\r
+         }\r
+         leaf subnet-sequence {\r
+            type uint8;\r
+         }\r
       }\r
    }\r
    grouping vpn-bindings {\r
@@ -1607,9 +2539,19 @@ module GENERIC-RESOURCE-API {
          leaf vpn-binding-id {\r
             type string;\r
          }\r
+         leaf vpn-name {\r
+            type string;\r
+         }\r
          leaf global-route-target {\r
             type string;\r
          }\r
+         leaf route-target-role {\r
+            type string;\r
+         }\r
+         leaf aic-zone {\r
+            description "AIC Zone the route target associated with";\r
+            type string;\r
+         }\r
       }\r
    }\r
    grouping network-policy {\r
@@ -1645,12 +2587,24 @@ module GENERIC-RESOURCE-API {
       leaf is-shared-network {\r
          type boolean;\r
       }\r
-      leaf is-external-network {\r
+      leaf is-external-network { \r
          type boolean;\r
       }\r
    }\r
-   grouping oper-status {\r
-      container oper-status {\r
+   grouping host-routes {\r
+      list host-routes {\r
+         key "route-prefix";\r
+         leaf route-prefix {\r
+            type string;\r
+         }\r
+         leaf next-hop {\r
+            description "Could be ip-address or hostname or service-instance";\r
+            type string;\r
+         }\r
+      }\r
+   }\r
+   grouping preload-oper-status {\r
+      container preload-oper-status {\r
          leaf order-status {\r
             type enumeration {\r
                enum "Active";\r
@@ -1662,23 +2616,11 @@ module GENERIC-RESOURCE-API {
             }\r
          }\r
          leaf last-action {\r
-            description "this is preload request actions";\r
             type enumeration {\r
-               enum "VNFActivateRequest";\r
-               enum "ChangeVNFActivateRequest";\r
-               enum "VnfInstanceActivateRequest";\r
-               enum "ChangeVnfInstanceActivateRequest";\r
-               enum "VfModuleActivateRequest";\r
-               enum "ChangeVfModuleActivateRequest";\r
-               enum "DisconnectVNFRequest";\r
-               enum "DisconnectVnfInstanceRequest";\r
-               enum "DisconnectVfModuleRequest";\r
-               enum "PreloadVNFRequest";\r
-               enum "DeletePreloadVNFRequest";\r
-               enum "PreloadVnfInstanceRequest";\r
-               enum "DeletePreloadVnfInstanceRequest";\r
                enum "PreloadVfModuleRequest";\r
                enum "DeletePreloadVfModuleRequest";\r
+               enum "PreloadNetworkRequest";\r
+               enum "DeletePreloadNetworkRequest";\r
             }\r
          }\r
          leaf last-svc-request-id {\r
@@ -1708,6 +2650,34 @@ module GENERIC-RESOURCE-API {
          }\r
       }\r
    }\r
+   grouping preload-topology-response-body {\r
+      leaf svc-request-id {\r
+         type string;\r
+      }\r
+      leaf response-code {\r
+         type string;\r
+      }\r
+      leaf response-message {\r
+         type string;\r
+      }\r
+      leaf ack-final-indicator {\r
+         type string;\r
+      }\r
+   }\r
+   rpc generic-configuration-notification {\r
+      input {\r
+         uses sdnc-request-header;\r
+         uses request-information;\r
+         uses service-information;\r
+         uses configuration-information;\r
+         uses topology-response-common;\r
+         leaf configuration-topology-link {\r
+            description "Returns URL to generic-configuration-topology ";\r
+            type string;\r
+         }\r
+         uses vnr-parameters;\r
+      }\r
+   }\r
    container services {\r
       uses service-model-infrastructure;\r
    }\r
@@ -1808,6 +2778,39 @@ module GENERIC-RESOURCE-API {
          uses allotted-resource-status;\r
       }\r
    }\r
+   container port-mirror-configurations {\r
+      list port-mirror-configuration {\r
+         key "configuration-id";\r
+         leaf configuration-id {\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         container configuration-data {\r
+            container configuration-operation-information {\r
+               uses port-mirror-topology-operation-information;\r
+            }\r
+            uses port-mirror-configuration-topology;\r
+            uses configuration-oper-status;\r
+         }\r
+         uses configuration-status;\r
+      }\r
+   }\r
+   container generic-configurations {\r
+      list gc-configuration {\r
+         key "configuration-id";\r
+         leaf configuration-id {\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         container configuration-data {\r
+            container configuration-operation-information {\r
+               uses gc-topology-operation-information;\r
+            }\r
+            uses configuration-oper-status;\r
+         }\r
+         uses configuration-status;\r
+      }\r
+   }\r
    rpc service-topology-operation {\r
       input {\r
          uses service-operation-information;\r
@@ -1888,27 +2891,95 @@ module GENERIC-RESOURCE-API {
            uses service-response-information;\r
        }\r
    }\r
-   container preload-vnfs {\r
+   rpc policy-update-notify-operation {\r
+      input {\r
+         leaf policy-name {\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         leaf version-id {\r
+            description "Map JSON versionNo to version-id";\r
+            type string;\r
+            mandatory true;\r
+         }\r
+         leaf update-type {\r
+            type string;\r
+            mandatory true;\r
+         }\r
+      }\r
+      output {\r
+         leaf error-code {\r
+            type string;\r
+         }\r
+         leaf error-msg {\r
+            type string;\r
+         }\r
+      }\r
+   }\r
+   rpc getpathsegment-topology-operation {\r
+      input {\r
+         uses forwarding-path-operation-information;\r
+      }\r
+      output {\r
+         uses topology-response-common;\r
+         uses getpathsegment-response-information;\r
+         uses service-response-information;\r
+      }\r
+   }\r
+   rpc port-mirror-topology-operation {\r
+      input {\r
+         uses port-mirror-topology-operation-information;\r
+      }\r
+      output {\r
+         uses topology-response-common;\r
+         uses port-mirror-response-information;\r
+         uses service-response-information;\r
+      }\r
+   }\r
+   rpc generic-configuration-topology-operation {\r
+      input {\r
+         uses gc-topology-operation-information;\r
+      }\r
+      output {\r
+         uses topology-response-common;\r
+         uses gc-response-information;\r
+         uses service-response-information;\r
+      }\r
+   }\r
+   rpc vnf-get-resource-request {\r
+      input {\r
+         uses sdnc-request-header;\r
+         uses request-information;\r
+         uses service-information;\r
+         uses vnf-get-resource-request-input-data;\r
+      }\r
+      output {\r
+         container vnf-get-resource-response-information {\r
+            uses vnf-cloud-param;\r
+         }\r
+      }\r
+   }\r
+   container preload-information {\r
       uses preload-model-information;\r
    }\r
-   rpc preload-vnf-topology-operation {\r
+   rpc preload-vf-module-topology-operation {\r
       input {\r
          uses sdnc-request-header;\r
          uses request-information;\r
-         uses vnf-topology-information;\r
+         uses preload-vf-module-topology-information;\r
       }\r
       output {\r
-         uses vnf-topology-response-body;\r
+         uses preload-topology-response-body;\r
       }\r
    }\r
    rpc preload-network-topology-operation {\r
       input {\r
          uses sdnc-request-header;\r
          uses request-information;\r
-         uses network-topology-information;\r
+         uses preload-network-topology-information;\r
       }\r
       output {\r
-         uses vnf-topology-response-body;\r
+         uses preload-topology-response-body;\r
       }\r
    }\r
 \r