NFVO Northbound SDK

An SDK is available if you want to access the NFVO in your Java application.

Import the Open Baton SDK

The Open Baton SDK artifacts are published on Maven Central. You can include them into your project by adding the following to your maven pom.xml file:


If you use gradle, add this to your build.gradle file:

repositories {
  * Only needed for openbaton snapshots dependencies
  maven {
    url ''

dependencies {
  compile 'org.openbaton:sdk:4.0.0'

Using the Open Baton SDK

The NFVORequestor is the main class of the SDK. Objects of this class can be used to obtain various agent objects for working with the corresponding Open Baton components (e.g. Network Service Descriptors, VIM Instances, etc.).
The NFVORequestor's constructor expects several parameters that are related to the NFVO, for example the NFVO's IP address, port and others. The agent objects that you retrieve from the NFVORequestor make use of these arguments when communicating with the NFVO.
You can find more information about the NFVORequestor and the different agent classes in the Javadoc. The Open Baton SDK is thread safe.

Usage example

Upload a VimInstance to the NFVO using the SDK
public class Main {

  public static void main(String[] args) {
    boolean sslEnabled = true;
    String apiVersion = "1";
    // create the NFVORequestor object
    NFVORequestor nfvoRequestor = new NFVORequestor("username", "password", sslEnabled, "projectName", "nfvo_ip", "nfvo_port", apiVersion);

    // obtain a VimInstanceAgent
    VimInstanceAgent vimInstanceAgent = nfvoRequestor.getVimInstanceAgent();

    // create the VIM Instance
    VimInstance vimInstance = new VimInstance();
    // we omitted the setting of the VIM Instance's values here...

    try {
      // upload the VIM Instance to the NFVO
      vimInstance = vimInstanceAgent.create(vimInstance);
    } catch (SDKException e) {

    System.out.println("Created VimInstance with id: " + vimInstance.getId());