submodule vnfsubmodule { belongs-to VNF-API { prefix "vnfapi"; } // Last updated on 8-17-2016 /********************************************/ /* vnf-instance */ /********************************************/ grouping vnf-instance-request-information { container vnf-instance-request-information { leaf request-version { type string; } uses vnf-instance-topology-identifier; uses region-identifier; list vnf-networks { key network-role; uses vnfapi:vnf-network; description "List of vnf networks to override preload"; } } } grouping region-identifier { leaf tenant { type string; } leaf aic-cloud-region { type string; description "The AIC cloud region which maps to contrail versions"; } } /***********************************************************/ /* PRELOAD DATA - vnf-instance */ /***********************************************************/ container preload-vnf-instances { uses preload-vnf-instance-model-information; } grouping preload-vnf-instance-model-information { list vnf-instance-preload-list { key "vnf-instance-name vnf-model-id"; leaf vnf-instance-name { type string; description "vnf-instance-name, aka generic-vnf-name"; } leaf vnf-model-id { type string; description "vnf-model-id, aka generic-vnf-type"; } uses vnf-instance-preload-data; } } grouping vnf-instance-preload-data { container vnf-instance-preload-data { uses vnf-instance-topology-information; uses vnfapi:oper-status; } } grouping vnf-instance-topology-information { container vnf-instance-topology-information { uses vnf-instance-identifiers; uses vnfapi:service-information; uses vnfapi:vnf-assignments; uses vnfapi:vnf-parameters; } } // This is used by MSO request for assign,rollback,activate,delete, etc grouping vnf-instance-topology-identifier { leaf vnf-instance-name { type string; } leaf vnf-model-id { type string; } leaf vnf-instance-id { type string; } } // container used in preload identifiers grouping vnf-instance-identifiers { container vnf-instance-identifiers { uses vnf-instance-topology-identifier; } } /***********************************************************/ /* SERVICE_DATA - vnf-instance */ /***********************************************************/ container vnf-instances { uses vnf-instance-model-infrastructure; } grouping vnf-instance-model-infrastructure { list vnf-instance-list { key vnf-instance-id; leaf vnf-instance-id { type string; mandatory true; description "generic-vnf-id"; } uses vnf-instance-service-data; uses vnfapi:service-status; } } grouping vnf-instance-service-data { container vnf-instance-service-data { uses vnf-instance-configuration-information; uses vf-module-relationship-list; uses vnfapi:oper-status; } } grouping vnf-instance-configuration-information { uses vnfapi:sdnc-request-header; uses vnfapi:request-information; uses vnfapi:service-information; uses vnf-instance-request-information; uses vnf-instance-topology; } grouping vf-module-relationship-list { list vf-module-relationship-list { key "vf-module-id"; leaf vf-module-id { type string; description "vf-module-id"; } } } grouping vnf-instance-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-instance-information { container vnf-instance-information { leaf vnf-instance-id { type string; description "vnf-instance-id"; } } } grouping vnf-instance-topology { leaf vnf-instance-id { type string; description "vnf-instance-id"; } uses vnf-instance-topology-information; } rpc vnf-instance-topology-operation { input { uses sdnc-request-header; uses request-information; uses service-information; uses vnf-instance-request-information; } output { uses vnf-instance-topology-response-body; uses vnf-instance-information; uses service-information; } } rpc preload-vnf-instance-topology-operation { input { uses sdnc-request-header; uses request-information; uses vnf-instance-topology-information; } output { uses vnf-instance-topology-response-body; } } /********************************************/ /* vf-module */ /********************************************/ grouping vf-module-request-information { container vf-module-request-information { uses vnf-instance-topology-identifier; uses region-identifier; uses vf-module-topology-identifier; } } grouping vf-module-identifiers { container vf-module-identifiers { uses vf-module-topology-identifier; } } grouping vf-module-topology-identifier { leaf vf-module-id { type string; description "vf-module id"; } leaf vf-module-name { type string; description "vf-module-name"; } leaf vf-module-model-id { type string; description "vf-module-type"; } } /***********************************************************/ /* PRELOAD DATA - vfmodule */ /***********************************************************/ container preload-vf-modules { uses preload-vf-module-model-information; } grouping preload-vf-module-model-information { list vf-module-preload-list { key "vf-module-name vf-module-model-id"; leaf vf-module-name { type string; description "vf-module-name"; } leaf vf-module-model-id { type string; description "vf-module-type"; } uses vf-module-preload-data; } } grouping vf-module-preload-data { container vf-module-preload-data { uses vf-module-topology-information; uses vnfapi:oper-status; } } grouping vf-module-topology-information { container vf-module-topology-information { uses vf-module-identifiers; uses vnfapi:vnf-assignments; uses vnfapi:vnf-parameters; } } /***********************************************************/ /* SERVICE_DATA - vfmodule */ /***********************************************************/ container vf-modules { uses vf-module-model-infrastructure; } grouping vf-module-model-infrastructure { list vf-module-list { key vf-module-id; leaf vf-module-id { type string; mandatory true; description "vf-module-id"; } uses vf-module-service-data; uses vnfapi:service-status; } } grouping vf-module-service-data { container vf-module-service-data { uses vf-module-configuration-information; uses vnfapi:oper-status; } } grouping vf-module-configuration-information { uses vnfapi:sdnc-request-header; uses vnfapi:request-information; uses vnfapi:service-information; uses vf-module-request-information; uses vf-module-topology; } grouping vf-module-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 vf-module-information { container vf-module-information { leaf vf-module-id { type string; description "vf-module-id"; } } } grouping vf-module-topology { leaf vf-module-id { type string; description "vf-module-id"; } uses vf-module-topology-information; } rpc vf-module-topology-operation { input { uses sdnc-request-header; uses request-information; uses service-information; uses vf-module-request-information; } output { uses vf-module-topology-response-body; uses vf-module-information; uses service-information; } } rpc preload-vf-module-topology-operation { input { uses sdnc-request-header; uses request-information; uses vf-module-topology-information; } output { uses vf-module-topology-response-body; } } }