X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=generic-resource-api%2Fmodel%2Fsrc%2Fmain%2Fyang%2FGENERIC-RESOURCE-API.yang;h=e45447e3aa93a48f76d4b801c41bdfe7b4f02c7a;hb=d20371cb9c1a5f72f6bdf18e9a63709e07197443;hp=d82b63057b1c4c0aa06b42b126569be3b636a622;hpb=d4d2912f5b8c7f12176ff3304ebbb8f30059f402;p=sdnc%2Fnorthbound.git diff --git a/generic-resource-api/model/src/main/yang/GENERIC-RESOURCE-API.yang b/generic-resource-api/model/src/main/yang/GENERIC-RESOURCE-API.yang index d82b6305..e45447e3 100644 --- a/generic-resource-api/model/src/main/yang/GENERIC-RESOURCE-API.yang +++ b/generic-resource-api/model/src/main/yang/GENERIC-RESOURCE-API.yang @@ -4,7 +4,7 @@ module GENERIC-RESOURCE-API { prefix generic-resource-api; - import ietf-inet-types { prefix "inet"; revision-date "2010-09-24"; } + import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; } import ietf-yang-types { prefix yang; } @@ -61,6 +61,12 @@ module GENERIC-RESOURCE-API { container vnf-data { uses vnf-operation-information; uses vnf-topology; + container vnf-network-collections { + uses vnf-network-collection; + } + container vnf-sub-interface-groups { + uses vnf-sub-interface-group; + } container vnf-provided-allotted-resources { leaf-list vnf-provided-ar-id { description "List of allotted resources using capacity from this vnf"; @@ -98,6 +104,29 @@ module GENERIC-RESOURCE-API { uses allotted-resource-info; } } + container provided-configurations { + list provided-configuration { + key "configuration-id"; + uses configuration-info; + } + } + container vnfc-instance-groups { + uses vnfc-instance-group; + } + container network-instance-groups { + uses network-instance-group; + } + container forwarding-paths { + list forwarding-path { + key "forwarding-path-id"; + leaf forwarding-path-id { + description "Generated by SDNC"; + type string; + mandatory true; + } + uses forwarding-path-information; + } + } } } grouping service-status { @@ -134,6 +163,7 @@ module GENERIC-RESOURCE-API { enum "delete"; enum "unassign"; enum "deactivate"; + enum "create"; } } leaf response-timestamp { @@ -225,6 +255,13 @@ module GENERIC-RESOURCE-API { leaf network-type { type string; } + leaf network-technology { + type string; + } + leaf from-preload { + description "Indicates if source is preload data"; + type boolean; + } uses onap-model-information; } } @@ -237,6 +274,10 @@ module GENERIC-RESOURCE-API { container network-input-parameters { uses param; } + leaf network-instance-group-id { + description "When network has instance-group role in service model"; + type string; + } } } grouping network-topology { @@ -262,17 +303,28 @@ module GENERIC-RESOURCE-API { leaf network-type { type string; } + leaf network-instance-group-id { + description "When network is part of network instance-Group-data & instance Group in A&AI"; + type string; + } leaf network-technology { - description "should we keep this?"; type string; } leaf eipam-v4-address-plan { - description "??"; type string; } leaf eipam-v6-address-plan { type string; } + leaf is-trunked { + type boolean; + } + leaf segmentation-id { + type string; + } + container related-networks { + uses related-network; + } } } grouping network-assignments { @@ -292,6 +344,86 @@ module GENERIC-RESOURCE-API { } } } + grouping network-instance-group { + list network-instance-group { + key "network-instance-group-id"; + leaf network-instance-group-id { + description "Also a Key in Network Instance Group in A&AI"; + type string; + mandatory true; + } + leaf network-instance-group-function { + type string; + } + leaf service-instance-id { + type string; + } + uses onap-model-information; + container subnet-assignment-policy { + leaf subnet-use { + description "Current valid values - unique, shared (default)"; + type string; + } + } + container vpn-binding-policy { + leaf vpn-binding { + type string; + } + leaf vpn-name { + type string; + } + leaf vpn-type { + type string; + } + leaf vpn-platform { + type string; + } + leaf global-route-target { + type string; + } + leaf route-target-role { + type string; + } + } + uses aggregate-routes; + uses subnets; + leaf subnet-key-value { + description "key-value provided to EIPAM when creating shared subnet"; + type string; + } + container networks { + list network { + key "network-id"; + leaf network-id { + description "Index into network-topology-identifier structure"; + type string; + mandatory true; + } + leaf neutron-network-id { + description "Neutron-network-id assigned by PO/RO"; + type string; + } + uses vpn-bindings; + leaf vlan-tag-id { + type uint32; + } + leaf network-status { + description "assigned, unassigned"; + type string; + } + container customer-bonding-requests { + list customer-bonding-request { + key "configuration-id"; + leaf configuration-id { + description "e.g. vlan network receptor configuration id"; + type string; + } + } + } + } + } + } + } grouping network-level-oper-status { container network-level-oper-status { uses oper-status-data; @@ -303,6 +435,7 @@ module GENERIC-RESOURCE-API { uses service-information; uses vnf-information; uses vnf-request-input; + uses license-information; } grouping vnf-information { container vnf-information { @@ -310,7 +443,9 @@ module GENERIC-RESOURCE-API { type string; } leaf vnf-type { - 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)"; + type string; + } + leaf vnf-name { type string; } uses onap-model-information; @@ -319,11 +454,9 @@ module GENERIC-RESOURCE-API { grouping vnf-request-input { container vnf-request-input { leaf request-version { - description "keep this? e.g. 1702"; type string; } leaf vnf-name { - description "in Pats vnf submodule, contained within vnf-instance-topology-identifier (along with vnf-model-id and vnf-instance-id)"; type string; } uses region-identifier; @@ -333,6 +466,13 @@ module GENERIC-RESOURCE-API { uses vnf-network-data; } } + list vnf-network-instance-group-ids { + key "vnf-network-instance-group-id"; + leaf vnf-network-instance-group-id { + description "List of vnf network-instance-group"; + type string; + } + } container vnf-input-parameters { uses param; } @@ -347,6 +487,10 @@ module GENERIC-RESOURCE-API { container vnf-parameters-data { uses param; } + leaf sdnc-generated-cloud-resources { + description "Indicate if source is sdnc generated cloud param"; + type boolean; + } } } grouping vnf-topology-identifier-structure { @@ -380,7 +524,7 @@ module GENERIC-RESOURCE-API { grouping vnf-resource-assignments { container vnf-resource-assignments { leaf vnf-status { - description "Do we need this?Orchestration status from AAI - to be set by SDNCWill not be used for vIPR."; + description "Orchestration status from AAI - to be set by SDNC"; type string; } container availability-zones { @@ -425,7 +569,19 @@ module GENERIC-RESOURCE-API { } container subnets-data { list subnet-data { - key "ip-version"; + key "sdnc-subnet-id"; + leaf sdnc-subnet-id { + 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"; + type string; + } + leaf subnet-role { + description "Subnet Role for the subnet"; + type string; + } + leaf subnet-name { + description "Populated for preload only"; + type string; + } leaf ip-version { description "Should be ipv4 or ipv6"; type string; @@ -434,8 +590,36 @@ module GENERIC-RESOURCE-API { description "subnet UUID to be passed into the HEAT template"; type string; } + leaf dhcp-enabled { + description "Indicator to use this subnet for DHCP "; + type enumeration { + enum "Y"; + enum "N"; + } + } + leaf network-start-address { + description "start-address of the subnet"; + type inet:ip-address; + } + leaf gateway-address { + description "subnet gateway address"; + type inet:ip-address; + } + leaf cidr-mask { + description "cidr mask"; + type string; + } } } + leaf is-trunked { + type boolean; + } + leaf segmentation-id { + type string; + } + container related-networks { + uses related-network; + } } grouping vnf-level-oper-status { container vnf-level-oper-status { @@ -458,6 +642,10 @@ module GENERIC-RESOURCE-API { leaf vf-module-type { type string; } + leaf from-preload { + description "Indicates if source is preload data"; + type boolean; + } uses onap-model-information; } } @@ -485,6 +673,10 @@ module GENERIC-RESOURCE-API { container vf-module-parameters { uses param; } + leaf sdnc-generated-cloud-resources { + 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"; + type boolean; + } } } grouping vf-module-topology-identifier { @@ -498,7 +690,6 @@ module GENERIC-RESOURCE-API { type string; } leaf vf-module-type { - description "In Pats model referred to as model-id"; type string; } } @@ -506,7 +697,7 @@ module GENERIC-RESOURCE-API { grouping vf-module-assignments { container vf-module-assignments { leaf vf-module-status { - description "Do we need this?Orchestration status from AAI - to be set by SDNCNot being used for vIPR."; + description "Orchestration status from AAI - to be set by SDNC"; type string; } container vms { @@ -515,6 +706,22 @@ module GENERIC-RESOURCE-API { uses vm-topology-data; } } + uses vlan-vnfc-instance-groups; + container dhcp-subnet-assignments { + list dhcp-subnet-assignment { + key "neutron-subnet-id"; + leaf neutron-subnet-id { + description "Same as subnet-id in subnet-data structure"; + type string; + } + leaf network-role { + type string; + } + leaf ip-version { + type string; + } + } + } } } grouping vm-topology-data { @@ -522,6 +729,7 @@ module GENERIC-RESOURCE-API { type string; mandatory true; } + uses onap-model-information; leaf nfc-naming-code { description "used in vm naming(draft 29: changed from nfc-code)"; type string; @@ -535,10 +743,18 @@ module GENERIC-RESOURCE-API { } container vm-names { leaf-list vm-name { - description "ordered-by: user"; type string; ordered-by user; } + list vnfc-names { + key "vnfc-name"; + leaf vnfc-name { + type string; + } + container vnfc-networks { + uses vnfc-network-data; + } + } } container vm-networks { list vm-network { @@ -547,6 +763,82 @@ module GENERIC-RESOURCE-API { } } } + grouping vnfc-network-data { + list vnfc-network-data { + key "vnfc-network-role"; + leaf vnfc-network-role { + type string; + mandatory true; + } + leaf vnfc-type { + type string; + } + uses connection-point; + container vnfc-ports { + list vnfc-port { + key "vnfc-port-id"; + leaf vnfc-port-id { + 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"; + type string; + mandatory true; + } + leaf common-sub-interface-role { + description "If sub-interfaces have common interface role (network role)"; + type string; + } + container vnic-sub-interfaces { + uses sub-interface-network-data; + } + } + } + list vnfc-subnet { + key "vnfc-subnet-role"; + leaf vnfc-subnet-role { + description "Default value if subnet role is not defined."; + type string; + mandatory true; + } + list vnfc-ip-assignments { + key "vnfc-address-family"; + leaf vnfc-address-family { + description "indicates if this is IpV4 or IpV6"; + type enumeration { + enum "ipv4"; + enum "ipv6"; + } + } + leaf vnfc-subnet-dhcp { + description "Indicator to use DHCP for IP assignment. Unless dhcp=N, we wouldnt have any IPs here, since they would not be SDNC assigned "; + type enumeration { + enum "Y"; + enum "N"; + } + } + leaf vnfc-subnet-ip-count { + description "The number of IP addresses to be assigned per vnfc for this subnet role"; + type uint8; + } + list vnfc-subnet-ip { + key "vnfc-ip-address"; + leaf vnfc-ip-address { + description "Either IpV4 IP or IpV6 IP addresses should be present"; + type inet:ip-address; + } + leaf vnfc-client-key { + type string; + } + leaf ip-type { + description "Capture what type of IP this is, if is virtual IP (AKA, floating IP) or Fixed IP. "; + type enumeration { + enum "FIXED"; + enum "VIP"; + } + } + } + } + } + } + } grouping vm-network-data { leaf network-role { description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF"; @@ -576,7 +868,7 @@ module GENERIC-RESOURCE-API { } container network-ips { leaf-list network-ip { - 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?"; + description "List of assigned ip addresses of type ip-version on a network"; type string; ordered-by user; } @@ -631,6 +923,15 @@ module GENERIC-RESOURCE-API { } } } + leaf is-trunked { + type boolean; + } + leaf segmentation-id { + type string; + } + container related-networks { + uses related-network; + } } grouping vf-module-level-oper-status { container vf-module-level-oper-status { @@ -650,85 +951,716 @@ module GENERIC-RESOURCE-API { type string; } } - grouping contrail-route-operation-information { + grouping forwarding-path-operation-information { uses sdnc-request-header; uses request-information; uses service-information; - uses allotted-resource-information; - uses contrail-route-request-input; - } - grouping contrail-route-request-input { - container contrail-route-request-input { - container source-network { - uses network-info; - } - container dest-network { - uses network-info; - } - container contrail-applied-service-info { - leaf service-instance-id { - 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."; - type string; - } - leaf contrail-fqdn { - 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."; + uses forwarding-path-request-input; + } + grouping forwarding-path-request-input { + container forwarding-path-request-input { + list forwarding-paths { + key "forwarding-path-name"; + leaf forwarding-path-name { + description "Forwarding-path-name from tosca-model. "; type string; + mandatory true; } + uses onap-model-information; } - container contrail-route-input-parameters { - uses param; + } + } + grouping forwarding-path-information { + leaf forwarding-path-name { + description "Fowarding-path name from TOSCA model, or name generated by SDNC"; + type string; + } + leaf forwarding-path-type { + description "Based on MySQL Forwarding_Path tables path_type value from related TOSCA model"; + type enumeration { + enum "VNF"; + enum "Service"; + } + } + uses onap-model-information; + container service-paths { + list service-path { + key "service-path-instance-id"; + uses service-path-information; } } } - grouping network-info { - leaf network-id { + grouping service-path-information { + leaf service-path-instance-id { + description "Service path instance ID generated by SDNC. Identifies a service-path-instance within a forwarding-path definition"; type string; } - leaf network-role { + leaf service-path-instance-name { + description "A unique name generated by SDNC ( forwarding-path-name + service-path-instance-id )"; + type string; + } + leaf version { + 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 "; type string; } + list service { + key "service-instance-id"; + leaf service-instance-id { + description "service-instance-id of each service-instance in the service-path-instance"; + type string; + } + leaf service-path-sequence-id { + description "e.g. S1S2S3S5seq id=1 S1-S2seq id=2 S2S3seq id=3 S3S5Incremental integer value"; + type uint32; + } + container vnfs { + list vnf { + key "vnf-instance-id"; + uses vnf-path-information; + } + } + } } - grouping contrail-route-topology { - container contrail-route-topology { - uses allotted-resource-identifiers; - uses onap-model-information; - uses contrail-route-assignments; - container contrail-route-parameters { - uses param; + grouping vnf-path-information { + leaf vnf-instance-id { + description "VNF instance ID in the path"; + type string; + } + leaf vnf-path-sequence-id { + 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."; + type uint32; + } + leaf left-network-name { + description "Every VNF instance in the path is connected to one or two VNFs."; + type string; + } + leaf left-network-role { + type string; + } + leaf right-network-name { + type string; + } + leaf right-network-role { + type string; + } + container vf-module-instance { + leaf vf-module-id { + type string; + } + leaf vf-module-name { + type string; } } } - grouping contrail-route-assignments { - container contrail-route-assignments { - leaf fq-name { - description "The Contrail fq-name of the network policy"; + grouping forwarding-path-level-oper-status { + container forwarding-path-level-oper-status { + uses oper-status-data; + } + } + grouping configuration-info { + leaf configuration-id { + type string; + } + leaf configuration-type { + description "Not an enum, but expected values are port-mirror-configuration, , vlan-network-receptor"; + type string; + } + leaf configuration-sub-type { + description "Not an enum, but expected values are vprobe and pprobe"; + type string; + } + leaf configuration-topology-link { + description "Pointer to the configurations topology"; + type string; + } + } + grouping vnfc-instance-group { + list vnfc-instance-group { + key "instance-group-role nfc-naming-code configuration-id"; + leaf instance-group-role { + description "i.e.TSBC_VNFC_group"; type string; + mandatory true; } - leaf contrail-id { - description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)"; + leaf nfc-naming-code { + description "Set to nfc-naming-code from A&AI"; type string; + mandatory true; } - container source-network { - uses network-info; + leaf configuration-id { + type string; + mandatory true; } - container dest-network { - uses network-info; + leaf group-type { + description " port-mirror-source or port-mirror-dest"; + type string; } - container contrail-applied-service { - leaf service-instance-id { - description "The service-instance-id of the vnf from which the contrail applied service is coming"; + uses vnfc-objects; + } + } + grouping vnfc-objects { + container vnfc-objects { + list vnfc-object { + key "vnfc-key"; + leaf vnfc-key { + type string; + } + leaf vnfc-name { + description "Vnfc name as key in A&AI"; + type string; + } + leaf vm-type { type string; } leaf vnf-id { - description "The vnf representing the contrail applied service"; type string; } - leaf contrail-fqdn { - description "This is the fq-name of the Contrail service instance through which the route is passing."; + leaf vserver-name { type string; } - } - leaf vlan-tag { + leaf vserver-id { + type string; + } + container vnics { + list vnic { + key "vnic-port-name"; + leaf vnic-port-name { + type string; + } + leaf vnic-port-id { + type string; + } + container capacity { + leaf vnic-capacity { + type uint32; + } + leaf used-capacity { + description "Updated for destination port when source port is mapped/unmapped."; + type uint32; + } + } + container vnic-ip-addresses { + uses ip-addresses; + } + } + } + } + } + } + grouping vnfcs { + container vnfcs { + list vnfc { + key "vnfc-name"; + leaf vnfc-name { + description "Vnfc name as key in A&AI"; + type string; + } + leaf vserver-name { + type string; + } + leaf vserver-id { + type string; + } + uses vnics; + } + } + } + grouping vnics { + container vnics { + list vnic { + key "vnic-port-name"; + leaf vnic-port-name { + type string; + } + leaf vnic-port-id { + type string; + } + uses sub-interfaces; + } + } + } + grouping sub-interfaces { + container sub-interfaces { + list sub-interface { + key "sub-interface-port-name"; + leaf sub-interface-port-name { + type string; + } + leaf sub-interface-port-id { + type string; + } + container sub-interface-ip-addresses { + uses ip-addresses; + } + uses vlan-tags; + container sub-interface-network { + leaf network-name { + type string; + } + leaf network-id { + type string; + } + } + leaf sub-interface-status { + description "NULL, unassigned, assigned"; + type string; + } + } + } + } + grouping vlan-tags { + container vlan-tags { + leaf vlan-interface { + description "A&AI Key"; + type string; + } + leaf upper-tag-id { + type uint32; + } + leaf lower-tag-id { + type uint32; + } + leaf is-private { + type boolean; + } + } + } + grouping vlan-vnfc-instance-groups { + container vlan-vnfc-instance-groups { + list vlan-vnfc-instance-group { + key "instance-group-id"; + leaf instance-group-id { + description "A&AI ID"; + type string; + mandatory true; + } + leaf instance-group-function { + type string; + } + leaf vnf-id { + type string; + } + container vnfcs { + list vnfc { + key "vnfc-name"; + leaf vnfc-name { + type string; + } + uses vnic-groups; + } + } + } + } + } + grouping vnic-groups { + container vnic-groups { + list vnic-group { + key "vnic-interface-role"; + leaf vnic-interface-role { + description "Same as network-role of network where vnic is connected"; + type string; + mandatory true; + } + leaf network-instance-group-function { + description "network-instance-Group-function for network collection where vnics with vnic-interface-role will connect"; + type string; + } + leaf vlan-assignment-policy-name { + description "Policy name in ASDC model & policy definition in Policy Engine"; + type string; + } + leaf vlan-tag-index-next { + description "Next tag to be assigned"; + type uint32; + } + container vlan-common-ip-addresses { + uses ip-addresses; + } + container vlan-vnics { + list vlan-vnic { + key "vnic-port-id"; + leaf vnic-port-id { + type string; + mandatory true; + } + container vnic-sub-interfaces { + uses sub-interface-network-data; + } + } + } + } + } + } + grouping vnf-network-collection { + list vnf-network-collection { + key "network-instance-group-function"; + leaf network-instance-group-function { + description "Network Instance-Group function in A&AI"; + type string; + mandatory true; + } + leaf network-instance-group-id { + description "Network Instance-Group id in A&AI"; + type string; + } + leaf network-collection-service-instance-id { + description "Service-instance-id of service that created the network collection"; + type string; + } + leaf network-collection-customization-uuid { + description "network-collection-customization-uuid stored in Network IsntanceGroup.customization-uuid in A&AI"; + type string; + } + container networks { + list network { + key "network-id"; + leaf network-id { + description "Index into network-topology-identifier structure"; + type string; + mandatory true; + } + leaf neutron-network-id { + description "Neutron-network-id assigned by PO/RO"; + type string; + } + } + } + container vnf-floating-ip { + uses ip-addresses; + } + } + } + grouping vnf-sub-interface-group { + list vnf-sub-interface-group { + key "vnfc-instance-group-function network-instance-group-function parent-port-role"; + leaf vnfc-instance-group-function { + type string; + mandatory true; + } + leaf network-instance-group-function { + type string; + mandatory true; + } + leaf parent-port-role { + type string; + mandatory true; + } + uses vnfcs; + container customer-bonding-requests { + list customer-bonding-request { + key "configuration-id"; + leaf configuration-id { + description "e.g. vlan network receptor configuration id"; + type string; + } + } + } + } + } + grouping sub-interface-network-data { + list sub-interface-network-data { + key "network-id"; + leaf network-id { + description "Subinterface network id (UUID in A&AI)"; + type string; + mandatory true; + } + leaf neutron-network-id { + description "Neutron network id assigned by PO/RP"; + type string; + } + leaf network-name { + description "Subinterface network name"; + type uint32; + } + leaf vlan-tag-id { + description "Vlan tag assigned to subinterface port"; + type uint32; + } + leaf network-role { + description "e.g. untrusted "; + type string; + } + leaf network-role-tag { + description "Assuming HEAT template network role tag parameter - not used"; + type string; + } + container network-information-items { + list network-information-item { + key "ip-version"; + leaf ip-version { + description "Use ipv4 or ipv6"; + type string; + } + leaf use-dhcp { + description "Indicator to use DHCP on this network for this VM - set to N for Vlan tagging"; + type enumeration { + enum "Y"; + enum "N"; + } + } + leaf ip-count { + description "The number of ip addresses to be assigned per vm for this network role"; + type uint8; + } + container network-ips { + leaf-list network-ip { + description "List of assigned ip addresses of type ip-version on a network."; + type inet:ip-address; + ordered-by user; + } + } + } + } + container floating-ips { + leaf-list floating-ip-v4 { + description "Floating ipv4 for VMs of a given type on this network"; + type inet:ip-address; + ordered-by user; + } + leaf-list floating-ip-v6 { + description "Floating ipv6 for VMs of a given type on this network"; + type inet:ipv6-address; + ordered-by user; + } + } + } + } + grouping vnf-cloud-param { + leaf service-instance-id { + type string; + } + leaf service-instance-name { + type string; + } + list vnf { + key "vnf-id"; + leaf vnf-id { + type string; + } + leaf vnf-name { + type string; + } + uses param; + list vf-module { + key "vf-module-id"; + leaf vf-module-id { + type string; + } + uses param; + } + } + } + grouping vnf-get-resource-request-input-data { + list vnf { + key "vnf-id"; + leaf vnf-id { + type string; + } + list vf-module { + key "vf-module-id"; + leaf vf-module-id { + type string; + } + } + } + } + grouping license-information { + container license-information { + list entitlement-pool-list { + key "entitlement-pool-uuid action"; + leaf entitlement-pool-uuid { + type string; + mandatory true; + } + leaf action { + type string; + mandatory true; + } + leaf entitlement-pool-invariant-uuid { + type string; + } + leaf entitlement-uuid { + description "assigned by ALTS"; + type string; + } + } + list license-key-group-list { + key "license-key-group-uuid action"; + leaf license-key-group-uuid { + type string; + mandatory true; + } + leaf action { + type string; + mandatory true; + } + leaf license-key-group-invariant-uuid { + type string; + } + leaf license-key { + description "assigned by ALTS"; + type string; + } + leaf license-uuid { + description "assigned by ALTS"; + type string; + } + } + } + } + grouping related-network { + list related-network { + key "network-id"; + leaf network-id { + description "Key to l3-network object"; + type string; + } + leaf network-role { + type string; + } + uses vlan-tags; + } + } + grouping connection-point { + container connection-point { + leaf connection-point-id { + description "Key to CP object in A&AI"; + type string; + } + leaf port-id { + description "port-index when multiple CPs connect to same network. Default zero (0)"; + type string; + } + list vlan-data { + key "vlan-uuid"; + leaf vlan-uuid { + description "Key to vlan-tag uuid object in A&AI Generated by vlan mS"; + type string; + } + leaf vlan-tag-id { + type string; + } + leaf vlan-tag-description { + type string; + } + leaf vlan-role { + description "Inner/Outer roles"; + type string; + } + } + } + } + grouping aggregate-routes { + list aggregate-routes { + key "route-id"; + leaf route-id { + description "Unique id"; + type string; + } + leaf start-address { + type inet:ip-address; + } + leaf cidr-mask { + type string; + } + leaf ip-version { + description "Use values 4 or 6."; + type string; + } + } + } + grouping pnf-information { + container pnf-information { + leaf pnf-name { + description "Key for A&AI query"; + type string; + } + leaf pnf-type { + type string; + } + uses onap-model-information; + } + } + grouping contrail-route-operation-information { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses allotted-resource-information; + uses contrail-route-request-input; + } + grouping contrail-route-request-input { + container contrail-route-request-input { + container source-network { + uses network-info; + } + container dest-network { + uses network-info; + } + container contrail-applied-service-info { + leaf service-instance-id { + 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."; + type string; + } + leaf contrail-fqdn { + 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."; + type string; + } + } + container contrail-route-input-parameters { + uses param; + } + } + } + grouping network-info { + leaf network-id { + type string; + } + leaf network-role { + type string; + } + } + grouping contrail-route-topology { + container contrail-route-topology { + uses allotted-resource-identifiers; + uses onap-model-information; + uses contrail-route-assignments; + container contrail-route-parameters { + uses param; + } + } + } + grouping contrail-route-assignments { + container contrail-route-assignments { + leaf fq-name { + description "The Contrail fq-name of the network policy"; + type string; + } + leaf contrail-id { + description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)"; + type string; + } + container source-network { + uses network-info; + } + container dest-network { + uses network-info; + } + container contrail-applied-service { + leaf service-instance-id { + description "The service-instance-id of the vnf from which the contrail applied service is coming"; + type string; + } + leaf vnf-id { + description "The vnf representing the contrail applied service"; + type string; + } + leaf contrail-fqdn { + description "This is the fq-name of the Contrail service instance through which the route is passing."; + type string; + } + } + leaf vlan-tag { description "Contrail-assigned vlan-tag to the vipr vm interface for this route."; type string; } @@ -798,6 +1730,253 @@ module GENERIC-RESOURCE-API { } } } + grouping port-mirror-topology-operation-information { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses configuration-information; + uses port-mirror-configuration-request-input; + } + grouping port-mirror-configuration-request-input { + container port-mirror-configuration-request-input { + container source-port { + uses port-info; + leaf source-port-id { + description "needed for srv-action=disable/enable"; + type string; + } + } + container dest-port { + uses port-info; + } + uses region-identifier; + container port-mirror-configuration-input-parameters { + uses param; + } + } + } + grouping port-info { + leaf service-instance-id { + description "May not be need."; + type string; + } + uses pnf-information; + uses vnf-information; + } + grouping port-mirror-configuration-topology { + container port-mirror-configuration-topology { + uses configuration-identifiers; + uses onap-model-information; + uses port-mirror-configuration-assignments; + container port-mirror-configuration-parameters { + uses param; + } + } + } + grouping port-mirror-configuration-assignments { + container port-mirror-configuration-assignments { + container contrail-vmi-params { + uses param; + } + leaf vnics-group-id { + type string; + } + leaf owning-entity { + type string; + } + leaf tenant-context { + description "From tenant object in A&AI"; + type string; + } + leaf tenant { + description "Tenant name from A&AI for source VNF"; + type string; + } + leaf tenant-id { + description "tenant-id from A&AI for source VNF"; + type string; + } + leaf dest-tenant { + description "Tenant name from A&AI for destination VNF"; + type string; + } + leaf dest-tenant-id { + description "tenant-id from A&AI for destination VNF"; + type string; + } + leaf cloud-region-id { + type string; + } + leaf cloud-owner { + type string; + } + leaf dest-network-fqdn { + type string; + } + leaf source-network-fqdn { + type string; + } + leaf source-capacity { + description "Source port pps (packets per second) rating from tosca model"; + type uint32; + } + leaf source-vnf-id { + type string; + } + leaf dest-vnf-id { + description "For vProbe"; + type string; + } + leaf dest-pnf-name { + description "For pProbe"; + type string; + } + leaf dest-p-interface { + description "For pProbe; from policy manager"; + type string; + } + leaf dest-pnf-port-policy-name { + description "For pProbe; from tosca model"; + type string; + } + leaf probe-type { + description "vprobe or pprobe; derived from configuration-information.configuration-sub-type"; + type string; + } + leaf route-allotted-resource-id { + description "For vProbe"; + type string; + } + container source-vnfc-instance-group-id { + leaf service-instance-id { + type string; + } + leaf nfc-naming-code { + type string; + } + leaf instance-group-role { + type string; + } + leaf configuration-id { + type string; + } + } + container dest-vnfc-instance-group-id { + leaf service-instance-id { + type string; + } + leaf nfc-naming-code { + type string; + } + leaf instance-group-role { + type string; + } + leaf configuration-id { + type string; + } + } + container source-to-dest-maps { + list source-to-dest-map { + key "source-port-id"; + leaf source-port-id { + type string; + mandatory true; + } + leaf source-port-name { + type string; + } + leaf source-vserver-id { + type string; + } + leaf dest-vserver-id { + type string; + } + leaf dest-port-id { + type string; + } + leaf dest-port-name { + type string; + } + leaf link-name { + type string; + } + container dest-ip-addresses { + uses ip-addresses; + } + } + } + } + } + grouping gc-topology-operation-information { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses configuration-information; + uses gc-request-input; + } + grouping gc-request-input { + container gc-request-input { + leaf vnf-id { + type string; + } + leaf vf-module-id { + description "This is mandatory in case of rebuild"; + type string; + } + container input-parameters { + uses param; + } + leaf rebuild { + description "Value will indicate what to rebuild"; + type string; + } + list configuration-ids { + key "configuration-id"; + leaf configuration-id { + type string; + } + } + } + } + grouping vnr-parameters { + container vnr-parameters { + leaf vnf-id { + type string; + } + leaf vf-module-id { + description "This is mandatory in case of rebuild"; + type string; + } + leaf vnf-service-instance-id { + type string; + } + leaf network-collection-service-instance-id { + description "service instance id that created network-collection"; + type string; + } + leaf network-instance-group-id { + type string; + } + leaf network-id { + type string; + } + leaf vnfc-instance-group-function { + type string; + } + leaf network-instance-group-function { + type string; + } + leaf parent-port-role { + type string; + } + leaf upper-tag-id { + type uint32; + } + leaf lower-tag-id { + type uint32; + } + } + } grouping tunnelxconn-operation-information { uses sdnc-request-header; uses request-information; @@ -880,6 +2059,73 @@ module GENERIC-RESOURCE-API { } } } + grouping connection-attachment-operation-information { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses allotted-resource-information; + uses connection-attachment-request-input; + } + + grouping connection-attachment-request-input { + container connection-attachment-request-input { + uses param; + } + } + + grouping connection-attachment-topology { + container connection-attachment-topology { + uses allotted-resource-identifiers; + uses onap-model-information; + uses connection-attachment-assignments; + container connection-attachment-parameters { + uses param; + } + } + } + + grouping connection-attachment-assignments { + container connection-attachment-assignments { + } + } + + grouping vnf-vnr-rebuild-data { + container vnf-vnr-rebuild-data { + leaf vnf-id { + type string; + } + leaf vnf-service-instance-id { + type string; + } + list vnrs-data { + key "configuration-id"; + leaf configuration-id { + type string; + } + leaf network-instance-group-id { + type string; + } + leaf network-id { + type string; + } + leaf vnfc-instance-group-function { + type string; + } + leaf network-instance-group-function { + type string; + } + leaf parent-port-role { + type string; + } + leaf upper-tag-id { + type uint32; + } + leaf lower-tag-id { + type uint32; + } + } + } + } grouping allotted-resource-information { container allotted-resource-information { leaf allotted-resource-id { @@ -965,6 +2211,95 @@ module GENERIC-RESOURCE-API { } } } + grouping configuration-information { + container configuration-information { + leaf configuration-id { + type string; + } + leaf configuration-name { + type string; + } + leaf configuration-type { + description "Not an enum, but expected values are port-mirror-configuration, vlan-network-receptor"; + type string; + } + leaf configuration-sub-type { + description "e.g. vprobe and pprobe when configuration-type=port-mirror-configuration"; + type string; + } + uses onap-model-information; + } + } + grouping configuration-identifiers { + container configuration-identifiers { + leaf configuration-id { + type string; + } + leaf configuration-name { + type string; + } + leaf configuration-type { + description "Not an enum, but expected values are port-mirror-configuration."; + type string; + } + leaf configuration-sub-type { + description " vprobe and pprobe"; + type string; + } + leaf parent-service-instance-id { + description "Service-instance-id of the parent service to which this resource belongs."; + type string; + } + } + } + grouping configuration-oper-status { + container configuration-oper-status { + uses oper-status-data; + } + } + grouping configuration-status { + container configuration-status { + leaf response-code { + type string; + } + leaf response-message { + type string; + } + leaf final-indicator { + type string; + } + leaf request-status { + type enumeration { + enum "synccomplete"; + enum "asynccomplete"; + enum "notifycomplete"; + } + } + leaf action { + description "value would one of possible request-actions; match the list in service-data oper-status"; + type string; + } + leaf rpc-name { + type string; + } + leaf rpc-action { + description "this is the svc-action from the incoming request"; + type enumeration { + enum "assign"; + enum "activate"; + enum "create"; + enum "disable"; + enum "enable"; + enum "delete"; + enum "unassign"; + enum "deactivate"; + } + } + leaf response-timestamp { + type string; + } + } + } grouping topology-response-common { leaf svc-request-id { description "the request id from the request message for which this is the responseKeep as M"; @@ -990,7 +2325,7 @@ module GENERIC-RESOURCE-API { type string; } leaf svc-action { - description "Enumerated listThis is the rpcAction"; + description "This is the rpcAction"; type enumeration { enum "reserve"; enum "assign"; @@ -1002,6 +2337,11 @@ module GENERIC-RESOURCE-API { enum "deactivate"; enum "unassign"; enum "create"; + enum "disable"; + enum "enable"; + enum "update"; + enum "reoptimize"; + enum "rebuild"; } } leaf svc-notification-url { @@ -1021,6 +2361,7 @@ module GENERIC-RESOURCE-API { type enumeration { enum "CreateNetworkInstance"; enum "ActivateNetworkInstance"; + enum "DeActivateNetworkInstance"; enum "CreateServiceInstance"; enum "DeleteServiceInstance"; enum "DeleteNetworkInstance"; @@ -1040,6 +2381,53 @@ module GENERIC-RESOURCE-API { enum "DeleteTunnelXConnInstance"; enum "CreateBRGInstance"; enum "DeleteBRGInstance"; + enum "CreateSOTNConnectivityInstance"; + enum "ActivateSOTNConnectivityInstance"; + enum "DeactivateSOTNConnectivityInstance"; + enum "DeleteSOTNConnectivityInstance"; + enum "CreateSOTNAttachmentInstance"; + enum "ActivateSOTNAttachmentInstance"; + enum "DeactivateSOTNAttachmentInstance"; + enum "DeleteSOTNAttachmentInstance"; + enum "CreateSiteInstance"; + enum "ActivateSiteInstance"; + enum "DeactivateSiteInstance"; + enum "DeleteSiteInstance"; + enum "CreatePortMirrorConfigurationInstance"; + enum "DeletePortMirrorConfigurationInstance"; + enum "ChangePortMirrorConfigurationInstance"; + enum "CreateGenericConfigurationInstance"; + enum "RebuildGenericConfigurationInstance"; + enum "DeleteGenericConfigurationInstance"; + enum "PreloadVfModuleRequest"; + enum "DeletePreloadVfModuleRequest"; + enum "PreloadNetworkRequest"; + enum "DeletePreloadNetworkRequest"; + enum "CreateForwardingPathInstance"; + enum "DeleteForwardingPathInstance"; + enum "UpdateForwardingPathInstance"; + enum "CreateSDWANDeviceInstance"; + enum "ActivateSDWANDeviceInstance"; + enum "DeactivateSDWANDeviceInstance"; + enum "DeleteSDWANDeviceInstance"; + enum "CreateSDWANPortInstance"; + enum "ActivateSDWANPortInstance"; + enum "DeactivateSDWANPortInstance"; + enum "DeleteSDWANPortInstance"; + enum "ReoptimizeSOTNInstance"; + enum "CreateSDWANLanPortInstance"; + enum "ActivateSDWANLanPortInstance"; + enum "DeactivateSDWANLanPortInstance"; + enum "DeleteSDWANLanPortInstance"; + enum "CreateSDWANVpnInstance"; + enum "ActivateSDWANVpnInstance"; + enum "DeactivateSDWANVpnInstance"; + enum "DeleteSDWANVpnInstance"; + enum "CreateSDWANSiteInstance"; + enum "ActivateSDWANSiteInstance"; + enum "DeactivateSDWANSiteInstance"; + enum "DeleteSDWANSiteInstance"; + enum "SdwanBandwidthChange"; } } leaf source { @@ -1110,6 +2498,10 @@ module GENERIC-RESOURCE-API { description "The AIC cloud region which maps to contrail versions"; type string; } + leaf cloud-owner { + description "The cloud owner provided by the caller"; + type string; + } leaf aic-clli { description "Not expected to be used"; type string; @@ -1124,6 +2516,43 @@ module GENERIC-RESOURCE-API { leaf value { type string; } + container resource-resolution-data { + list resource-key { + key "name"; + leaf name { + type string; + } + leaf value { + type string; + } + } + leaf status { + description "SUCCESS, FAILED, or PENDING - RA returned data as capability"; + type string; + } + leaf capability-name { + description "Resource assignment resolution Capability name"; + type string; + } + } + } + } + grouping ip-addresses { + container ip-addresses { + leaf ipv4-address { + type inet:ip-address; + } + leaf ipv6-address { + type inet:ip-address; + } + leaf vipv4-address { + description "Virtual v4"; + type inet:ip-address; + } + leaf vipv6-address { + description "Virtual v6"; + type inet:ip-address; + } } } grouping instance-reference { @@ -1156,6 +2585,8 @@ module GENERIC-RESOURCE-API { enum "unassign"; enum "deactivate"; enum "create"; + enum "changeassign"; + enum "reoptimize"; } } leaf last-action { @@ -1163,6 +2594,7 @@ module GENERIC-RESOURCE-API { type enumeration { enum "CreateNetworkInstance"; enum "ActivateNetworkInstance"; + enum "DeActivateNetworkInstance"; enum "CreateServiceInstance"; enum "DeleteServiceInstance"; enum "DeleteNetworkInstance"; @@ -1170,339 +2602,190 @@ module GENERIC-RESOURCE-API { enum "ActivateVnfInstance"; enum "DeleteVnfInstance"; enum "CreateVfModuleInstance"; - enum "ActivateVfModuleInstance"; - enum "DeleteVfModuleInstance"; - enum "CreateContrailRouteInstance"; - enum "DeleteContrailRouteInstance"; - enum "CreateSecurityZoneInstance"; - enum "DeleteSecurityZoneInstance"; - } - } - leaf last-svc-request-id { - description "Not currently populated in service data."; - type string; - } - leaf last-order-status { - description "fieldused by generic-resource-api"; - type enumeration { - enum "Active"; - enum "PendingAssignment"; - enum "PendingCreate"; - enum "PendingUpdate"; - enum "PendingDelete"; - enum "Deleted"; - enum "Created"; - } - } - leaf create-timestamp { - description "Not currently populated in service data."; - type string; - } - leaf modify-timestamp { - type string; - } - } - grouping service-response-information { - container service-response-information { - uses instance-reference; - } - } - grouping network-response-information { - container network-response-information { - uses instance-reference; - } - } - grouping vnf-response-information { - container vnf-response-information { - uses instance-reference; - } - } - grouping vf-module-response-information { - container vf-module-response-information { - uses instance-reference; - } - } - grouping contrail-route-response-information { - container contrail-route-response-information { - uses instance-reference; - } - } - grouping security-zone-response-information { - container security-zone-response-information { - uses instance-reference; - } - } - grouping tunnelxconn-response-information { - container tunnelxconn-response-information { - uses instance-reference; - } - } - grouping brg-response-information { - container brg-response-information { - uses instance-reference; - } - } - grouping preload-model-information { - list vnf-preload-list { - key "vnf-name vnf-type"; - leaf vnf-name { - description "vf-module-name or network name"; - type string; - mandatory true; - } - leaf vnf-type { - description "vf-module-type or network type"; - type string; - mandatory true; - } - uses preload-data; - } - } - grouping vnf-topology-response-body { - leaf svc-request-id { - type string; - } - leaf response-code { - type string; - } - leaf response-message { - type string; - } - leaf ack-final-indicator { - type string; - } - } - grouping preload-data { - container preload-data { - uses vnf-topology-information; - uses network-topology-information; - uses oper-status; - } - } - grouping vnf-topology-information { - container vnf-topology-information { - uses vnf-topology-identifier; - uses vnf-assignments; - uses vnf-parameters; - } - } - grouping vnf-topology-identifier { - container vnf-topology-identifier { - leaf service-type { - type string; - } - leaf service-id { - type string; - } - leaf vnf-name { - description "vf-module-name"; - type string; - } - leaf vnf-type { - description "vf-module-type"; - type string; - } - leaf generic-vnf-name { - type string; - } - leaf generic-vnf-type { - type string; - } - leaf generic-vnf-id { - type string; - } - } - } - grouping vnf-assignments { - container vnf-assignments { - leaf vnf-status { - description "Orchestration Status from AAI - to be set by SDNC"; - type string; - } - list availability-zones { - key "availability-zone"; - leaf availability-zone { - description "Openstack availability zone name or UUID"; - type string; - } - } - list vnf-networks { - key "network-role"; - uses vnf-network; - uses sriov-vlan-filter-list; - } - uses vm-topology; - } - } - grouping vm-topology { - list vnf-vms { - key "vm-type"; - leaf vm-type { - type string; - mandatory true; - } - leaf vm-count { - type uint8; - } - list vm-names { - key "vm-name"; - leaf vm-name { - type string; - } - } - list vm-networks { - key "network-role"; - uses vm-network; + enum "ActivateVfModuleInstance"; + enum "DeleteVfModuleInstance"; + enum "CreateContrailRouteInstance"; + enum "DeleteContrailRouteInstance"; + enum "CreateSecurityZoneInstance"; + enum "DeleteSecurityZoneInstance"; + enum "ActivateDCINetworkInstance"; + enum "DeActivateDCINetworkInstance"; + enum "CreateTunnelXConnInstance"; + enum "DeleteTunnelXConnInstance"; + enum "CreateBRGInstance"; + enum "DeleteBRGInstance"; + enum "CreateSOTNConnectivityInstance"; + enum "ActivateSOTNConnectivityInstance"; + enum "DeactivateSOTNConnectivityInstance"; + enum "DeleteSOTNConnectivityInstance"; + enum "CreateSOTNAttachmentInstance"; + enum "ActivateSOTNAttachmentInstance"; + enum "DeactivateSOTNAttachmentInstance"; + enum "DeleteSOTNAttachmentInstance"; + enum "CreateSiteInstance"; + enum "ActivateSiteInstance"; + enum "DeactivateSiteInstance"; + enum "DeleteSiteInstance"; + enum "CreatePortMirrorConfigurationInstance"; + enum "DeletePortMirrorConfigurationInstance"; + enum "ChangePortMirrorConfigurationInstance"; + enum "CreateGenericConfigurationInstance"; + enum "DeleteGenericConfigurationInstance"; + enum "PreloadVfModuleRequest"; + enum "DeletePreloadVfModuleRequest"; + enum "PreloadNetworkRequest"; + enum "DeletePreloadNetworkRequest"; + enum "CreateForwardingPathInstance"; + enum "DeleteForwardingPathInstance"; + enum "UpdateForwardingPathInstance"; + enum "CreateSDWANDeviceInstance"; + enum "ActivateSDWANDeviceInstance"; + enum "DeactivateSDWANDeviceInstance"; + enum "DeleteSDWANDeviceInstance"; + enum "CreateSDWANPortInstance"; + enum "ActivateSDWANPortInstance"; + enum "DeactivateSDWANPortInstance"; + enum "DeleteSDWANPortInstance"; + enum "ReoptimizeSOTNInstance"; + enum "CreateSDWANLanPortInstance"; + enum "ActivateSDWANLanPortInstance"; + enum "DeactivateSDWANLanPortInstance"; + enum "DeleteSDWANLanPortInstance"; + enum "CreateSDWANVpnInstance"; + enum "ActivateSDWANVpnInstance"; + enum "DeactivateSDWANVpnInstance"; + enum "DeleteSDWANVpnInstance"; + enum "CreateSDWANSiteInstance"; + enum "ActivateSDWANSiteInstance"; + enum "DeactivateSDWANSiteInstance"; + enum "DeleteSDWANSiteInstance"; + enum "SdwanBandwidthChange"; } } - } - grouping vnf-network { - leaf network-role { - description "A Network Role to which a VNF must connect"; - type string; - mandatory true; - } - leaf network-name { - description "Unique Neutron UUID of an instance of the network role "; + leaf last-svc-request-id { + description "Not currently populated in service data."; type string; } - leaf neutron-id { - description "Unique Neutron UUID of an instance of the network role "; - type string; + leaf last-order-status { + type enumeration { + enum "Active"; + enum "PendingAssignment"; + enum "PendingCreate"; + enum "PendingUpdate"; + enum "PendingDelete"; + enum "Deleted"; + enum "Created"; + } } - leaf network-id { - description "Unique Neutron UUID of an instance of the network role "; + leaf create-timestamp { + description "Not currently populated in service data."; type string; } - leaf subnet-id { - description "ipv4 subnet UUID to be passed into the HEAT template"; + leaf modify-timestamp { type string; } - leaf subnet-name { - description "ipv4 subnet-name that corresponds to the ipv4 subnet-id"; - type string; + } + grouping service-response-information { + container service-response-information { + uses instance-reference; } - leaf contrail-network-fqdn { - description "contrail network policy object"; - type string; + } + grouping network-response-information { + container network-response-information { + uses instance-reference; } - leaf ipv6-subnet-id { - description "ipv6 subnet UUID to be passed into the HEAT template"; - type string; + } + grouping vnf-response-information { + container vnf-response-information { + uses instance-reference; } - leaf ipv6-subnet-name { - description "ipv6 subnet-name that corresponds to the ipv6 subnet-id"; - type string; + } + grouping vf-module-response-information { + container vf-module-response-information { + uses instance-reference; } } - grouping sriov-vlan-filter-list { - list sriov-vlan-filter-list { - key "sriov-vlan-filter"; - leaf sriov-vlan-filter { - type string; - } + grouping contrail-route-response-information { + container contrail-route-response-information { + uses instance-reference; } } - grouping vm-network { - leaf network-role { - description "network (identified by role) that this VM connects to. Should also be included in the vnf-networks for the containing VNF"; - type string; + grouping security-zone-response-information { + container security-zone-response-information { + uses instance-reference; } - leaf use-dhcp { - description "Indicator to use DHCP on this network for this VM"; - type enumeration { - enum "Y"; - enum "N"; - } + } + grouping getpathsegment-response-information { + container getpathsegment-response-information { + uses instance-reference; } - leaf ip-count { - description "The number of ip addresses to be assigned per vm for this network role"; - type uint8; + } + grouping port-mirror-response-information { + container port-mirror-response-information { + uses instance-reference; } - list network-ips { - key "ip-address"; - leaf ip-address { - description "List of assigned ipv4 addresses on a network"; - type inet:ip-address; - } + } + grouping gc-response-information { + container gc-response-information { + uses instance-reference; } - list network-ips-v6 { - key "ip-address-ipv6"; - leaf ip-address-ipv6 { - description "List of assigned ipv6 addresses on a network"; - type inet:ipv6-address; - } + } + grouping tunnelxconn-response-information { + container tunnelxconn-response-information { + uses instance-reference; + } + } + grouping brg-response-information { + container brg-response-information { + uses instance-reference; + } + } + grouping connection-attachment-response-information { + container connection-attachment-response-information { + uses instance-reference; } - list network-macs { - key "mac-address"; - leaf mac-address { - description "List of network assignments for this VM (one per network)"; + } + grouping preload-model-information { + list preload-list { + key "preload-id preload-type"; + leaf preload-id { + description "vf-module-name or network name"; type string; + mandatory true; } - } - leaf floating-ip { - description "Floating ipv4 for VMs of a given type on this network"; - type inet:ip-address; - } - leaf floating-ip-v6 { - description "Floating ipv6 for VMs of a given type on this network"; - type inet:ipv6-address; - } - list interface-route-prefixes { - key "interface-route-prefix-cidr"; - leaf interface-route-prefix-cidr { - description "route prefixes (CIDRs) in ip/cidr format to be provided to MSO in vnf-topology as a list of static routes"; + leaf preload-type { + description "network or vf-module"; type string; mandatory true; } - leaf interface-route-prefix { - description "route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes"; - type inet:ip-address; - } + uses preload-data; } } - grouping vnf-parameters { - list vnf-parameters { - key "vnf-parameter-name"; - leaf vnf-parameter-name { - description "The name of an arbitrary instance-specific vnf-parameters"; - type string; - } - leaf vnf-parameter-value { - description "The value of an arbitrary instance-specific vnf-parameters "; - type string; - } + grouping preload-data { + container preload-data { + uses preload-vf-module-topology-information; + uses preload-network-topology-information; + uses preload-oper-status; + } + } + grouping preload-vf-module-topology-information { + container preload-vf-module-topology-information { + uses vnf-topology-identifier-structure; + uses vnf-resource-assignments; + uses vf-module-topology; } } - grouping network-topology-information { - container network-topology-information { - uses network-topology-identifier; + grouping preload-network-topology-information { + container preload-network-topology-information { + uses network-topology-identifier-structure; uses subnets; uses vpn-bindings; uses network-policy; uses route-table-reference; + uses host-routes; uses provider-network-information; } } - grouping network-topology-identifier { - container network-topology-identifier { - leaf service-type { - type string; - } - leaf network-name { - type string; - } - leaf network-role { - type string; - } - leaf network-type { - type string; - } - leaf network-technology { - type string; - } - } - } grouping subnets { list subnets { key "start-address"; @@ -1530,9 +2813,22 @@ module GENERIC-RESOURCE-API { leaf dhcp-end-address { type string; } + leaf addr-from-start { + description "Default is N"; + type enumeration { + enum "Y"; + enum "N"; + } + } leaf subnet-name { type string; } + leaf subnet-role { + type string; + } + leaf subnet-sequence { + type uint8; + } } } grouping vpn-bindings { @@ -1541,9 +2837,19 @@ module GENERIC-RESOURCE-API { leaf vpn-binding-id { type string; } + leaf vpn-name { + type string; + } leaf global-route-target { type string; } + leaf route-target-role { + type string; + } + leaf aic-zone { + description "AIC Zone the route target associated with"; + type string; + } } } grouping network-policy { @@ -1579,12 +2885,24 @@ module GENERIC-RESOURCE-API { leaf is-shared-network { type boolean; } - leaf is-external-network { + leaf is-external-network { type boolean; } } - grouping oper-status { - container oper-status { + grouping host-routes { + list host-routes { + key "route-prefix"; + leaf route-prefix { + type string; + } + leaf next-hop { + description "Could be ip-address or hostname or service-instance"; + type string; + } + } + } + grouping preload-oper-status { + container preload-oper-status { leaf order-status { type enumeration { enum "Active"; @@ -1596,23 +2914,11 @@ module GENERIC-RESOURCE-API { } } leaf last-action { - description "this is preload request actions"; type enumeration { - enum "VNFActivateRequest"; - enum "ChangeVNFActivateRequest"; - enum "VnfInstanceActivateRequest"; - enum "ChangeVnfInstanceActivateRequest"; - enum "VfModuleActivateRequest"; - enum "ChangeVfModuleActivateRequest"; - enum "DisconnectVNFRequest"; - enum "DisconnectVnfInstanceRequest"; - enum "DisconnectVfModuleRequest"; - enum "PreloadVNFRequest"; - enum "DeletePreloadVNFRequest"; - enum "PreloadVnfInstanceRequest"; - enum "DeletePreloadVnfInstanceRequest"; enum "PreloadVfModuleRequest"; enum "DeletePreloadVfModuleRequest"; + enum "PreloadNetworkRequest"; + enum "DeletePreloadNetworkRequest"; } } leaf last-svc-request-id { @@ -1642,6 +2948,35 @@ module GENERIC-RESOURCE-API { } } } + grouping preload-topology-response-body { + leaf svc-request-id { + type string; + } + leaf response-code { + type string; + } + leaf response-message { + type string; + } + leaf ack-final-indicator { + type string; + } + } + rpc generic-configuration-notification { + input { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses configuration-information; + uses topology-response-common; + leaf configuration-topology-link { + description "Returns URL to generic-configuration-topology "; + type string; + } + uses vnr-parameters; + uses vnf-vnr-rebuild-data; + } + } container services { uses service-model-infrastructure; } @@ -1722,6 +3057,59 @@ module GENERIC-RESOURCE-API { uses allotted-resource-status; } } + container connection-attachment-allotted-resources { + list connection-attachment-allotted-resource { + key "allotted-resource-id"; + leaf allotted-resource-id { + type string; + mandatory true; + } + container allotted-resource-data { + container allotted-resource-operation-information { + uses connection-attachment-operation-information; + } + uses connection-attachment-topology; + container connection-attachment-parameters { + uses param; + } + uses allotted-resource-oper-status; + } + uses allotted-resource-status; + } + } + container port-mirror-configurations { + list port-mirror-configuration { + key "configuration-id"; + leaf configuration-id { + type string; + mandatory true; + } + container configuration-data { + container configuration-operation-information { + uses port-mirror-topology-operation-information; + } + uses port-mirror-configuration-topology; + uses configuration-oper-status; + } + uses configuration-status; + } + } + container generic-configurations { + list gc-configuration { + key "configuration-id"; + leaf configuration-id { + type string; + mandatory true; + } + container configuration-data { + container configuration-operation-information { + uses gc-topology-operation-information; + } + uses configuration-oper-status; + } + uses configuration-status; + } + } rpc service-topology-operation { input { uses service-operation-information; @@ -1802,28 +3190,107 @@ module GENERIC-RESOURCE-API { uses service-response-information; } } - container preload-vnfs { + rpc policy-update-notify-operation { + input { + leaf policy-name { + type string; + mandatory true; + } + leaf version-id { + description "Map JSON versionNo to version-id"; + type string; + mandatory true; + } + leaf update-type { + type string; + mandatory true; + } + } + output { + leaf error-code { + type string; + } + leaf error-msg { + type string; + } + } + } + rpc getpathsegment-topology-operation { + input { + uses forwarding-path-operation-information; + } + output { + uses topology-response-common; + uses getpathsegment-response-information; + uses service-response-information; + } + } + rpc port-mirror-topology-operation { + input { + uses port-mirror-topology-operation-information; + } + output { + uses topology-response-common; + uses port-mirror-response-information; + uses service-response-information; + } + } + rpc generic-configuration-topology-operation { + input { + uses gc-topology-operation-information; + } + output { + uses topology-response-common; + uses gc-response-information; + uses service-response-information; + } + } + rpc vnf-get-resource-request { + input { + uses sdnc-request-header; + uses request-information; + uses service-information; + uses vnf-get-resource-request-input-data; + } + output { + container vnf-get-resource-response-information { + uses vnf-cloud-param; + } + } + } + container preload-information { uses preload-model-information; } - rpc preload-vnf-topology-operation { + rpc preload-vf-module-topology-operation { input { uses sdnc-request-header; uses request-information; - uses vnf-topology-information; + uses preload-vf-module-topology-information; } output { - uses vnf-topology-response-body; + uses preload-topology-response-body; } } rpc preload-network-topology-operation { input { uses sdnc-request-header; uses request-information; - uses network-topology-information; + uses preload-network-topology-information; } output { - uses vnf-topology-response-body; + uses preload-topology-response-body; } } + rpc connection-attachment-topology-operation { + input { + uses connection-attachment-operation-information; + } + output { + uses topology-response-common; + uses connection-attachment-response-information; + uses service-response-information; + } + } + } ////closes the module