Roll to Istanbul release version
[sdnc/northbound.git] / vnfapi / model / src / main / yang / VNF-API.yang
diff --git a/vnfapi/model/src/main/yang/VNF-API.yang b/vnfapi/model/src/main/yang/VNF-API.yang
deleted file mode 100755 (executable)
index 5a6a472..0000000
+++ /dev/null
@@ -1,932 +0,0 @@
-module VNF-API {
-
-    yang-version 1;
-
-    namespace "org:onap:sdnctl:vnf";
-
-    prefix vnfapi;
-
-    import ietf-inet-types { prefix "ietf"; revision-date "2013-07-15"; }
-
-    include "vnfsubmodule";
-
-    organization "ONAP";
-
-    contact
-    "Network Controller <onap-sdnc@lists.onap.org>";
-
-    description
-        "Defines API interface for VNF Orchestration";
-
-    revision "2015-07-20" {
-        description
-            "Initial draft";
-    }
-    // Last updated on 8-17-2016
-    grouping sdnc-request-header {
-        container sdnc-request-header {
-            leaf svc-request-id {
-                type string;
-            }
-            leaf svc-action {
-                type enumeration {
-                    enum "reserve";
-                    enum "assign";
-                    enum "activate";  // equal to commit
-                    enum "delete";    // equal to commit
-                    enum "changeassign";
-                    enum "changedelete";
-                    enum "rollback";
-                }
-            }
-            leaf svc-notification-url {
-                type string;
-            }
-        }
-    }
-
-    grouping request-information {
-        container request-information {
-            leaf request-id {
-                type string;
-            }
-            leaf request-action {
-                type enumeration {
-                    enum "PreloadNetworkRequest";
-                    enum "DeletePreloadNetworkRequest";
-                    enum "NetworkActivateRequest";
-                    enum "DisconnectNetworkRequest";
-                    enum "PreloadVNFRequest";
-                    enum "DeletePreloadVNFRequest";
-                    enum "VNFActivateRequest";
-                    enum "ChangeVNFActivateRequest";
-                    enum "DisconnectVNFRequest";
-                    enum "PreloadVnfInstanceRequest";
-                    enum "DeletePreloadVnfInstanceRequest";
-                    enum "VnfInstanceActivateRequest";
-                    enum "ChangeVnfInstanceActivateRequest";
-                    enum "DisconnectVnfInstanceRequest";
-                    enum "PreloadVfModuleRequest";
-                    enum "DeletePreloadVfModuleRequest";
-                    enum "VfModuleActivateRequest";
-                    enum "ChangeVfModuleActivateRequest";
-                    enum "DisconnectVfModuleRequest";
-                }
-            }
-            leaf request-sub-action {
-                type enumeration {
-                    enum "SUPP";
-                    enum "CANCEL";
-                    enum "RetainResource";
-                }
-            }
-            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-type {
-                type string;
-                description "AnAI subscription-service-type";
-            }
-            leaf service-id {
-                type string;
-            }
-            leaf service-instance-id {
-                type string;
-                description "A service instance that a VNF or a l3-network is associated with";
-            }
-            leaf subscriber-name {
-                type string;
-                description "AnAI global-customer-id";
-            }
-        }
-    }
-
-
-    grouping vnf-request-information {
-        container vnf-request-information {
-            leaf vnf-request-version {
-                type string;
-            }
-            leaf model-customization-uuid {
-                type string;
-                description "customized resource, i.e. vf-module, for use within a given service";
-            }
-            leaf use-preload {
-                type enumeration {
-                    enum "Y";
-                    enum "N";
-                }
-                description "orchestrate vf-module with full preload data or TOSCA lookup plus EIPAM automation";
-            }
-            leaf vnf-id {
-                type string;
-                description "vf-module-id";
-            }
-            leaf vnf-type {
-                type string;
-                description "vf-module-type";
-            }
-            leaf vnf-name {
-                type string;
-                description "vf-module-name";
-            }
-            leaf generic-vnf-id {
-                type string;
-                description "generic vnf-id";
-            }
-            leaf generic-vnf-type {
-                type string;
-                description "generic vnf type";
-            }
-            leaf generic-vnf-name {
-                type string;
-                description "generic vnf name";
-            }
-            leaf tenant {
-                type string;
-            }
-            leaf aic-clli {
-                type string;
-            }
-            leaf aic-cloud-region {
-                type string;
-                description "The AIC cloud region which maps to contrail versions";
-            }
-            list vnf-networks {
-                key network-role;
-                uses vnf-network;
-                description "Network List";
-            }
-        }
-    }
-
-    grouping network-request-information {
-        container network-request-information {
-            leaf network-id {
-                type string;
-            }
-            leaf network-type {
-                type string;
-            }
-            leaf network-name {
-                type string;
-            }
-            leaf tenant {
-                type string;
-            }
-            leaf aic-clli {
-                type string;
-            }
-            leaf aic-cloud-region {
-                type string;
-                description "The AIC cloud region which maps to contrail versions";
-            }
-        }
-    }
-
-    /***********************************************************/
-    /*               PRELOAD DATA                                 */
-    /***********************************************************/
-
-    container preload-vnfs {
-        uses preload-model-information;
-    }
-    grouping preload-model-information {
-        list vnf-preload-list {
-            key "vnf-name vnf-type";
-            leaf vnf-name {
-                type string;
-                description "vf-module-name";
-            }
-            leaf vnf-type {
-                type string;
-                description "vf-module-type";
-            }
-            uses preload-data;
-        }
-    }
-
-    // For preload networks it will have network-topology-information
-    // For preload vnfs, it will have vnf-topology-information
-    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 {
-                type string;
-                description "vf-module-name";
-            }
-            leaf vnf-type {
-                type string;
-                description "vf-module-type";
-            }
-            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 {
-                type string;
-                description "Orchestration Status from AAI - to be set by SDNC";
-            }
-            list availability-zones {
-                key "availability-zone";
-                ordered-by  user;
-                leaf availability-zone {
-                    type string;
-                    description "Openstack availability zone name or UUID";
-                }
-            }
-            list vnf-networks {
-                key network-role;
-                uses vnf-network;
-                uses sriov-vlan-filter-list;
-                description "Network List";
-            }
-            uses vm-topology;
-        }
-    }
-
-    grouping vm-topology {
-        list vnf-vms {
-            key vm-type;
-            leaf vm-type {
-                type string;
-            }
-            leaf vm-count {
-                type uint8;
-            }
-            list vm-names {
-                ordered-by user;
-                key "vm-name";
-                leaf vm-name {
-                    type string;
-                }
-                list vnfc-names {
-                    ordered-by user;
-                    key "vnfc-name";
-                    leaf vnfc-name {
-                        type string;
-                    }
-                    list vnfc-networks {
-                        key vnfc-network-role;
-                        uses vnfc-network;
-                    }
-                }
-            }
-            list vm-networks {
-                key network-role;
-                uses vm-network;
-                description "Network List";
-            }
-        }
-    }
-    
-    grouping vnfc-network {
-        leaf vnfc-network-role {
-            type string;
-        }
-        list vnfc-subnets {
-            key "vnfc-subnet-role";
-            leaf vnfc-subnet-role {
-                type string;
-        }
-        list vnfc-ipassignments {
-            key "vnfc-address-family";
-            leaf vnfc-address-family {
-                description "Subnet Version tells if this is IpV4 or IpV6";
-                type enumeration {
-                    enum "ipv4";
-                    enum "ipv6";
-                }
-            }
-            leaf vnfc-subnet-dhcp {
-                description "Indicator to use DHCP on this network for this VNFC. Unless dhcp=N, we wouldnt have any address, since they would not be sdnc assigned ";
-                type enumeration {
-                    enum "Y";
-                    enum "N";
-                }
-            }
-            leaf vnfc-subnet-ipcount {
-                description "The number of ip addresses to be assigned per vnfc for this subnet role";
-                type uint8;
-            }
-            list vnfc-subnet-ips {
-                key "vnfc-client-key";
-                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";
-                    }
-               }
-               leaf vnfc-address-ipv4 {
-                    description "Either IpV4 IP addresses or IpV6 IP addresses should be present,  but not both within one VnfcVersion. ";
-                    type ietf:ip-address;
-               }
-               leaf vnfc-address-ipv6 {
-                    description "Either IpV4 IP addresses or IpV6 IP addresses should be present,  but not both within one VnfcVersion.";
-                    type ietf:ipv6-address;
-               }
-            }
-         }
-      }
-   }
-
-    grouping vnf-network {
-        leaf network-role {
-            type string;
-            description "A Network Role to which a VNF must connect";
-        }
-        leaf network-role-tag {
-            type string;
-            description "The network-role that maps to the HEAT parameter {network-role}_net_id";
-        }
-        leaf network-name {
-            type string;
-            description "Unique Neutron UUID of an instance of the network role ";
-        }
-        leaf neutron-id {
-            type string;
-            description "Unique Neutron UUID of an instance of the network role ";
-        }
-        leaf network-id {
-            type string;
-            description "Unique Neutron UUID of an instance of the network role ";
-        }
-        leaf subnet-id {
-            type string;
-            description "ipv4 subnet UUID to be passed into the HEAT template for DHCP assignment";
-        }
-        leaf contrail-network-fqdn {
-            type string;
-            description "contrail network policy object";
-        }
-        leaf ipv6-subnet-id {
-            type string;
-            description "ipv6 subnet UUID to be passed into the HEAT template for DHCP assignment";
-        }
-        leaf ipv6-subnet-name {
-            type string;
-            description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";
-        }
-        leaf subnet-name {
-            type string;
-            description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";
-        }
-        leaf ipv4-key-subnet-id {
-            description "Unique SDN-C generated UUID of the ipv4 subnet.Key into A&AI instance.";
-            type string;
-        }
-        leaf ipv6-key-subnet-id {
-            description "Unique SDN-C generated UUID of the ipv6 subnet.Key into A&AI instance.";
-            type string;
-        }
-        leaf subnet-role {
-            type string;
-        }
-    }
-
-    grouping sriov-vlan-filter-list {
-        list sriov-vlan-filter-list {
-            key "sriov-vlan-filter";
-            leaf sriov-vlan-filter {
-                type string;
-            }
-        }
-    }
-
-    grouping vm-network {
-        leaf network-role {
-            type string;
-            description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";
-        }
-        leaf network-role-tag {
-            type string;
-            description "The network-role that maps to the HEAT parameter {network-role}_net_id";
-        }
-        leaf use-dhcp {
-            type enumeration {
-                  enum "Y";
-                  enum "N";
-            }
-            description "Indicator to use DHCP on this network for this VM";
-        }
-        leaf ip-count {
-            type uint8;
-            description "The number of ip addresses to be assigned per vm for this network role";
-        }
-        leaf ip-count-ipv6 {
-            type uint8;
-            description "The number of ipv6 addresses to be assigned per vm for this network role";
-        }
-        list network-ips {
-            ordered-by user;
-            key ip-address;
-            leaf ip-address {
-                type ietf:ip-address;
-                description "List of assigned ipv4 addresses on a network";
-            }
-        }
-        list network-ips-v6 {
-            ordered-by user;
-            key ip-address-ipv6;
-            leaf ip-address-ipv6 {
-                type ietf:ipv6-address;
-                description "List of assigned ipv6 addresses on a network";
-            }
-        }
-        list network-macs {
-            ordered-by user;
-            key mac-address;
-            leaf mac-address {
-                type string;
-                description "List of network assignments for this VM (one per network)";
-            }
-        }
-        leaf floating-ip {
-            type ietf:ip-address;
-            description "Floating ipv4 for VMs of a given type on this network";
-        }
-        leaf floating-ip-v6 {
-            type ietf:ipv6-address;
-            description "Floating ipv6 for VMs of a given type on this network";
-        }
-        list interface-route-prefixes {
-            ordered-by user;
-            key interface-route-prefix;
-            leaf interface-route-prefix {
-                type ietf:ip-address;
-                description "OBSOLETE, route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes";
-            }
-            leaf interface-route-prefix-cidr {
-                type string;
-                description "route prefixes (CIDRs) in ip/cidr format to be provided to MSO in vnf-topology as a list of static routes";
-            }
-        }
-    }
-
-    grouping vnf-parameters {
-        list vnf-parameters {
-            key vnf-parameter-name;
-            leaf vnf-parameter-name {
-                type string;
-                description "The name of an arbitrary instance-specific vnf-parameters";
-            }
-            leaf vnf-parameter-value {
-                type string;
-                description "The value of an arbitrary instance-specific vnf-parameters ";
-            }
-        }
-    }
-
-    grouping network-topology-information {
-        container network-topology-information {
-            uses network-topology-identifier;
-            uses subnets;
-            uses vpn-bindings;
-            uses network-policy;
-            uses route-table-reference;
-            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;
-            leaf start-address{
-                type ietf:ip-address;
-            }
-            leaf gateway-address{
-                type ietf: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 subnet-name {
-                type string;
-            }
-            leaf addr-from-start {
-                description "Default is N";
-                type enumeration {
-                    enum "Y";
-                    enum "N";
-                }
-            }
-            leaf subnet-role {
-                type string;
-            }
-            uses host-routes;
-        }
-    }
-
-    grouping vpn-bindings {
-        list vpn-bindings {
-            key vpn-binding-id;
-            leaf vpn-binding-id {
-                type string;
-            }
-            leaf global-route-target {
-                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-id";
-            leaf route-table-reference-id {
-                type string;
-            }
-            leaf route-table-reference-fqdn {
-                type string;
-            }
-        }
-    }
-
-    grouping provider-network-information {
-        container 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;
-            }
-        }
-    }
-
-    /***********************************************************/
-    /*               SERVICE_DATA                                */
-    /***********************************************************/
-    container vnfs {
-        uses vnf-model-infrastructure;
-    }
-    grouping vnf-model-infrastructure {
-        list vnf-list {
-            key vnf-id;
-            leaf vnf-id {
-                type string;
-                mandatory true;
-                description "vf-module-id";
-            }
-            uses service-data;
-            uses service-status;
-        }
-    }
-    grouping service-data {
-        container service-data {
-            uses vnf-configuration-information;
-            uses oper-status;
-        }
-    }
-    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 vnfsdn-action {
-                type enumeration {
-                    enum "PreloadNetworkRequest";
-                    enum "DeletePreloadNetworkRequest";
-                    enum "NetworkActivateRequest";
-                    enum "DisconnectNetworkRequest";
-                    enum "PreloadVNFRequest";
-                    enum "DeletePreloadVNFRequest";
-                    enum "VNFActivateRequest";
-                    enum "ChangeVNFActivateRequest";
-                    enum "DisconnectVNFRequest";
-                    enum "PreloadVnfInstanceRequest";
-                    enum "DeletePreloadVnfInstanceRequest";
-                    enum "VnfInstanceActivateRequest";
-                    enum "ChangeVnfInstanceActivateRequest";
-                    enum "DisconnectVnfInstanceRequest";
-                    enum "PreloadVfModuleRequest";
-                    enum "DeletePreloadVfModuleRequest";
-                    enum "VfModuleActivateRequest";
-                    enum "ChangeVfModuleActivateRequest";
-                    enum "DisconnectVfModuleRequest";
-                }
-            }
-            leaf vnfsdn-subaction {
-                type enumeration {
-                    enum "SUPP";
-                    enum "CANCEL";
-                    enum "RetainResource";
-                }
-            }
-            leaf rpc-name {
-                type enumeration {
-                    enum "vnf-topology-operation";
-                    enum "preload-vnf-topology-operation";
-                    enum "vnf-instance-topology-operation";
-                    enum "preload-vnf-instance-topology-operation";
-                    enum "vf-module-topology-operation";
-                    enum "preload-vf-module-topology-operation";
-                }
-            }
-            leaf rpc-action {
-                type enumeration {
-                    enum "reserve";
-                    enum "assign";
-                    enum "activate";  // equal to commit
-                    enum "delete";      // equal to commit
-                    enum "changeassign";
-                    enum "changedelete";
-                    enum "rollback";
-                }
-            }
-            leaf response-timestamp {
-                type string;
-            }
-        }
-    }
-    grouping vnf-configuration-information {
-        uses sdnc-request-header;
-        uses request-information;
-        uses service-information;
-        uses vnf-request-information;
-        uses vnf-topology;
-    }
-    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 vnf-information {
-        container vnf-information {
-            leaf vnf-service-type {
-                type string;
-            }
-            leaf vnf-id {
-                type string;
-                description "vf-module-id";
-            }
-        }
-    }
-
-    grouping network-information {
-        container network-information {
-            leaf network-service-type {
-                type string;
-            }
-            leaf network-id {
-                type string;
-            }
-        }
-    }
-
-
-    // Carried over from l3sdn and potentially not needed
-    grouping oper-status {
-        container 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 "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";
-                }
-            }
-            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 vnf-topology {
-        leaf vnf-id {
-            type string;
-            description "vf-module-id";
-        }
-        uses vnf-topology-information;
-    }
-
-
-    rpc vnf-topology-operation {
-        input {
-            uses sdnc-request-header;
-            uses request-information;
-            uses service-information;
-            uses vnf-request-information;
-        }
-        output {
-            uses vnf-topology-response-body;
-            uses vnf-information;
-            uses service-information;
-        }
-    }
-
-    rpc network-topology-operation {
-        input {
-            uses sdnc-request-header;
-            uses request-information;
-            uses service-information;
-            uses network-request-information;
-        }
-        output {
-            uses vnf-topology-response-body;
-            uses network-information;
-            uses service-information;
-        }
-    }
-
-    rpc preload-vnf-topology-operation {
-        input {
-            uses sdnc-request-header;
-            uses request-information;
-            uses vnf-topology-information;
-        }
-        output {
-            uses vnf-topology-response-body;
-        }
-    }
-
-    rpc preload-network-topology-operation {
-        input {
-            uses sdnc-request-header;
-            uses request-information;
-            uses network-topology-information;
-        }
-        output {
-            uses vnf-topology-response-body;
-        }
-    }
-}