aboutsummaryrefslogtreecommitdiffstats
path: root/generic-resource-api/model/yang/src/main/yang/GENERIC-RESOURCE-API.yang
diff options
context:
space:
mode:
Diffstat (limited to 'generic-resource-api/model/yang/src/main/yang/GENERIC-RESOURCE-API.yang')
-rw-r--r--generic-resource-api/model/yang/src/main/yang/GENERIC-RESOURCE-API.yang3452
1 files changed, 3452 insertions, 0 deletions
diff --git a/generic-resource-api/model/yang/src/main/yang/GENERIC-RESOURCE-API.yang b/generic-resource-api/model/yang/src/main/yang/GENERIC-RESOURCE-API.yang
new file mode 100644
index 00000000..660b2f83
--- /dev/null
+++ b/generic-resource-api/model/yang/src/main/yang/GENERIC-RESOURCE-API.yang
@@ -0,0 +1,3452 @@
+module GENERIC-RESOURCE-API {
+
+ namespace "org:onap:sdnc:northbound:generic-resource";
+
+ prefix generic-resource-api;
+
+ import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; }
+
+ import ietf-yang-types { prefix yang; }
+
+ revision "2017-08-24" {
+ description
+ "ONAP Amsterdam version";
+ }
+
+ grouping service-model-infrastructure {
+ list service {
+ key "service-instance-id";
+ leaf service-instance-id {
+ description "Keep as M";
+ type string;
+ mandatory true;
+ }
+ uses service-data;
+ uses service-status;
+ }
+ }
+ grouping service-data {
+ container service-data {
+ uses service-operation-information;
+ uses service-topology;
+ uses service-level-oper-status;
+ container networks {
+ list network {
+ key "network-id";
+ leaf network-id {
+ type string;
+ mandatory true;
+ }
+ container network-data {
+ uses network-operation-information;
+ uses network-topology;
+ container network-provided-allotted-resources {
+ leaf-list network-provided-ar-id {
+ description "List of allotted resources using capacity from this network";
+ type string;
+ ordered-by user;
+ }
+ }
+ uses network-level-oper-status;
+ }
+ }
+ }
+ container pnfs {
+ list pnf {
+ key "pnf-id";
+ leaf pnf-id {
+ type string;
+ mandatory true;
+ }
+ container pnf-data {
+ uses pnf-operation-information;
+ uses pnf-topology;
+ uses pnf-level-oper-status;
+ }
+ }
+ }
+ container vnfs {
+ list vnf {
+ key "vnf-id";
+ leaf vnf-id {
+ type string;
+ mandatory true;
+ }
+ 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";
+ type string;
+ ordered-by user;
+ }
+ }
+ uses vnf-level-oper-status;
+ container vf-modules {
+ list vf-module {
+ key "vf-module-id";
+ leaf vf-module-id {
+ type string;
+ mandatory true;
+ }
+ container vf-module-data {
+ uses vf-module-operation-information;
+ uses vf-module-topology;
+ uses vf-module-level-oper-status;
+ }
+ }
+ }
+ }
+ }
+ }
+ container consumed-allotted-resources {
+ list consumed-allotted-resource {
+ key "allotted-resource-id";
+ uses allotted-resource-info;
+ }
+ }
+ container provided-allotted-resources {
+ list provided-allotted-resource {
+ key "allotted-resource-id";
+ 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 {
+ container service-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 "configure";
+ enum "delete";
+ enum "unassign";
+ enum "deactivate";
+ enum "create";
+ }
+ }
+ leaf response-timestamp {
+ type string;
+ }
+ }
+ }
+ grouping service-operation-information {
+ uses sdnc-request-header;
+ uses request-information;
+ uses service-information;
+ uses service-request-input;
+ }
+ grouping service-request-input {
+ container service-request-input {
+ leaf service-instance-name {
+ type string;
+ }
+ container service-input-parameters {
+ uses param;
+ }
+ }
+ }
+ grouping service-topology {
+ container service-topology {
+ uses service-topology-identifier;
+ uses onap-model-information;
+ uses service-assignments;
+ uses service-parameters;
+ }
+ }
+ grouping service-topology-identifier {
+ container service-topology-identifier {
+ leaf service-instance-id {
+ description "repeated";
+ type string;
+ }
+ leaf service-type {
+ description "tag labeled subscription-service-type in the service-information input";
+ type string;
+ }
+ leaf service-id {
+ description "from MSO input on STO assign";
+ type string;
+ }
+ leaf service-instance-name {
+ description "optionally comes from service-request-input container or is assigned by sdn-c";
+ type string;
+ }
+ leaf global-customer-id {
+ type string;
+ }
+ }
+ }
+ grouping service-assignments {
+ container service-assignments {
+ }
+ }
+ grouping service-parameters {
+ container service-parameters {
+ list service-parameter {
+ key "service-parameter-name";
+ leaf service-parameter-name {
+ type string;
+ }
+ leaf service-parameter-value {
+ type string;
+ }
+ }
+ }
+ }
+ grouping service-level-oper-status {
+ container service-level-oper-status {
+ uses oper-status-data;
+ }
+ }
+ grouping network-operation-information {
+ uses sdnc-request-header;
+ uses request-information;
+ uses service-information;
+ uses network-information;
+ uses network-request-input;
+ }
+ grouping network-information {
+ container network-information {
+ leaf network-id {
+ type string;
+ }
+ 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;
+ }
+ }
+ grouping network-request-input {
+ container network-request-input {
+ leaf network-name {
+ type string;
+ }
+ uses region-identifier;
+ 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 {
+ container network-topology {
+ uses network-topology-identifier-structure;
+ uses region-identifier;
+ uses onap-model-information;
+ uses network-assignments;
+ uses network-parameters;
+ }
+ }
+ grouping network-topology-identifier-structure {
+ container network-topology-identifier-structure {
+ leaf network-id {
+ type string;
+ }
+ leaf network-name {
+ type string;
+ }
+ leaf network-role {
+ type string;
+ }
+ 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 {
+ type string;
+ }
+ leaf eipam-v4-address-plan {
+ 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 {
+ container network-assignments {
+ }
+ }
+ grouping network-parameters {
+ container network-parameters {
+ list network-parameter {
+ key "network-parameter-name";
+ leaf network-parameter-name {
+ type string;
+ }
+ leaf network-parameter-value {
+ type string;
+ }
+ }
+ }
+ }
+ 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;
+ }
+ }
+ container aggregate-route-policy {
+ leaf aggregate-route-policy-name {
+ type string;
+ }
+ leaf ipv4-aggregate-route-level {
+ type string;
+ }
+ leaf ipv6-aggregate-route-level {
+ 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;
+ }
+ }
+ grouping pnf-operation-information {
+ uses sdnc-request-header;
+ uses request-information;
+ uses service-information;
+ uses pnf-details;
+ uses pnf-request-input;
+ }
+ grouping pnf-details {
+ container pnf-details {
+ leaf pnf-id {
+ description "pnfId*Identifier of this Pnf information element. CORRELATIONID = PNF-NAME (A&AI)";
+ type string;
+ mandatory true;
+ }
+ leaf pnf-type {
+ description "pnfType (template)*Type of Resource. NEW type: PNF (pre-defined in SDC)";
+ type string;
+ }
+ leaf pnf-name {
+ type string;
+ }
+ uses onap-model-information;
+ }
+ }
+ grouping pnf-request-input {
+ container pnf-request-input {
+ leaf request-version {
+ description "keep this? e.g. 1702";
+ type string;
+ }
+ leaf pnf-name {
+ type string;
+ }
+ uses region-identifier;
+ container pnf-input-parameters {
+ uses param;
+ }
+ }
+ }
+ grouping pnf-topology {
+ container pnf-topology {
+ uses pnf-topology-identifier-structure;
+ uses region-identifier;
+ uses onap-model-information;
+ container pnf-parameters-data {
+ uses param;
+ }
+ leaf sdnc-generated-cloud-resources {
+ description "Indicate if source is sdnc generated cloud param.When true, the parameters are literal HEAT template parameter names;When false, the parameters need to be converted to HEAT format";
+ type boolean;
+ }
+ }
+ }
+ grouping pnf-topology-identifier-structure {
+ container pnf-topology-identifier-structure {
+ leaf pnf-id {
+ type string;
+ }
+ leaf pnf-type {
+ description "In preload tree, this label is used for the vf-module-type";
+ type string;
+ }
+ leaf pnf-name {
+ description "optionally comes from pnf-request-input container or is assigned by sdn-c";
+ type string;
+ }
+ }
+ }
+ grouping pnf-level-oper-status {
+ container pnf-level-oper-status {
+ uses oper-status-data;
+ }
+ }
+ grouping vnf-operation-information {
+ uses sdnc-request-header;
+ uses request-information;
+ uses service-information;
+ uses vnf-information;
+ uses vnf-request-input;
+ uses license-information;
+ }
+ grouping vnf-information {
+ container vnf-information {
+ leaf vnf-id {
+ type string;
+ }
+ leaf vnf-type {
+ type string;
+ }
+ leaf vnf-name {
+ type string;
+ }
+ uses onap-model-information;
+ }
+ }
+ grouping vnf-request-input {
+ container vnf-request-input {
+ leaf request-version {
+ type string;
+ }
+ leaf vnf-name {
+ type string;
+ }
+ uses region-identifier;
+ container vnf-networks {
+ list vnf-network {
+ key "network-role";
+ 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;
+ }
+ }
+ }
+ grouping vnf-topology {
+ container vnf-topology {
+ uses vnf-topology-identifier-structure;
+ uses region-identifier;
+ uses onap-model-information;
+ uses vnf-resource-assignments;
+ 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 {
+ container vnf-topology-identifier-structure {
+ leaf vnf-id {
+ type string;
+ }
+ leaf vnf-type {
+ description "In preload tree, this label is used for the vf-module-type";
+ type string;
+ }
+ leaf nf-type {
+ type string;
+ }
+ leaf nf-role {
+ type string;
+ }
+ leaf nf-function {
+ type string;
+ }
+ leaf nf-code {
+ description "used in vnf naming";
+ type string;
+ }
+ leaf vnf-name {
+ description "optionally comes from vnf-request-input container or is assigned by sdn-c";
+ type string;
+ }
+ }
+ }
+ grouping vnf-resource-assignments {
+ container vnf-resource-assignments {
+ leaf vnf-status {
+ description "Orchestration status from AAI - to be set by SDNC";
+ type string;
+ }
+ container availability-zones {
+ leaf-list availability-zone {
+ description "Openstack availability zone name or UUID";
+ type string;
+ ordered-by user;
+ }
+ leaf max-count {
+ description "From the TOSCA data. Indicates the largest availability zone count needed by any vf-module in the VNF.";
+ type uint8;
+ }
+ }
+ container vnf-networks {
+ list vnf-network {
+ key "network-role";
+ uses vnf-network-data;
+ }
+ }
+ }
+ }
+ grouping vnf-network-data {
+ leaf network-role {
+ description "A Network Role to which a VNF must connect";
+ type string;
+ }
+ leaf network-name {
+ description "Unique Neutron UUID of an instance of the network role ";
+ type string;
+ }
+ leaf neutron-id {
+ description "Unique Neutron UUID of an instance of the network role ";
+ type string;
+ }
+ leaf network-id {
+ description "Unique Neutron UUID of an instance of the network role ";
+ type string;
+ }
+ leaf contrail-network-fqdn {
+ description "contrail network policy object";
+ type string;
+ }
+ container subnets-data {
+ list subnet-data {
+ 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;
+ }
+ leaf subnet-id {
+ 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 {
+ uses oper-status-data;
+ }
+ }
+ grouping vf-module-operation-information {
+ uses sdnc-request-header;
+ uses request-information;
+ uses service-information;
+ uses vnf-information;
+ uses vf-module-information;
+ uses vf-module-request-input;
+ }
+ grouping vf-module-information {
+ container vf-module-information {
+ leaf vf-module-id {
+ type string;
+ }
+ leaf vf-module-type {
+ type string;
+ }
+ leaf from-preload {
+ description "Indicates if source is preload data";
+ type boolean;
+ }
+ uses onap-model-information;
+ }
+ }
+ grouping vf-module-request-input {
+ container vf-module-request-input {
+ leaf request-version {
+ description "keep this?";
+ type string;
+ }
+ leaf vf-module-name {
+ type string;
+ }
+ uses region-identifier;
+ container vf-module-input-parameters {
+ uses param;
+ }
+ }
+ }
+ grouping vf-module-topology {
+ container vf-module-topology {
+ uses vf-module-topology-identifier;
+ uses region-identifier;
+ uses onap-model-information;
+ uses vf-module-assignments;
+ 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 {
+ container vf-module-topology-identifier {
+ leaf vf-module-id {
+ description "vf-module id";
+ type string;
+ }
+ leaf vf-module-name {
+ description "vf-module-name";
+ type string;
+ }
+ leaf vf-module-type {
+ type string;
+ }
+ }
+ }
+ grouping vf-module-assignments {
+ container vf-module-assignments {
+ leaf vf-module-status {
+ description "Orchestration status from AAI - to be set by SDNC";
+ type string;
+ }
+ container vms {
+ list vm {
+ key "vm-type";
+ 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 {
+ leaf vm-type {
+ 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;
+ }
+ leaf vm-type-tag {
+ description "from tosca data on vfc";
+ type string;
+ }
+ leaf vm-count {
+ type uint8;
+ }
+ container vm-names {
+ leaf-list vm-name {
+ 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 {
+ key "network-role";
+ uses vm-network-data;
+ }
+ }
+ }
+ 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";
+ type string;
+ mandatory true;
+ }
+ leaf network-role-tag {
+ 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";
+ 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 string;
+ ordered-by user;
+ }
+ }
+ }
+ }
+ container mac-addresses {
+ leaf-list mac-address {
+ description "List of network assignments for this vm-type";
+ type string;
+ 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;
+ }
+ }
+ container interface-route-prefixes {
+ leaf-list interface-route-prefix {
+ description "ordered-by: user";
+ type string;
+ ordered-by user;
+ }
+ }
+ container sriov-parameters {
+ container heat-vlan-filters {
+ leaf-list heat-vlan-filter {
+ type string;
+ ordered-by user;
+ }
+ }
+ container application-tags {
+ container c-tags {
+ leaf-list c-tag {
+ type string;
+ ordered-by user;
+ }
+ }
+ container s-tags {
+ leaf-list s-tag {
+ type string;
+ ordered-by user;
+ }
+ }
+ }
+ }
+ 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 {
+ uses oper-status-data;
+ }
+ }
+ grouping allotted-resource-info {
+ leaf allotted-resource-id {
+ type string;
+ }
+ leaf allotted-resource-type {
+ description "Not an enum, but expected values are contrail-route and security-zone.";
+ type string;
+ }
+ leaf allotted-resource-pointer {
+ description "Pointer to the allotted-resources topology";
+ type string;
+ }
+ }
+ grouping forwarding-path-operation-information {
+ uses sdnc-request-header;
+ uses request-information;
+ uses service-information;
+ 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;
+ }
+ }
+ }
+ 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 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 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 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 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 nfc-naming-code {
+ description "Set to nfc-naming-code from A&AI";
+ type string;
+ mandatory true;
+ }
+ leaf configuration-id {
+ type string;
+ mandatory true;
+ }
+ leaf group-type {
+ description " port-mirror-source or port-mirror-dest";
+ type string;
+ }
+ 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 {
+ type string;
+ }
+ leaf vserver-name {
+ type string;
+ }
+ 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;
+ }
+ }
+ }
+ grouping security-zone-operation-information {
+ uses sdnc-request-header;
+ uses request-information;
+ uses service-information;
+ uses allotted-resource-information;
+ uses security-zone-request-input;
+ }
+ grouping security-zone-request-input {
+ container security-zone-request-input {
+ leaf vlan-tag {
+ type string;
+ }
+ leaf trusted-network-role {
+ description "In the case of vIPR, this is the landing networks network-role; used in naming";
+ type string;
+ }
+ leaf untrusted-network-role {
+ description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";
+ type string;
+ }
+ container security-zone-input-parameters {
+ uses param;
+ }
+ }
+ }
+ grouping security-zone-topology {
+ container security-zone-topology {
+ uses allotted-resource-identifiers;
+ uses onap-model-information;
+ uses security-zone-assignments;
+ container security-zone-parameters {
+ uses param;
+ }
+ }
+ }
+ grouping security-zone-assignments {
+ container security-zone-assignments {
+ leaf trusted-network-role {
+ description "In the case of vIPR, this is the landing networks network-role; used in naming";
+ type string;
+ }
+ leaf security-zone-name-trusted {
+ type string;
+ }
+ leaf untrusted-network-role {
+ description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";
+ type string;
+ }
+ leaf security-zone-name-untrusted {
+ type string;
+ }
+ leaf security-zone-service-instance-id {
+ description "Will be the same as the parent-service-instance-id";
+ type string;
+ }
+ leaf security-zone-vnf-id {
+ description "Selected by SDNC from the security-zone-service-instance-id";
+ type string;
+ }
+ leaf vlan-tag {
+ type string;
+ }
+ }
+ }
+ 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;
+ uses service-information;
+ uses allotted-resource-information;
+ uses tunnelxconn-request-input;
+ }
+ grouping tunnelxconn-request-input {
+
+ container tunnelxconn-request-input {
+ leaf brg-wan-mac-address {
+ type string;
+ }
+ }
+ }
+ grouping tunnelxconn-topology {
+ container tunnelxconn-topology {
+ uses allotted-resource-identifiers;
+ uses onap-model-information;
+ uses tunnelxconn-assignments;
+ container tunnelxconn-parameters {
+ uses param;
+ }
+ }
+ }
+ grouping tunnelxconn-assignments {
+ container tunnelxconn-assignments {
+ leaf vni {
+ description "The Network Controller will assign a VNI value from the associated vGMUX VNI pool";
+ type string;
+ }
+ leaf vgmux-bearer-ip {
+ description "The Network Controller will look up the vgmux bearer ip from the vgmux vf module";
+ type inet:ip-address;
+ }
+ leaf vgmux-lan-ip {
+ description "The Network Controller will look up the vgmux lan ip from the vgmux vg module";
+ type inet:ip-address;
+ }
+ leaf vg-ip {
+ description "The Network Controller will assign the VG IP address from local inventory";
+ type inet:ip-address;
+ }
+ }
+ }
+ grouping brg-operation-information {
+ uses sdnc-request-header;
+ uses request-information;
+ uses service-information;
+ uses allotted-resource-information;
+ uses brg-request-input;
+ }
+ grouping brg-request-input {
+ container brg-request-input {
+ leaf vgmux-bearer-ip {
+ type inet:ip-address;
+ }
+ leaf vni {
+ type string;
+ }
+ leaf brg-wan-mac-address {
+ type string;
+ }
+ }
+ }
+ grouping brg-topology {
+ container brg-topology {
+ uses allotted-resource-identifiers;
+ uses onap-model-information;
+ uses brg-assignments;
+ container brg-parameters {
+ uses param;
+ }
+ }
+ }
+ grouping brg-assignments {
+ container brg-assignments {
+ leaf vbrg-wan-ip {
+ type inet:ip-address;
+ }
+ }
+ }
+ 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 {
+ type string;
+ }
+ leaf allotted-resource-type {
+ description "Not an enum, but expected values are contrail-route and security-zone.";
+ type string;
+ }
+ leaf parent-service-instance-id {
+ description "Service-instance-id of the parent service to which this allotted resource belongs.";
+ type string;
+ }
+ uses onap-model-information;
+ }
+ }
+ grouping allotted-resource-identifiers {
+ container allotted-resource-identifiers {
+ leaf allotted-resource-id {
+ type string;
+ }
+ leaf allotted-resource-name {
+ description "For a contrail-route, the network policy name.";
+ type string;
+ }
+ leaf allotted-resource-type {
+ description "(Added in draft 32)Expected to be contrail-route or security-zone.";
+ type string;
+ }
+ leaf consuming-service-instance-id {
+ description "The service-instance-id of the consuming service of this allotted resource";
+ type string;
+ }
+ leaf parent-service-instance-id {
+ description "Service-instance-id of the parent service to which this allotted resource belongs.";
+ type string;
+ }
+ }
+ }
+ grouping allotted-resource-oper-status {
+ container allotted-resource-oper-status {
+ uses oper-status-data;
+ }
+ }
+ grouping allotted-resource-status {
+ container allotted-resource-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 "delete";
+ enum "unassign";
+ enum "deactivate";
+ }
+ }
+ leaf response-timestamp {
+ type string;
+ }
+ }
+ }
+ 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";
+ type string;
+ }
+ leaf response-code {
+ description "a success code or an defined error codeKeep as M";
+ type string;
+ }
+ leaf response-message {
+ description "message included for error code";
+ type string;
+ }
+ leaf ack-final-indicator {
+ description "Expected to be Y or N.";
+ type string;
+ }
+ }
+ grouping sdnc-request-header {
+ container sdnc-request-header {
+ leaf svc-request-id {
+ description "Uniquely generated by calling system (e.g. MSO or SDN-GP)";
+ type string;
+ }
+ leaf svc-action {
+ description "This is the rpcAction";
+ type enumeration {
+ enum "reserve";
+ enum "assign";
+ enum "activate";
+ enum "delete";
+ enum "changeassign";
+ enum "changedelete";
+ enum "rollback";
+ enum "deactivate";
+ enum "unassign";
+ enum "create";
+ enum "disable";
+ enum "enable";
+ enum "update";
+ enum "reoptimize";
+ enum "rebuild";
+ }
+ }
+ leaf svc-notification-url {
+ description "Contains URL for asynchronous response";
+ type string;
+ }
+ }
+ }
+ grouping request-information {
+ container request-information {
+ leaf request-id {
+ description "Request ID generated upstream of MSO";
+ type string;
+ }
+ leaf request-action {
+ description "still need to work Disconnect";
+ type enumeration {
+ enum "CreateNetworkInstance";
+ enum "ActivateNetworkInstance";
+ enum "DeActivateNetworkInstance";
+ enum "CreateServiceInstance";
+ enum "DeleteServiceInstance";
+ enum "DeleteNetworkInstance";
+ enum "CreateVnfInstance";
+ enum "ActivateVnfInstance";
+ enum "DeleteVnfInstance";
+ enum "CreatePnfInstance";
+ enum "ActivatePnfInstance";
+ enum "DeletePnfInstance";
+ enum "CreateVfModuleInstance";
+ 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 "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";
+ enum "CreateAccessConnectivityInstance";
+ enum "DeleteAccessConnectivityInstance";
+ enum "CreateInternetProfileInstance";
+ enum "ChangeInternetProfileInstance";
+ enum "DeleteInternetProfileInstance";
+ enum "CreateSOTNUnderlayInstance";
+ enum "ActivateSOTNUnderlayInstance";
+ enum "DeactivateSOTNUnderlayInstance";
+ enum "DeleteSOTNUnderlayInstance";
+ enum "CreateSOTNUniInstance";
+ enum "ActivateSOTNUniInstance";
+ enum "DeactivateSOTNUniInstance";
+ enum "DeleteSOTNUniInstance";
+ enum "CreateSOTNL2VpnInstance";
+ enum "ActivateSOTNL2VpnInstance";
+ enum "DeactivateSOTNL2VpnInstance";
+ enum "DeleteSOTNL2VpnInstance";
+ }
+ }
+ leaf source {
+ type string;
+ }
+ leaf notification-url {
+ type string;
+ }
+ leaf order-number {
+ type string;
+ }
+ leaf order-version {
+ type string;
+ }
+ }
+ }
+ grouping service-information {
+ container service-information {
+ leaf service-id {
+ description "This maps to the product-family-id in A&AI";
+ type string;
+ }
+ leaf subscription-service-type {
+ description "used to reference a&ai subscription-service-type. For example, we show as vIPR-ATM in example.";
+ type string;
+ }
+ uses onap-model-information;
+ leaf service-instance-id {
+ type string;
+ }
+ leaf global-customer-id {
+ description "need for put of data to AnAI (MSO provides)";
+ type string;
+ }
+ leaf subscriber-name {
+ description "Would not be expected for vIPR-ATM or mobility services.";
+ type string;
+ }
+ }
+ }
+ grouping onap-model-information {
+ container onap-model-information {
+ leaf model-invariant-uuid {
+ description "identifies the invariant uuid for this service or resource";
+ type string;
+ }
+ leaf model-customization-uuid {
+ description "customized resource for use within a given service.Would not be present at the service level but would be present for the resource level";
+ type string;
+ }
+ leaf model-uuid {
+ description "identifies the uuid for this service or resource, which is version specific";
+ type string;
+ }
+ leaf model-version {
+ type string;
+ }
+ leaf model-name {
+ type string;
+ }
+ }
+ }
+ grouping region-identifier {
+ leaf tenant {
+ type string;
+ }
+ leaf aic-cloud-region {
+ 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;
+ }
+ }
+ grouping param {
+ list param {
+ key "name";
+ leaf name {
+ type string;
+ }
+ 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;
+ }
+ leaf payload {
+ 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 {
+ leaf instance-id {
+ type string;
+ }
+ leaf object-path {
+ description "restconf retrieval path to this particular objectE.g. restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/service-topology/";
+ type string;
+ }
+ }
+ grouping oper-status-data {
+ leaf order-status {
+ description "TBD - do we need Request failed statuses? RequestFailed | InProgressTimeout";
+ type enumeration {
+ enum "Active";
+ enum "PendingAssignment";
+ enum "PendingCreate";
+ enum "PendingUpdate";
+ enum "PendingDelete";
+ enum "Deleted";
+ enum "Created";
+ }
+ }
+ leaf last-rpc-action {
+ type enumeration {
+ enum "assign";
+ enum "activate";
+ enum "delete";
+ enum "unassign";
+ enum "deactivate";
+ enum "create";
+ enum "changeassign";
+ enum "reoptimize";
+ }
+ }
+ leaf last-action {
+ description "should be list of possible request-actions";
+ type enumeration {
+ enum "CreateNetworkInstance";
+ enum "ActivateNetworkInstance";
+ enum "DeActivateNetworkInstance";
+ enum "DeleteNetworkInstance";
+ enum "CreateServiceInstance";
+ enum "DeleteServiceInstance";
+ enum "CreateVnfInstance";
+ enum "ActivateVnfInstance";
+ enum "DeleteVnfInstance";
+ enum "CreatePnfInstance";
+ enum "ActivatePnfInstance";
+ enum "DeletePnfInstance";
+ enum "CreateVfModuleInstance";
+ 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";
+ enum "CreateAccessConnectivityInstance";
+ enum "DeleteAccessConnectivityInstance";
+ enum "CreateInternetProfileInstance";
+ enum "ChangeInternetProfileInstance";
+ enum "DeleteInternetProfileInstance";
+ enum "CreateSOTNUnderlayInstance";
+ enum "ActivateSOTNUnderlayInstance";
+ enum "DeactivateSOTNUnderlayInstance";
+ enum "DeleteSOTNUnderlayInstance";
+ enum "CreateSOTNUniInstance";
+ enum "ActivateSOTNUniInstance";
+ enum "DeactivateSOTNUniInstance";
+ enum "DeleteSOTNUniInstance";
+ enum "CreateSOTNL2VpnInstance";
+ enum "ActivateSOTNL2VpnInstance";
+ enum "DeactivateSOTNL2VpnInstance";
+ enum "DeleteSOTNL2VpnInstance";
+ }
+ }
+ leaf last-svc-request-id {
+ description "Not currently populated in service data.";
+ type string;
+ }
+ leaf last-order-status {
+ 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 pnf-response-information {
+ container pnf-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 getpathsegment-response-information {
+ container getpathsegment-response-information {
+ uses instance-reference;
+ }
+ }
+ grouping port-mirror-response-information {
+ container port-mirror-response-information {
+ uses instance-reference;
+ }
+ }
+ grouping gc-response-information {
+ container gc-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 connection-attachment-response-information {
+ container connection-attachment-response-information {
+ uses instance-reference;
+ }
+ }
+ 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 preload-type {
+ description "network or vf-module";
+ type string;
+ mandatory true;
+ }
+ uses preload-data;
+ }
+ }
+ 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 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 subnets {
+ list subnets {
+ key "start-address";
+ leaf start-address {
+ type inet:ip-address;
+ }
+ leaf gateway-address {
+ type inet:ip-address;
+ }
+ leaf cidr-mask {
+ type string;
+ }
+ leaf ip-version {
+ type string;
+ }
+ leaf dhcp-enabled {
+ type enumeration {
+ enum "Y";
+ enum "N";
+ }
+ }
+ leaf dhcp-start-address {
+ type string;
+ }
+ 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 {
+ list vpn-bindings {
+ key "vpn-binding-id";
+ 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 {
+ list network-policy {
+ key "network-policy-fqdn";
+ leaf network-policy-fqdn {
+ type string;
+ }
+ leaf network-policy-id {
+ type string;
+ }
+ }
+ }
+ grouping route-table-reference {
+ list route-table-reference {
+ key "route-table-reference-fqdn";
+ leaf route-table-reference-fqdn {
+ type string;
+ mandatory true;
+ }
+ leaf route-table-reference-id {
+ type string;
+ }
+ }
+ }
+ grouping provider-network-information {
+ leaf physical-network-name {
+ type string;
+ }
+ leaf is-provider-network {
+ type boolean;
+ }
+ leaf is-shared-network {
+ type boolean;
+ }
+ leaf is-external-network {
+ type boolean;
+ }
+ }
+ 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";
+ enum "PendingAssignment";
+ enum "PendingCreate";
+ enum "PendingUpdate";
+ enum "PendingDelete";
+ enum "Deleted";
+ }
+ }
+ leaf last-action {
+ type enumeration {
+ enum "PreloadVfModuleRequest";
+ enum "DeletePreloadVfModuleRequest";
+ enum "PreloadNetworkRequest";
+ enum "DeletePreloadNetworkRequest";
+ }
+ }
+ leaf last-svc-request-id {
+ type string;
+ }
+ leaf last-order-status {
+ type enumeration {
+ enum "Active";
+ enum "PendingAssignment";
+ enum "PendingCreate";
+ enum "PendingUpdate";
+ enum "PendingDelete";
+ enum "Deleted";
+ }
+ }
+ leaf create-timestamp {
+ type string;
+ }
+ leaf modify-timestamp {
+ type string;
+ }
+ leaf maintenance-indicator {
+ type enumeration {
+ enum "Y";
+ enum "N";
+ }
+ }
+ }
+ }
+ 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;
+ }
+ container contrail-route-allotted-resources {
+ list contrail-route-allotted-resource {
+ key "allotted-resource-id";
+ leaf allotted-resource-id {
+ type string;
+ mandatory true;
+ }
+ container allotted-resource-data {
+ container allotted-resource-operation-information {
+ uses contrail-route-operation-information;
+ }
+ uses contrail-route-topology;
+ uses allotted-resource-oper-status;
+ }
+ uses allotted-resource-status;
+ }
+ }
+ container security-zone-allotted-resources {
+ list security-zone-allotted-resource {
+ key "allotted-resource-id";
+ leaf allotted-resource-id {
+ type string;
+ mandatory true;
+ }
+ container allotted-resource-data {
+ container allotted-resource-operation-information {
+ uses security-zone-operation-information;
+ }
+ uses security-zone-topology;
+ container security-zone-parameters {
+ uses param;
+ }
+ uses allotted-resource-oper-status;
+ }
+ uses allotted-resource-status;
+ }
+ }
+ container tunnelxconn-allotted-resources {
+ list tunnelxconn-allotted-resource {
+ key "allotted-resource-id";
+ leaf allotted-resource-id {
+ type string;
+ mandatory true;
+ }
+ container allotted-resource-data {
+ container allotted-resource-operation-information {
+ uses tunnelxconn-operation-information;
+ }
+ uses tunnelxconn-topology;
+ container tunnelxconn-parameters {
+ uses param;
+ }
+ uses allotted-resource-oper-status;
+ }
+ uses allotted-resource-status;
+ }
+ }
+ container brg-allotted-resources {
+ list brg-allotted-resource {
+ key "allotted-resource-id";
+ leaf allotted-resource-id {
+ type string;
+ mandatory true;
+ }
+ container allotted-resource-data {
+ container allotted-resource-operation-information {
+ uses brg-operation-information;
+ }
+ uses brg-topology;
+ container brg-parameters {
+ uses param;
+ }
+ uses allotted-resource-oper-status;
+ }
+ 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;
+ }
+ output {
+ uses topology-response-common;
+ uses service-response-information;
+ }
+ }
+ rpc network-topology-operation {
+ input {
+ uses network-operation-information;
+ }
+ output {
+ uses topology-response-common;
+ uses network-response-information;
+ uses service-response-information;
+ }
+ }
+ rpc vnf-topology-operation {
+ input {
+ uses vnf-operation-information;
+ }
+ output {
+ uses topology-response-common;
+ uses vnf-response-information;
+ uses service-response-information;
+ }
+ }
+ rpc vf-module-topology-operation {
+ input {
+ uses vf-module-operation-information;
+ }
+ output {
+ uses topology-response-common;
+ uses vf-module-response-information;
+ uses vnf-response-information;
+ uses service-response-information;
+ }
+ }
+ rpc pnf-topology-operation {
+ input {
+ uses pnf-operation-information;
+ }
+ output {
+ uses topology-response-common;
+ uses pnf-response-information;
+ uses service-response-information;
+ }
+ }
+ rpc contrail-route-topology-operation {
+ input {
+ uses contrail-route-operation-information;
+ }
+ output {
+ uses topology-response-common;
+ uses contrail-route-response-information;
+ uses service-response-information;
+ }
+ }
+ rpc security-zone-topology-operation {
+ input {
+ uses security-zone-operation-information;
+ }
+ output {
+ uses topology-response-common;
+ uses security-zone-response-information;
+ uses service-response-information;
+ }
+ }
+ rpc tunnelxconn-topology-operation {
+ input {
+ uses tunnelxconn-operation-information;
+ }
+ output {
+ uses topology-response-common;
+ uses tunnelxconn-response-information;
+ uses service-response-information;
+ }
+ }
+ rpc brg-topology-operation {
+ input {
+ uses brg-operation-information;
+ }
+ output {
+ uses topology-response-common;
+ uses brg-response-information;
+ uses service-response-information;
+ }
+ }
+ 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-vf-module-topology-operation {
+ input {
+ uses sdnc-request-header;
+ uses request-information;
+ uses preload-vf-module-topology-information;
+ }
+ output {
+ uses preload-topology-response-body;
+ }
+ }
+ rpc preload-network-topology-operation {
+ input {
+ uses sdnc-request-header;
+ uses request-information;
+ uses preload-network-topology-information;
+ }
+ output {
+ 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