7 NFV Orchestration RESTful API Reference

This chapter provides reference information about the Oracle Communications Unified Inventory Management NFV Orchestration RESTful API resources.

About the NFV Orchestration RESTful APIs

The NFV Orchestration RESTful API requests provide the northbound interface to NFV Orchestration. Operation support systems (OSS) and VNF managers query the resource inventory for data.

The RESTful API requests enable you to perform various functions by using a RESTful API client.

The root URL for the NFV Orchestration RESTful API resources is:

  • HTTP connection: http://uim_host:port/ocnso/1.1

  • SSL connection: https://uim_host:ssl_port/ocnso/1.1

    where:

    • uim_host is the name of the host on which Oracle Communications Unified Inventory Management (UIM) is installed

    • port is the port number of the machine on which UIM is installed

    • ssl_port is the SSL port number of the machine on which UIM is installed

To access the NFV Orchestration RESTful API resources, in your RESTful API client, choose Basic Authentication and specify the user name and password of the machine on which UIM is installed.

Note:

If you use HTTPS-enabled OpenStack Keystone RESTful APIs, add the Certified Authority certificate to the TrustStore that your application server uses. If OpenStack Keystone is configured with self-signed certificate, then add the self-signed certificate to the TrustStore of the application server. See the Oracle WebLogic Server documentation for information about configuring the TrustStore.

The ora_nso_webservices.war file is included in the inventory.ear file and is deployed once the UIM installation is complete.

NFV Orchestration RESTful API Resources

Table 7-1 lists the NFV Orchestration RESTful API requests provided, along with the method, resource and description for each. This table is ordered first by entity and then by the method in the order of POST, PUT, GET and DELETE.

Table 7-1 NFV Orchestration RESTful API Resources

Request Method Resource Description

Register VIM

POST

/ocnso/1.1/vim

Registers the IP address, port, user name and password of the Virtual Infrastructure Manager (VIM) with NFV Orchestration.

Discover VIM Resources

POST

/ocnso/1.1/vim/vimId/discovery?infoLevel=vim_information

Discovers the resources of the registered VIM and adds them to inventory.

Update VIM

PUT

/ocnso/1.1/vim/vimId

Updates the attributes (for example IP address, port, user name, password, and project name) of an existing VIM in NFV Orchestration.

Get VIM Details

GET

/ocnso/1.1/vim/vimId

Returns information about a VIM that is registered with NFV Orchestration.

Instantiate Network Service

POST

/ocnso/1.1/ns

Instantiates a network service and its constituent Virtual Network Functions (VNFs).

Get Network Services

GET

/ocnso/1.1/ns/nsdName=nsdName

Returns a list of all active network services that are created based on the given network service descriptor.

Get Network Service Details

GET

/ocnso/1.1/ns/networkServiceId

Returns details about a network service.

Get Network Service VNFs

GET

/ocnso/1.1/ns/networkServiceId/vnfs

Returns details about VNFs in a network service.

Get Network Service Networks

GET

/ocnso/1.1/ns/networkServiceId/networks

Returns details about networks in a network service.

Get Network Service End Points

GET

/ocnso/1.1/ns/networkServiceId/endpoints

Returns details about endpoints in a network service.

Get Network Service Status

GET

/ocnso/1.1/ns/networkServiceId/status

Returns status information of a network service.

Terminate Network Service

DELETE

/ocnso/1.1/ns/networkServiceId

Terminates a network service and the constituent VNFs.

Add VNF to Network Service

POST

/ocnso/1.1/ns/networkServiceId/vnfs

Adds VNFs to a network service.

Terminate VNF in a Network Service

DELETE

/ocnso/1.1/ns/networkServiceId/vnfs

Terminates a VNF in a network service.

Heal VNF

POST

/ocnso/1.1/vnf/vnfId/heal?action=action

Heals a VNF by either rebooting or replacing all the virtual machines on which the VDUs of the VNF are deployed.

Available values for the action parameter are:

  • replace

  • reboot

Scale VNF

POST

/ocnso/1.1/ns/networkServiceId/scale/vnfId

Scales a VNF in a network service by either adding new instances or removing existing instances of the constituent VDUs of the VNF.

Get VNF Details

GET

/ocnso/1.1/vnf/vnfId

Returns details about a VNF.

Get VNF Status

GET

/ocnso/1.1/vnf/vnfId/status

Returns status information about a VNF.

Heal VDU

POST

/ocnso/1.1/vnf/vnfId/vdus/vduId/heal

Heals a VDU by rebooting the virtual machine on which the VDU is deployed.

Get NFP

GET

http://uim_host:port/ocnso/1.1/ns/networkServiceId/nfps

Retrieves the details of network forwarding paths (NFPs) in a network service.

Create Classifier

POST

http://uim_host:port/ocnso/1.1/ns/networkServiceId/flow-classifier

Creates a classifier for a specific policy in the network service.

Delete Classifier

DELETE

http://uim_host:port/ocnso/1.1/ns/networkServiceId/flow-classifier

Deletes an existing classifier for a specific policy in the network service.

Register PNF

POST

/ocnso/1.1/pnfs

Registers or creates a Physical Network Function (PNF) in inventory.

Update PNF

PUT

/ocnso/1.1/pnfs/pnfId

Updates an existing registered PNF.

Get PNFs

GET

/ocnso/1.1/pnfs?descriptorName=pnfdName

Returns the list of PNFs given the input descriptor name.

Get PNF Details

GET

/ocnso/1.1/pnfs/pnfId

Returns the PNF details given the input PNF identifier.

Unregister PNF

DELETE

/ocnso/1.1/pnfs/pnfId

Unregisters an existing PNF.

Register EMS

POST

/ocnso/1.1/ems

Registers or creates an Element Management System (EMS) in inventory.

Update EMS

PUT

/ocnso/1.1/ems/emsId

Updates an existing registered EMS.

Get EMSs

GET

/ocnso/1.1/ems?descriptorName=emsdName

Returns the list of EMSs given the input descriptor name.

Get EMS Details

GET

/ocnso/1.1/ems/emsId

Returns the EMS details given the input EMS identifier.

Unregister EMS

DELETE

/ocnso/1.1/ems/emsId

Unregisters an existing EMS.

Get Network Service Descriptors

GET

/ocnso/1.1/nsd

Returns a list of all network service descriptors that are deployed in NFV Orchestration.

Get Network Service Descriptor Details

GET

/ocnso/1.1/nsd/nsdName

Returns details about a network service descriptor.

Get Network Service Descriptor VNFDs

GET

/ocnso/1.1/nsd/nsdName/vnfds

Returns a list of VNF descriptors in a network service descriptor.

Get Network Service Descriptor Flavors

GET

/ocnso/1.1/nsd/nsdName/flavors

Returns a list of all constituent service flavors that are defined for a network service descriptor.

Get VNF Descriptor Details

GET

/ocnso/1.1/vnfd/vnfdName

Returns details about a VNF descriptor.

Get VNF Descriptor Flavors

GET

/ocnso/1.1/vnfd/vnfdName/flavors

Returns a list of deployment flavors that are defined for a VNF descriptor.


RESTful API Responses

This section describes the fields and possible values for the responses returned from NFV Orchestration RESTful API calls.

Table 7-2 describes the fields that are contained in a response.

Table 7-2 Fields in the Response

Response Field Description

status

This field contains the status of the request processing. The following are the valid values:

  • SUCCESS

  • ACCEPTED

  • FAILURE

code

This field contains the HTTP status code value. Table 7-3 describes the possible values.

message

This optional field contains a high-level error message and is present only for a failed request.

data

This optional field contains the response information from the request and it only exists for successful requests. This field may not be relevant to all requests.

exception

This optional field contains information when an exception occurs for a failed request.

errors

This optional field contains an array of information when an error occurs for a failed request.

warnings

This optional field contains an array of information when a warning occurs for a failed request.


Example 7-1 shows a success response for a network service instantiation request. The data portion contains the operation-specific information and message about the successful request.

Example 7-1 Sample Response Snippet on Success

{
  "status": "SUCCESS",
  "code": "202",
  "message": "[INV-430902] Network Service instantiation is in progress.",
  "data": {
    "id": "1125001",
    "descriptorName": "NPaas",
    "name": "NSO_NPassService_1",
    "status": "PENDING",
    "businessInteractionId": "1275003",
    "businessInteractionStatus": "IN_PROGRESS"
     .
     .
     .
  }
}

Example 7-2 shows a response to a failed request.

Example 7-2 Sample Response on Failure

{
  "status": "FAILURE",
  "code": "500",
  "message": "No Network service exists with provided Network Service id 100.",
  "errors": [],
  "exception": {
    "code": "INV-430355",
    "message": "No Network service exists with provided Network Service id 100."
  }
}

Table 7-3 describes the HTTP response status codes for the RESTful API resources.

Table 7-3 HTTP Response Status Codes for the RESTful API Resources

Response Code Description

200 OK

The request is successful.

The information returned in the response depends on the method used in the request. For example:

  • GET returns one or more entities corresponding to the requested resource.

  • POST returns an entity describing or containing the result of the action.

202 Accepted

The request has been accepted for processing, but processing has not yet started.

The request might or might not eventually be acted upon; it might be disallowed when the request is processed.

400 Bad Request

The request could not be understood by the server due to incorrect syntax. Correct the syntax before repeating the request.

401 Unauthorized

The request could not be authorized by the server due to invalid authentication or the absence of a valid user name and password. All requests require valid user authentication. See "About the NFV Orchestration RESTful APIs" for more information.

404 Not Found

The server has not found a matching request or URI.

500 Internal Server Error

The server encountered an unexpected condition that prevented it from fulfilling the request.


Sample Requests and Responses

The following sections provide sample JSON requests and responses for the NFV Orchestration RESTful API resources.

Register VIM

Registers details about the VIM with NFV Orchestration such as the following:

  • Host IP address

  • Port

  • User name

  • Password

This resource results in the creation of a VIM.

Method

POST

URL

http://uim_host:port/ocnso/1.1/vim

Sample Request

{
  "id": "Vim1",
  "name": "Vim1",
  "host": "192.0.2.251",
  "port": "12345",
  "userName": "nso",
  "pswd": "password",
  "projectName": "test",
  "domainName": "default",
  "version": "3",
  "sslEnabled": "false",
  "type": "OpenStack",
  "cpuOvercommitRatio": "15",
  "memoryOvercommitRatio": "1.5",
  "diskOvercommitRatio": "1.0"
}

Table 7-4 describes the parameters in this request.

Table 7-4 Request Parameters

Parameter Description Required or Optional

id

Unique ID of the VIM.

Required

name

Name of the VIM.

Required

host

IP address or host name of the VIM.

Required

port

Port number of the VIM.

Before specifying the port number in the API request, verify the available ports for the service endpoint in your VIM. OpenStack Keystone Identity Service uses 5000 as the default port number.

Required

userName

User name of the VIM.

Required

pswd

Password of the VIM.

Required

projectName

Name of the project.

Required

domainName

Name of the domain.

Required

version

Version of the VIM.

Required

sslEnabled

Specify true if SSL is enabled for the VIM; otherwise, specify false.

Required

type

Type of the VIM.

Required

cpuOvercommitRatio

Specify the number of virtual cores you have allocated to a physical core.

For example, a CPU overcommit ratio of 15:1 means that you can allocate up to 15 virtual cores per physical core.

Required

memoryOvercommitRatio

This ratio enables the allocated instances to use more memory than what is available on the physical machine.

For example, a memory overcommit ratio of 1.5:1 means that the VIM allocates instances to a physical node until the sum of the RAM associated with the instances reaches a value that is 1.5 times the amount of RAM available on the physical node.

If a physical node has 48 GB of RAM, the VIM allocates instances to that physical node until the sum of the RAM associated with the instances reaches 72 GB (48 x 1.5).

Required

diskOvercommitRatio

This ratio enables the allocated instances to use more disk size than what is available on the physical machine.

For example, a disk overcommit ratio of 1.0 means that disk overcommitment is disabled. In this case, the VIM allocates instances to a physical node until the total amount of disk size associated with the instances is equal to the amount of disk size available on the physical node.

A disk allocation ratio of 2.0 means that the VIM allocates instances to a physical node as long as the total amount of disk size associated with the instances is less than twice the amount of disk size available on the physical node. For example, if a physical node has 100 GB of disk size, the VIM allocates instances to that physical node until the sum of the disk size associated with the instances reaches 200 GB (100 x 2).

Required


Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "message": "[INV-430914] Vim1 is successfully registered with NSO."
}

Discover VIM Resources

Discovers the resources that are available in the VIM. For example, it creates the following resources as custom objects:

  • Availability zones

  • Flavors

  • Hosts

  • Virtual Data Center (VDC)

Table 7-5 lists the OpenStack APIs that NSO uses to discover available resources in OpenStack.

Table 7-5 OpenStack APIs Used to Discover VIM Resources

OpenStack Service OpenStack API Resource Discovered

Nova

/os-hypervisors/detail

Host

Nova

/flavors/detail

Flavor

Nova

/os-availability-zone/detail

Availability zone

Neutron

/v2.0/networks

Network

Neutron

/v2.0/subnets

Subnet


Method

POST

URL

http://uim_host:port/ocnso/1.1/vim/vimId/discovery?infoLevel=vimInformation

where:

  • vimId is the identifier of the VIM whose resources you want to discover

  • vimInformation is the level of information about the VIM that you want to receive in the response. The values for infoLevel are:

    • summary: Include a summary of the VIM resources.

    • details: Include complete details about all the VIM resources.

Sample Request

This API does not require any request parameters.

Sample Response

This is a sample response when the infoLevel parameter in the URL is set to summary:

{
   "status": "SUCCESS",
   "code": "200",
   "data": {
      "summary": {
         "Number of Flavors": 26,
         "Number of Zones": 3
         "Number of Hosts": 4,
         "Number of Networks": 80,
         "Number of Subnets": 80,
      }
   }
}

The following is a sample response when the infoLevel parameter in the URL is set to details:

{
  "data": {
    "availabilityZones": [
      {
        "zone": "CustomerTermination",
        "hosts": [
          "compute2"
        ]
      },
      {
        "zone": "nova",
        "hosts": [
          "compute4"
        ]
      }
    ],
    "networks": [
      {
        "network": "ext-net",
        "subnets": [
          "ext-subnet"
        ]
      },
      {
        "network": "QANetwork",
        "subnets": [
          "QASubnet"
        ]
      }
    ],
    "flavors": [
      "m1.tiny",
      "m1.small",
      "m1.large"
    ]
  }
}

Update VIM

Updates details about an existing VIM in NFV Orchestration. For example, you can update the following attributes:

  • Host IP address

  • Port

  • User name

  • Password

  • Project name

The update persists the new attribute values to the inventory database.

Method

PUT

URL

http://uim_host:port/ocnso/1.1/vim/vimId

where vimId is the identifier of the VIM that you want to update.

Sample Request

{
   "host": "192.0.2.252",
   "port": "12345",
   "userName": "nso",
   "pswd": "password",
   "projectName": "test",
   "domainName": "default",
   "version": "3",
   "sslEnabled": "false",
   "type": "OpenStack",
   "cpuOvercommitRatio": "15",
   "memoryOvercommitRatio": "1.5",
   "diskOvercommitRatio": "1.0"
}

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "message": "[INV-430921] VIM updated successfully."
}

Get VIM Details

Retrieves the details of a VIM that is registered in inventory.

Method

GET

URL

http://uim_host:port/ocnso/1.1/vim/vimId

where vimId is the identifier of the VIM.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": {
      "id": "Vim1",
      "name": "Vim1",
      "host": "192.0.2.249",
      "port": "12345",
      "userName": "admin",
      "pswd": "****",
      "projectName": "admin",
      "domainName": "default",
      "type": "OpenStack",
      "version": "3",
      "sslEnabled": false,
      "cpuOvercommitRatio": "15",
      "memoryOvercommitRatio": "1.5",
      "diskOvercommitRatio": "1.0"
   }
}

Instantiate Network Service

Creates a network service, the related resources, and starts the resources in the network service. This resource can optionally include VNFFGs, VNFs, and PNFs.

Method

POST

URL

http://uim_host:port/ocnso/1.1/ns

Sample Request

{
    "name":"NPaaS_A",
    "descriptorName":"NPaaS",
    "flavorName":"Juniper",
    "vnffgs": [
        "data-vnffg"
    ],
    "vnfs":[
        {
            "name":"VNF_A",
            "descriptorName":"Juniper_vSRX",
            "flavorName":"standard",
            "version":"1.0"
        }
    ],
    "pnfs": [
        {
            "id": "39",
            "descriptorName": "Cisco_xRV"
        }
    ],
    "endPoints": [
        {
            "name": "Service-EP1",
            "reference":"Service_EP1",
            "parameters": [
                {
                    "name": "IPAddress",
                    "value": "192.0.2.251"
                },
                {
                    "name": "externalNet",
                    "value": "ext1"
                },
                {
                    "name": "serviceLocation",
                    "value": "SanFrancisco"
                }
            ]
        },
        {
            "name": "Service-EP2",
            "reference":"Service_EP2",
            "parameters": [
                {
                    "name": "IPAddress",
                    "value": "192.0.2.252"
                },
                {
                    "name": "externalNet",
                    "value": "ext1"
                },
                {
                  "name": "serviceLocation",
                  "value": "SanFrancisco"
                }
             ]
        }
    ]
}

Table 7-6 describes the parameters in this request.

Table 7-6 Request Parameters

Parameter Name Description Required or Optional

name

Name of the network service, as specified in the network service descriptor file.

Required

descriptorName

Name of the network service descriptor, as specified in the network service descriptor file.

Required

flavorName

Name of the Network Service deployment flavor, as specified in the network service descriptor file.

Required

vnffgs

The VNFFG that you specify in this request parameter overrides any default VNFFG you specified in the network service descriptor file.

If you want to instantiate the network service with the default VNFFG, you must either leave this request parameter blank or specify the same ID that you specified for the default VNFFG in the <vnffg> element of the network service descriptor file.

If you want the network service to have an additional VNFFG besides the default VNFFG, you must specify both the VNFFGs separately within the vnffgs parameter in the network service instantiation request.

Optional

vnfs:[

Specify this parameter if you want to instantiate specific VNFs as part of network service instantiation. Otherwise, you can skip this parameter to let NFV Orchestration determine which VNFs to instantiate based on the VNF flavor specified in the flavorName parameter.

Optional

vnfs:[ name

Name for the VNF.

Required only if you specify the vnfs parameter.

vnfs:[ descriptorName

Name of the VNF descriptor, as specified in the VNF descriptor file.

Required only if you specify the vnfs parameter.

vnfs:[ flavorName

Name of the VNF deployment flavor, as specified in the VNF descriptor file.

Required only if you specify the vnfs parameter.

vnfs:[ version

Software version number for the VNF image, as specified in the VNF descriptor file.

Required only if you specify the vnfs parameter.

pnfs:[

Specify this parameter if you want to instantiate PNFs as part of network service instantiation. Otherwise, you can omit this parameter from the network service instantiation request.

Optional

pnfs:[ id

Unique ID of the PNF in the inventory database.

Required only if you specify the pnfs parameter.

pnfs:[ descriptorName

Name of the PNF descriptor, as specified in the PNF descriptor file.

Required only if you specify the pnfs parameter.

endpoints:[ name

Specify the name of the service endpoint.

A network service should have at least one endpoint to determine the best suitable data center for the network service.

Because there are no dedicated REST APIs for creating endpoints, you must plan all of your requirements for the endpoints in advance, and then provide the endpoint details in the network service instantiation request.

If your network service contains forwarding graphs, specify the information about service endpoints.

Required

endpoints:[ reference

Reference the service endpoint that you specified in the network service descriptor.

Required

endpoints:[ parameters:

Specify the externalNet name-vlaue pair if you want to assign a floating IP address to the service endpoint.

For example:

"parameters": [
    {
        "name": "externalNet",
        "value": "ext1"
    },

Required

endpoints:[ parameters:

Specify the serviceLocation name-value pair for the first endpoint to determine the best suitable data center for the network service. For example:

"parameters": [
    {
        "name": "serviceLocation",
        "value": "SanFrancisco"
    },

Required


Sample Response

{
  "status": "SUCCESS",
  "code": "202",
  "message": "[INV-430902] Network Service instantiation is in progress.",
  "data": {
    "id": "39",
    "name": "NPaaS_A",
    "descriptorName": "NPaaS",
    "status": "PENDING",
    "businessInteractionId": "83",
    "businessInteractionStatus": "IN_PROGRESS",
    "serviceDeploymentFlavorName": "Juniper",
    "vimId": "ONAP21MitakaCloud2",
    "datacenterName": "ONAP21MitakaCloud2",
    "networks": [
      {
        "name": "39_Data_OUT(ONAP21MitakaCloud2)",
        "id": "39_Data_OUT(ONAP21MitakaCloud2)",
        "status": "PENDING_REFERENCE",
        "subnets": [
          {
            "startIP": "192.0.2.21",
            "prefix": "28"
          }
        ]
      },
      {
        "name": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
        "id": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
        "externalId": "c64943a8-6717-4880-a46e-5b0d2a625a8c",
        "status": "PENDING_REFERENCE",
        "subnets": [
          {
            "startIP": "192.0.2.22",
            "prefix": "24",
            "externalId": "6aa4a6cd-4c21-48e4-9f47-330a9e227046"
          }
        ]
      },
      {
        "name": "39_Data_IN(ONAP21MitakaCloud2)",
        "id": "39_Data_IN(ONAP21MitakaCloud2)",
        "status": "PENDING_REFERENCE",
        "subnets": [
          {
            "startIP": "192.0.2.23",
            "prefix": "27"
          }
        ]
      }
    ],
    "endpoints": [
      {
        "id": "39",
        "name": "Service-EP1",
        "descriptorName": "NetworkServiceEndPoint",
        "status": "Pending Reference"
      },
      {
        "id": "40",
        "name": "Service-EP2",
        "descriptorName": "NetworkServiceEndPoint",
        "status": "Pending Reference"
      }
    ],
    "vnfs": [
      {
        "id": "37",
        "name": "VNF_A",
        "status": "Pending Assign",
        "descriptorName": "Juniper_vSRX",
        "businessInteractionId": "84",
        "businessInteractionStatus": "IN_PROGRESS"
      }
    ],
    "pnfs": [
      {
        "id": "39",
        "name": "PNF_A",
        "descriptorName": "Cisco_xRV",
        "ipAddress": "192.0.2.231",
        "userName": "user",
        "pswd": "****",
        "sslEnabled": false,
        "sshKey": "xxxxxxxxxxxxxxxxx",
        "parameters": [
          {}
        ]
      }
    ],
    "forwardingGraphs": [
      {
        "name": "data-vnffg",
        "nfps": [
          {
            "name": "nfp1"
          }
        ]
      }
    ]
  }
}

Get Network Services

Retrieves the list of active network services that are related to the input network service descriptor.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ns?nsdName=nsdName&status=nsStatus

where:

  • nsdName is the name of the network service descriptor and

  • (Optional) nsStatus is the status of the network service. If you do not specify the status parameter, all the network services that are in In Service status are retrieved.

  • You can retrieve the network services that are in the following statuses:

    • Cancel Pending Disconnect

    • Cancelled

    • In Service

    • Pending

    • Pending Cancel

    • Pending Disconnect

    • Suspended

Sample Response

The following is the sample response when the status parameter in the URL is not set.

{
   "status": "SUCCESS",
   "code": "200",
   "data": [
      {
         "id": "1050001",
         "name": "NSO_NPassService_1",
         "descriptorName": "NPaaS",
         "status": "IN_SERVICE"
      },
      {
         "id": "1050005",
         "name": "NSO_NPassService_2",
         "descriptorName": "NPaaS",
         "status": "IN_SERVICE"
      },
      {
         "id": "1125001",
         "name": "NSO_NPassService_3",
         "descriptorName": "NPaaS",
         "status": "IN_SERVICE"
      }
   ]
}

Get Network Service Details

Retrieves the details of a network service.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId

where networkServiceId is the identifier of the network service whose details you want to retrieve.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "1500001",
    "name": "NS_A",
    "descriptorName": "NPaaS",
    "status": "IN_SERVICE",
    "businessInteractionId": "1500001",
    "businessInteractionStatus": "COMPLETED",
    "serviceDeploymentFlavorName": "Juniper",
    "vimId": "ONAP21MitakaCloud2",
    "datacenterName": "ONAP21MitakaCloud2",
    "networks": [
      {
        "name": "1500001_Data_OUT(ONAP21MitakaCloud2)",
        "id": "1500001_Data_OUT(ONAP21MitakaCloud2)",
        "externalId": "ef68fda2-da9c-4b45-a9c2-f6add002278e",
        "status": "REFERENCED",
        "subnets": [
          {
            "startIP": "192.0.2.25",
            "prefix": "30",
            "externalId": "81acf49b-f656-4d5b-83f5-208cb05212df"
          }
        ]
      },
      {
        "name": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
        "id": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
        "externalId": "c64943a8-6717-4880-a46e-5b0d2a625a8c",
        "status": "REFERENCED",
        "subnets": [
          {
            "startIP": "192.0.2.25",
            "prefix": "24",
            "externalId": "6aa4a6cd-4c21-48e4-9f47-330a9e227046"
          }
        ]
      },
      {
        "name": "1500001_Data_IN(ONAP21MitakaCloud2)",
        "id": "1500001_Data_IN(ONAP21MitakaCloud2)",
        "externalId": "a200be4e-cf49-4a3d-91eb-abc4c6747134",
        "status": "REFERENCED",
        "subnets": [
          {
            "startIP": "192.0.2.23",
            "prefix": "27",
            "externalId": "e0308cf2-d95e-4da6-bb70-f1d917b15924"
          }
        ]
      }
    ],
    "endpoints": [
      {
        "id": "1500001",
        "name": "Service-EP1",
        "descriptorName": "NetworkServiceEndPoint",
        "status": "Referenced",
        "serviceLocation": "SanFrancisco"
      },
      {
        "id": "1500002",
        "name": "Service-EP2",
        "descriptorName": "NetworkServiceEndPoint",
        "status": "Referenced",
        "serviceLocation": "SanFrancisco"
      }
    ],
    "vnfs": [
      {
        "id": "1425001",
        "name": "A",
        "status": "Assigned",
        "descriptorName": "Juniper_vSRX",
        "version": "1.0",
        "businessInteractionId": "1500002",
        "businessInteractionStatus": "COMPLETED",
        "deploymentFlavor": "standard"
      }
    ],
    "forwardingGraphs": [
      {
        "name": "data-vnffg",
        "nfps": [
          {
            "id": "79baa1d6-397c-482b-80b6-4f7edeb23b88",
            "name": "nfp1"
          }
        ]
      }
    ],
    "policies": [
      {
        "id": "premium",
        "name": "premium",
        "type": "traffic-classification",
        "ruleReferences": [
          {
            "id": "rule1",
            "action": "nfp-ref-id:nfp1"
          }
        ]
      },
      {
        "id": "standard",
        "name": "standard",
        "type": "traffic-classification",
        "ruleReferences": [
          {
            "id": "rule1",
            "action": "nfp-ref-id:nfp1"
          }
        ]
      }
    ],
    "rules": [
      {
        "id": "rule1",
        "name": "rule1",
        "type": "traffic-classification",
        "params": [
          {
            "name": "protocol",
            "value": "UDP"
          }
        ]
      }
    ]
  }
}           

Get Network Service VNFs

Retrieves the details about the VNFs in a network service.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/vnfs

where networkServiceId is the identifier of the network service for the VNFs.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "1500031",
    "name": "NS_D2",
    "descriptorName": "NPaaS",
    "status": "DISCONNECTED",
    "vnfs": [
      {
        "id": "1425031",
        "name": "D2",
        "status": "Unassigned",
        "descriptorName": "Juniper_vSRX",
        "serviceId": "1500032",
        "serviceName": "D2Juniper_vSRX_Service",
        "serviceStatus": "DISCONNECTED",
        "serviceDescriptorName": "Juniper_vSRX_Service",
        "version": "1.0",
        "externalId": "1425031",
        "businessInteractionId": "1500050",
        "businessInteractionStatus": "COMPLETED",
        "deploymentFlavor": "standard",
        "connectionPoints": [
          {
            "id": "1425032-1",
            "name": "CP03",
            "ipAddress": {
              "address": "192.0.2.25",
              "network": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
              "externalId": "92cdbd28-9fed-49a3-a45c-5678e7a9e6df"
            }
          },
          {
            "id": "1425032-2",
            "name": "CP01",
            "ipAddress": {
              "address": "192.0.2.27",
              "network": "1500031_Data_IN(ONAP21MitakaCloud2)",
              "externalId": "2b5d7b6b-9b42-4587-98a0-979d4d25ca1d"
            }
          },
          {
            "id": "1425032-3",
            "name": "CP02",
            "ipAddress": {
              "address": "192.0.2.23",
              "network": "1500031_Data_OUT(ONAP21MitakaCloud2)",
              "externalId": "6563445b-0eff-4b21-b721-e6d0010b7f2f"
            }
          }
        ],
        "vdus": [
          {
            "id": "1425032",
            "name": "NS_D2_1425031_1425032",
            "status": "Unassigned",
            "descriptorName": "Juniper_vSRX_VDU",
            "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3",
            "availabilityZoneName": "nova",
            "externalID": "0b9140aa-a857-4d4c-8975-2a46c2aad89e",
            "host": "83e39178aac9fb1af89bcf825bcd5e808d3de2d370b12b0653a3e966",
            "flavor": {
              "name": "vsrx.medium",
              "cpus": "2",
              "memory": "4096.0",
              "disk": "20.0"
            },
            "vnfcs": [
              {
                "connectionPoints": [
                  {
                    "id": "1425032-1",
                    "name": "CP03",
                    "ipAddress": {
                      "address": "192.0.2.12",
                      "network": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
                      "externalId": "92cdbd28-9fed-49a3-a45c-5678e7a9e6df"
                    }
                  },
                  {
                    "id": "1425032-2",
                    "name": "CP01",
                    "ipAddress": {
                      "address": "192.0.2.14",
                      "network": "1500031_Data_IN(ONAP21MitakaCloud2)",
                      "externalId": "2b5d7b6b-9b42-4587-98a0-979d4d25ca1d"
                    }
                  },
                  {
                    "id": "1425032-3",
                    "name": "CP02",
                    "ipAddress": {
                      "address": "192.0.2.15",
                      "network": "1500031_Data_OUT(ONAP21MitakaCloud2)",
                      "externalId": "6563445b-0eff-4b21-b721-e6d0010b7f2f"
                    }
                  }
                ]
              }
            ],
            "parameters": [
               {
                  "name": "imageVersion",
                  "value": "1.0"
               },
               {
                  "name": "imageId",
                  "value": "vsrx-v1.0"
               }
            ] 
          }
        ]
      }
    ]
  }
}

Get Network Service Networks

Retrieves the details about the networks within a network service.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/networks

where networkServiceId is the identifier of the network service.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "1575001",
    "name": "NSO_NetworkService",
    "descriptorName": "NPaaS",
    "status": "IN_SERVICE",
    "serviceDeploymentFlavorName": "Juniper",
    "vimId": "ONAP21MitakaCloud2",
    "datacenterName": "ONAP21MitakaCloud2",
    "networks": [
      {
        "name": "1575001_Data_OUT(ONAP21MitakaCloud2)",
        "id": "1575001_Data_OUT(ONAP21MitakaCloud2)",
        "externalId": "87697297-2795-440d-bea8-a33c2ba2e20e",
        "status": "REFERENCED",
        "subnets": [
          {
            "startIP": "192.0.2.12",
            "prefix": "30",
            "externalId": "fba5b8f2-06b8-4d1b-8011-7d6d2b020101"
          }
        ]
      },
      {
        "name": "1575001_Data_IN(ONAP21MitakaCloud2)",
        "id": "1575001_Data_IN(ONAP21MitakaCloud2)",
        "externalId": "7b801c76-ab7e-4f1b-9328-80a898611120",
        "status": "REFERENCED",
        "subnets": [
          {
            "startIP": "192.0.2.13",
            "prefix": "27",
            "externalId": "3115de7a-b1e4-475d-ae94-393cfc4d3df6"
          }
        ]
      },
      {
        "name": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
        "id": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
        "externalId": "c64943a8-6717-4880-a46e-5b0d2a625a8c",
        "status": "REFERENCED",
        "subnets": [
          {
            "startIP": "192.0.2.12",
            "prefix": "24",
            "externalId": "6aa4a6cd-4c21-48e4-9f47-330a9e227046"
          }
        ]
      }
    ]
  }
}

Get Network Service End Points

Retrieves the details about the endpoints in a network service.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/endpoints

where networkServiceId is the identifier of the network service.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "22",
    "name": "NPaaS_Service",
    "descriptorName": "NPaas",
    "status": "IN_SERVICE",
    "endpoints": [
      {
        "id": "14",
        "name": "NSO_SGPcnsmr2",
        "descriptorName": "NetworkServiceEndPoint",
        "ipAddress": "192.0.2.218",
        "status": "Referenced",
        "serviceLocation": "MTRLPQ03"
      }
    ]
  }
}

Get Network Service Status

Retrieves the status information for a network service.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/status

where networkServiceId is the identifier of the network service whose status information you want to retrieve.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": {
      "id": "22",
      "name": "Sample NS",
      "descriptorName": "NPaas",
      "status": "IN_SERVICE",
      "businessInteractionId": "47",
      "businessInteractionStatus": "COMPLETED",
      "networks": [
         {
            "name": "22_Data_OUT(ONAP21)",
            "status": "REFERENCED"
         },
         {
            "name": "22_Data_IN(ONAP21)",
            "status": "REFERENCED"
         },
         {
            "name": "nfvo-poc3-mgmt(ONAP21)",
            "status": "REFERENCED"
         }
      ],
      "endpoints": [
         {
            "id": "14",
            "name": "NSO_smr2",
            "descriptorName": "NetworkServiceEndPoint",
            "status": "Referenced"
         }
      ],
      "vnfs": [
         {
            "id": "6",
            "name": "VNF-1_06",
            "status": "Assigned",
            "descriptorName": "Juniper_vSRX",
         }
      ]
   }
}

Terminate Network Service

Terminates a network service. This API undeploys the constituent VNFs in the network service and releases all the resources that were allocated to the service.

Method

DELETE

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId

where networkServiceId is the identifier of the network service that you want to terminate.

Sample Request

This API does not require a request body. Specify the network service identifier in the URL.

Sample Response

{
  "status": "SUCCESS",
  "code": "202",
  "message": "[INV-430907] Network Service termination is in progress.",
  "data": {
    "id": "1500001",
    "name": "NSO_NS_A",
    "descriptorName": "NPaaS",
    "status": "PENDING_DISCONNECT",
    "businessInteractionId": "1500005",
    "businessInteractionStatus": "IN_PROGRESS",
    "serviceDeploymentFlavorName": "Juniper",
    "vimId": "ONAP21MitakaCloud2",
    "datacenterName": "ONAP21MitakaCloud2",
    "networks": [
      {
        "name": "1500001_Data_OUT(ONAP21MitakaCloud2)",
        "id": "1500001_Data_OUT(ONAP21MitakaCloud2)",
        "externalId": "ef68fda2-da9c-4b45-a9c2-f6add002278e",
        "status": "PENDING_UNREFERENCE",
        "subnets": [
          {
            "startIP": "192.0.2.12",
            "prefix": "30",
            "externalId": "81acf49b-f656-4d5b-83f5-208cb05212df"
          }
        ]
      },
      {
        "name": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
        "id": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
        "externalId": "c64943a8-6717-4880-a46e-5b0d2a625a8c",
        "status": "PENDING_UNREFERENCE",
        "subnets": [
          {
            "startIP": "192.0.2.12",
            "prefix": "24",
            "externalId": "6aa4a6cd-4c21-48e4-9f47-330a9e227046"
          }
        ]
      },
      {
        "name": "1500001_Data_IN(ONAP21MitakaCloud2)",
        "id": "1500001_Data_IN(ONAP21MitakaCloud2)",
        "externalId": "a200be4e-cf49-4a3d-91eb-abc4c6747134",
        "status": "PENDING_UNREFERENCE",
        "subnets": [
          {
            "startIP": "192.0.2.13",
            "prefix": "27",
            "externalId": "e0308cf2-d95e-4da6-bb70-f1d917b15924"
          }
        ]
      }
    ],
    "endpoints": [
      {
        "id": "1500001",
        "name": "Service-EP1",
        "descriptorName": "NetworkServiceEndPoint",
        "status": "Pending Unreference"
      },
      {
        "id": "1500002",
        "name": "Service-EP2",
        "descriptorName": "NetworkServiceEndPoint",
        "status": "Pending Unreference"
      }
    ],
    "vnfs": [
      {
        "id": "1425001",
        "name": "NSO_A",
        "status": "Pending Unassign",
        "descriptorName": "Juniper_vSRX",
        "businessInteractionId": "1500006",
        "businessInteractionStatus": "IN_PROGRESS"
      }
    ],
    "forwardingGraphs": [
      {
        "name": "data-vnffg",
        "nfps": [
          {
            "id": "79baa1d6-397c-482b-80b6-4f7edeb23b88",
            "name": "nfp1"
          }
        ]
      }
    ]
  }
}

Add VNF to Network Service

Adds new VNFs to an existing network service.

Method

POST

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/vnfs

where networkServiceId is the identifier of the existing network service to add the VNF to.

Sample Request

[
   {
      "name": "VNF_D1",
      "flavorName": "standard",
      "descriptorName": "Juniper_vSRX",
      "version": "1.0"
   }
]

Table 7-7 describes the parameters in this request.

Table 7-7 Request Parameters

Parameter Name Description Required or Optional

name

Name of the VNF.

Required

flavorName

Name of the VNF deployment flavor.

Required

descriptorName

Name of the VNF descriptor.

Required

version

Software version number of the VNF image.

Required


Sample Response

{
  "status": "SUCCESS",
  "code": "202",
  "message": "[INV-430903] Adding VNF to Network Service is in progress.",
  "data": {
    "id": "47",
    "name": "NSO_NS_D",
    "descriptorName": "ResidentialGateway",
    "status": "IN_SERVICE",
    "vnfs": [
      {
        "id": "46",
        "name": "VNF_D1",
        "status": "Pending Assign",
        "descriptorName": "Juniper_vSRX",
        "serviceId": "50",
        "serviceName": "NSO_D1Juniper_vSRX_Service",
        "serviceStatus": "PENDING",
        "serviceDescriptorName": "Juniper_vSRX_Service",
        "version": "1.0",
        "businessInteractionId": "99",
        "businessInteractionStatus": "IN_PROGRESS",
        "deploymentFlavor": "standard",
        "connectionPoints": [
          {
            "id": "47-1",
            "name": "CP03"
          },
          {
            "id": "47-2",
            "name": "CP01",
            "ipAddress": {
              "address": "192.0.2.15",
              "network": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)"
            }
          },
          {
            "id": "47-3",
            "name": "CP02"
          }
        ],
        "vdus": [
          {
            "id": "47",
            "name": "NSO_NS_D_46_47",
            "status": "Pending Assign",
            "descriptorName": "Juniper_vSRX_VDU",
            "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3",
            "availabilityZoneName": "nova",
            "securityGroups": "open, default",
            "flavor": {
              "name": "vsrx.medium",
              "cpus": "2",
              "memory": "4096.0",
              "disk": "20.0"
            },
            "vnfcs": [
              {
                "connectionPoints": [
                  {
                    "id": "47-1",
                    "name": "CP03"
                  },
                  {
                    "id": "47-2",
                    "name": "CP01",
                    "ipAddress": {
                      "address": "192.0.2.15",
                      "network": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)"
                    }
                  },
                  {
                    "id": "47-3",
                    "name": "CP02"
                  }
                ]
              }
            ],
            "parameters": [
              {
                "name": "imageVersion",
                "value": "1.0"
              },
              {
                "name": "imageId",
                "value": "vsrx-v1.0"
              },
              {
                "name": "securityGroups",
                "value": "open, default"
              }
            ]
          }
        ]
      }
    ]
  }
}

Terminate VNF in a Network Service

Terminates a VNF in an existing network service and undeploys the VNF in the VIM.

Method

DELETE

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/vnfs

where networkServiceId is the identifier of the existing network service for the VNF.

Sample Request

[
  {
    "id": "450002"
  }
]

The input id is the identifier of the VNF to terminate, represented as a logical device in UIM.

Sample Response

{
  "status": "SUCCESS",
  "code": "202",
  "message": "[INV-430904] Deleting VNF from Network Service is in progress.",
  "data": {
    "id": "47",
    "name": "NPaaS_D",
    "descriptorName": "ResidentialGateway",
    "status": "IN_SERVICE",
    "vnfs": [
      {
        "id": "46",
        "name": "VNF_D1",
        "status": "Pending Unassign",
        "descriptorName": "Juniper_vSRX",
        "serviceId": "50",
        "serviceName": "VNF_D1Juniper_vSRX_Service",
        "serviceStatus": "PENDING_DISCONNECT",
        "serviceDescriptorName": "Juniper_vSRX_Service",
        "version": "1.0",
        "externalId": "46",
        "businessInteractionId": "101",
        "businessInteractionStatus": "IN_PROGRESS",
        "deploymentFlavor": "standard",
        "connectionPoints": [
          {
            "id": "47-1",
            "name": "CP03",
            "ipAddress": {
              "address": "192.0.2.12",
              "network": "47_Data2(ONAP21MitakaCloud2)",
              "externalId": "8d6bd0a0-df67-412e-90a3-e110d2fa28b7"
            }
          },
          {
            "id": "47-2",
            "name": "CP01",
            "ipAddress": {
              "address": "192.0.2.13",
              "network": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
              "externalId": "59c56433-de74-4f58-804d-889014780105"
            }
          },
          {
            "id": "47-3",
            "name": "CP02",
            "ipAddress": {
              "address": "192.0.2.14",
              "network": "47_Data1(ONAP21MitakaCloud2)",
              "externalId": "99b49d31-d9b0-4d15-8756-1921b029bbd2"
            }
          }
        ],
        "vdus": [
          {
            "id": "47",
            "name": "NS_D_46_47",
            "status": "Pending Unassign",
            "descriptorName": "Juniper_vSRX_VDU",
            "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3",
            "availabilityZoneName": "nova",
            "externalID": "26a6c4ef-eb00-41c8-b8d0-0f9882672e87",
            "host": "a176de955a47e134e56ee84a4d312e035c077ee2a05ece687447c5a9",
            "securityGroups": "open, default",
            "flavor": {
              "name": "vsrx.medium",
              "cpus": "2",
              "memory": "4096.0",
              "disk": "20.0"
            },
            "vnfcs": [
              {
                "connectionPoints": [
                  {
                    "id": "47-1",
                    "name": "CP03",
                    "ipAddress": {
                      "address": "192.0.2.12",
                      "network": "47_Data2(ONAP21MitakaCloud2)",
                      "externalId": "8d6bd0a0-df67-412e-90a3-e110d2fa28b7"
                    }
                  },
                  {
                    "id": "47-2",
                    "name": "CP01",
                    "ipAddress": {
                      "address": "192.0.2.13",
                      "network": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
                      "externalId": "59c56433-de74-4f58-804d-889014780105"
                    }
                  },
                  {
                    "id": "47-3",
                    "name": "CP02",
                    "ipAddress": {
                      "address": "192.0.2.14",
                      "network": "47_Data1(ONAP21MitakaCloud2)",
                      "externalId": "99b49d31-d9b0-4d15-8756-1921b029bbd2"
                    }
                  }
                ]
              }
            ],
            "parameters": [
              {
                "name": "imageVersion",
                "value": "1.0"
              },
              {
                "name": "imageId",
                "value": "vsrx-v1.0"
              },
              {
                "name": "securityGroups",
                "value": "open, default"
              }
            ]
          }
        ]
      }
    ]
  }
}               

Heal VNF

Heals a VNF by either rebooting or replacing all the virtual machines on which the virtual deployment units of the VNF are deployed.

Method

POST

URL

http://uim_host:port/ocnso/1.1/vnf/vnfId/heal?action=action

where:

  • vnfId is the required identifier of the VNF.

  • action is the optional action that you want to perform on the VNF. Specify one of the following values:

    • reboot: Reboots all the virtual machines on which the virtual deployment units of the VNF are deployed. This is the default action if the action is not specified.

    • replace: Undeploys all the virtual machines on which the virtual deployment units of the VNF are deployed and deploys new virtual machines with the same attributes.

Sample Request

This API does not require a request body.

Sample Response

The following is a sample response when the action parameter in the URL is set to reboot:

 {
  "status": "SUCCESS",
  "code": "200",
  "message": "VNF has been rebooted successfully.",
  "data": {
    "id": "75031",
    "name": "VNF_A",
    "status": "Assigned",
    "descriptorName": "Juniper_vSRX",
    "serviceId": "75025",
    "serviceName": "VNF_AJuniper_vSRX_Service",
    "serviceStatus": "IN_SERVICE",
    "serviceDescriptorName": "Juniper_vSRX_Service",
    "version": "1.0",
    "externalId": "75031",
    "businessInteractionId": "75039",
    "businessInteractionStatus": "COMPLETED",
    "deploymentFlavor": "standard",
    "connectionPoints": [
      {
        "id": "75032-1",
        "name": "CP01",
        "ipAddress": {
          "address": "192.0.2.12",
          "network": "Gi-LAN-Network(ONAP21MitakaCloud2)",
          "externalId": "630ed52f-36d8-4266-8543-d212e26025be"
        }
      },
      {
        "id": "75032-2",
        "name": "CP02",
        "ipAddress": {
          "address": "192.0.2.12",
          "network": "Gi-LAN-Network(ONAP21MitakaCloud2)",
          "externalId": "630ed52f-36d8-4266-8543-d212e26025be"
        }
      }
    ],
    "vdus": [
      {
        "id": "75032",
        "name": "NS_A_75031_75032",
        "status": "Assigned",
        "descriptorName": "Juniper_vSRX_VDU",
        "imageName": "cirros",
        "availabilityZoneName": "nova",
        "externalID": "15d444b9-73a0-4fac-84f5-6a072d0d5235",
        "host": "83e39178aac9fb1af89bcf825bcd5e808d3de2d370b12b0653a3e966",
        "flavor": {
          "name": "m1.medium",
          "cpus": "2",
          "memory": "4096.0",
          "disk": "40.0"
        },
        "vnfcs": [
          {
            "connectionPoints": [
              {
                "id": "75032-1",
                "name": "CP01",
                "ipAddress": {
                  "address": "192.0.2.12",
                  "network": "Gi-LAN-Network(ONAP21MitakaCloud2)",
                  "externalId": "630ed52f-36d8-4266-8543-d212e26025be"
                }
              },
              {
                "id": "75032-2",
                "name": "CP02",
                "ipAddress": {
                  "address": "192.0.2.12",
                  "network": "Gi-LAN-Network(ONAP21MitakaCloud2)",
                  "externalId": "630ed52f-36d8-4266-8543-d212e26025be"
                }
              }
            ]
          }
        ],
        "parameters": []
      }
    ]
  }
}

The following is a sample response when the action parameter in the URL is set to replace:

{
  "status": "SUCCESS",
  "code": "202",
  "message": "Replace VNF is in progress.",
  "data": {
    "id": "75031",
    "name": "VNF_A",
    "status": "Assigned",
    "descriptorName": "Juniper_vSRX",
    "serviceId": "75025",
    "serviceName": "VNF_AJuniper_vSRX_Service",
    "serviceStatus": "IN_SERVICE",
    "serviceDescriptorName": "Juniper_vSRX_Service",
    "version": "1.0",
    "externalId": "75031",
    "businessInteractionId": "75053",
    "businessInteractionStatus": "IN_PROGRESS",
    "deploymentFlavor": "standard",
    "connectionPoints": [
      {
        "id": "75032-1",
        "name": "CP01",
        "ipAddress": {
          "address": "192.0.2.12",
          "network": "Gi-LAN-Network(ONAP21MitakaCloud2)",
          "externalId": "630ed52f-36d8-4266-8543-d212e26025be"
        }
      },
      {
        "id": "75032-2",
        "name": "CP02",
        "ipAddress": {
          "address": "192.0.2.12",
          "network": "Gi-LAN-Network(ONAP21MitakaCloud2)",
          "externalId": "630ed52f-36d8-4266-8543-d212e26025be"
        }
      }
    ],
    "vdus": [
      {
        "id": "75032",
        "name": "NS_A_75031_75032",
        "status": "Assigned",
        "descriptorName": "Juniper_vSRX_VDU",
        "imageName": "cirros",
        "availabilityZoneName": "nova",
        "externalID": "15d444b9-73a0-4fac-84f5-6a072d0d5235",
        "host": "83e39178aac9fb1af89bcf825bcd5e808d3de2d370b12b0653a3e966",
        "flavor": {
          "name": "m1.medium",
          "cpus": "2",
          "memory": "4096.0",
          "disk": "40.0"
        },
        "vnfcs": [
          {
            "connectionPoints": [
              {
                "id": "75032-1",
                "name": "CP01",
                "ipAddress": {
                  "address": "192.0.2.12",
                  "network": "Gi-LAN-Network(ONAP21MitakaCloud2)",
                  "externalId": "630ed52f-36d8-4266-8543-d212e26025be"
                }
              },
              {
                "id": "75032-2",
                "name": "CP02",
                "ipAddress": {
                  "address": "192.0.2.12",
                  "network": "Gi-LAN-Network(ONAP21MitakaCloud2)",
                  "externalId": "630ed52f-36d8-4266-8543-d212e26025be"
                }
              }
            ]
          }
        ],
        "parameters": []
      }
    ]
  }
}

Scale VNF

Scales a VNF in a network service by either adding new instances or removing existing instances of the constituent VDUs of the VNF.

Method

POST

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/scale/vnfId?action=action

where:

  • networkServiceId is the required identifier of the network service for the VNF.

  • vnfId is the required identifier of the VNF to scale.

  • action is the scale action. Specify one of the following values:

    • scale-in: Removes the existing instances of constituent VDUs of the specified VNF.

    • scale-out: Adds additional instances of constituent VDUs of the specified VNF. This is the default action if the action is not specified.

Sample Request

This API does not require a request body.

Sample Response

{
  "status": "SUCCESS",
  "code": "202",
  "message": "[INV-431002] VNF scale operation is in progress.",
  "data": {
    "id": "150011",
    "name": "NS_D",
    "descriptorName": "NPaaS",
    "status": "IN_SERVICE",
    "vnfs": [
      {
        "id": "86",
        "name": "NS_D_Juniper_vSRX_86",
        "status": "Assigned",
        "descriptorName": "Juniper_vSRX",
        "serviceId": "150012",
        "serviceName": "Juniper_vSRX_Service",
        "serviceStatus": "IN_SERVICE",
        "serviceDescriptorName": "Juniper_vSRX_Service",
        "version": "1.0",
        "externalId": "86",
        "businessInteractionId": "150020",
        "businessInteractionStatus": "IN_PROGRESS",
        "deploymentFlavor": "standard",
        "connectionPoints": [
          {
            "id": "87-1",
            "name": "CP03",
            "ipAddress": {
              "address": "192.0.2.12",
              "network": "nfvo-poc3-mgmt(VIMCloudTest)",
              "externalId": "2327384b-1ad4-4541-918d-62605ce8d31e"
            }
          },
          {
            "id": "87-2",
            "name": "CP01",
            "ipAddress": {
              "address": "192.0.2.13",
              "network": "150011_Data_IN(VIMCloudTest)",
              "externalId": "bf4159c0-f830-43bb-a163-8345a0335f46"
            }
          },
          {
            "id": "87-3",
            "name": "CP02",
            "ipAddress": {
              "address": "192.0.2.14",
              "network": "150011_Data_OUT(VIMCloudTest)",
              "externalId": "c06d13b5-b068-48a0-a5fb-f3000ea2fbce"
            }
          },
          {
            "id": "88-1",
            "name": "CP03",
            "ipAddress": {
              "address": "192.0.2.15",
              "network": "nfvo-poc3-mgmt(VIMCloudTest)",
              "externalId": "e480b805-612e-44f6-96f2-b5f58bd002be"
            }
          },
          {
            "id": "88-2",
            "name": "CP01",
            "ipAddress": {
              "address": "192.0.2.16",
              "network": "150011_Data_IN(VIMCloudTest)"
            }
          },
          {
            "id": "88-3",
            "name": "CP02",
            "ipAddress": {
              "address": "192.0.2.17",
              "network": "150011_Data_OUT(VIMCloudTest)"
            }
          }
        ],
        "vdus": [
          {
            "id": "87",
            "name": "NS_D_86_87",
            "status": "Assigned",
            "descriptorName": "Juniper_vSRX_VDU",
            "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3",
            "availabilityZoneName": "nova",
            "externalID": "c131a04c-16bb-40b2-8dc9-59efa731632c",
            "host": "417ebf996e80c98e2d3781a089a2089b295a1a011e74f0475e4cbdcb",
            "flavor": {
              "name": "vsrx.medium",
              "cpus": "2",
              "memory": "4096.0",
              "disk": "20.0"
            },
            "vnfcs": [
              {
                "connectionPoints": [
                  {
                    "id": "87-1",
                    "name": "CP03",
                    "ipAddress": {
                      "address": "192.0.2.20",
                      "network": "nfvo-poc3-mgmt(VIMCloudTest)",
                      "externalId": "2327384b-1ad4-4541-918d-62605ce8d31e"
                    }
                  },
                  {
                    "id": "87-2",
                    "name": "CP01",
                    "ipAddress": {
                      "address": "192.0.2.21",
                      "network": "150011_Data_IN(VIMCloudTest)",
                      "externalId": "bf4159c0-f830-43bb-a163-8345a0335f46"
                    }
                  },
                  {
                    "id": "87-3",
                    "name": "CP02",
                    "ipAddress": {
                      "address": "192.0.2.22",
                      "network": "150011_Data_OUT(VIMCloudTest)",
                      "externalId": "c06d13b5-b068-48a0-a5fb-f3000ea2fbce"
                    }
                  }
                ]
              }
            ],
            "parameters": []
          },
          {
            "id": "88",
            "name": "NS_D_86_88",
            "status": "Pending Assign",
            "descriptorName": "Juniper_vSRX_VDU",
            "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3",
            "availabilityZoneName": "nova",
            "flavor": {
              "name": "vsrx.medium",
              "cpus": "2",
              "memory": "4096.0",
              "disk": "20.0"
            },
            "vnfcs": [
              {
                "connectionPoints": [
                  {
                    "id": "88-1",
                    "name": "CP03",
                    "ipAddress": {
                      "address": "192.0.2.32",
                      "network": "nfvo-poc3-mgmt(VIMCloudTest)",
                      "externalId": "e480b805-612e-44f6-96f2-b5f58bd002be"
                    }
                  },
                  {
                    "id": "88-2",
                    "name": "CP01",
                    "ipAddress": {
                      "address": "192.0.2.33",
                      "network": "150011_Data_IN(VIMCloudTest)"
                    }
                  },
                  {
                    "id": "88-3",
                    "name": "CP02",
                    "ipAddress": {
                      "address": "192.0.2.34",
                      "network": "150011_Data_OUT(VIMCloudTest)"
                    }
                  }
                ]
              }
            ],
            "parameters": []
          }
        ]
      }
    ]
  }
}

Get VNF Details

Retrieves the details about a VNF given the input VNF identifier.

Method

GET

URL

http://uim_host:port/ocnso/1.1/vnf/vnfId

where vnfId is the identifier of the VNF.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "1500001",
    "name": "NSO_E",
    "status": "Assigned",
    "descriptorName": "Juniper_vSRX",
    "serviceId": "1575002",
    "serviceName": "NSO_EJuniper_vSRX_Service",
    "serviceStatus": "IN_SERVICE",
    "serviceDescriptorName": "Juniper_vSRX_Service",
    "version": "1.0",
    "externalId": "1500001",
    "businessInteractionId": "1575002",
    "businessInteractionStatus": "COMPLETED",
    "deploymentFlavor": "standard",
    "connectionPoints": [
      {
        "id": "1500002-1",
        "name": "CP03",
        "ipAddress": {
          "address": "192.0.2.12",
          "network": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
          "externalId": "4c8d514b-f933-4065-8baa-fab1556c6381"
        }
      },
      {
        "id": "1500002-2",
        "name": "CP01",
        "ipAddress": {
          "address": "192.0.2.13",
          "network": "1575001_Data_IN(ONAP21MitakaCloud2)",
          "externalId": "c4ee6127-c29f-489d-9993-732e822052c2"
        }
      },
      {
        "id": "1500002-3",
        "name": "CP02",
        "ipAddress": {
          "address": "192.0.2.14",
          "network": "1575001_Data_OUT(ONAP21MitakaCloud2)",
          "externalId": "ed241427-a429-46c1-8425-dd1a89e5ec77"
        }
      }
    ],
    "vdus": [
      {
        "id": "1500002",
        "name": "NSO_NS_E_1500001_1500002",
        "status": "Assigned",
        "descriptorName": "Juniper_vSRX_VDU",
        "imageName": "vsrx-12.1X47-D20.7-npaas-v0.3",
        "availabilityZoneName": "nova",
        "externalID": "f3ab2c68-3746-4ab1-a17d-e24771b420f6",
        "host": "417ebf996e80c98e2d3781a089a2089b295a1a011e74f0475e4cbdcb",
        "flavor": {
          "name": "vsrx.medium",
          "cpus": "2",
          "memory": "4096.0",
          "disk": "20.0"
        },
        "vnfcs": [
          {
            "connectionPoints": [
              {
                "id": "1500002-1",
                "name": "CP03",
                "ipAddress": {
                  "address": "192.0.2.21",
                  "network": "nfvo-poc3-mgmt(ONAP21MitakaCloud2)",
                  "externalId": "4c8d514b-f933-4065-8baa-fab1556c6381"
                }
              },
              {
                "id": "1500002-2",
                "name": "CP01",
                "ipAddress": {
                  "address": "192.0.2.22",
                  "network": "1575001_Data_IN(ONAP21MitakaCloud2)",
                  "externalId": "c4ee6127-c29f-489d-9993-732e822052c2"
                }
              },
              {
                "id": "1500002-3",
                "name": "CP02",
                "ipAddress": {
                  "address": "192.0.2.23",
                  "network": "1575001_Data_OUT(ONAP21MitakaCloud2)",
                  "externalId": "ed241427-a429-46c1-8425-dd1a89e5ec77"
                }
              }
            ]
          }
        ],
        "parameters": []
      }
    ]
  }
}  

Get VNF Status

Retrieves the status information of a VNF and the VIM given the input VNF identifier.

Method

GET

URL

http://uim_host:port/ocnso/1.1/vnf/vnfId/status

where vnfId is the identifier of the VNF.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": {
      "id": "75085",
      "name": "ChkptVNF_CP_B253",
      "status": "Assigned",
      "descriptorName": "Checkpoint_NG_FW"
   }
}

Heal VDU

Heals a VDU by rebooting the virtual machine on which the VDU is deployed.

Method

POST

URL

http://uim_host:port/ocnso/1.1/vnf/vnfId/vdus/vduId/heal

where:

  • vnfId is the required identifier of the VNF.

  • vduId is the required identifier of the VDU.

Sample Request

This API does not require a request body.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": "VDU has been healed successfully"
}

Get NFP

Retrieves the details of network forwarding paths (NFPs) in a network service.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/nfps

where:

  • uim_host is the name of the host on which Oracle Communications Unified Inventory Management (UIM) is installed

  • port is the port number of the machine on which UIM is installed

  • networkServiceId is the identifier of the network service

Sample Request

This API does not require any request parameters.

Sample Response

{
  "status": "SUCCESS",
  "code": "202",
  "data": [
    {
      "name": "nfp1",
      "id": "7f8a6e43-b99b-4b55-8d57-c6024abc07ba",
      "vnffgName": "vnffg1",
      "forwrdingPolicy": "SYMMETRIC",
      "ingressEP": {
        "name": "Service_EP1",
        "ingress": {
          "id": "bca938af-4a5f-4d6f-a74e-38f52d1f1f81",
          "name": "CP112"
        }
      },
      "vnfs": [
        {
          "name": "INGRESS_Cirros_A_VNF_150113",
          "type": "Cirros_A_VNF",
          "ingress": {
            "id": "bca938af-4a5f-4d6f-a74e-38f52d1f1f81",
            "name": "CP112"
          },
          "egress": {
            "id": "174c480d-c36a-450b-b18d-ac4c085d4875",
            "name": "CP113"
          }
        },
        {
          "name": "INGRESS_Cirros_C_VNF_150119",
          "type": "Cirros_C_VNF",
          "ingress": {
            "id": "34925c8d-c5e6-4394-b40f-01c18d710a62",
            "name": "CP312"
          },
          "egress": {
            "id": "0ead4a65-30dd-42f2-ae9e-00ff7e6688b2",
            "name": "CP313"
          }
        },
        {
          "name": "INGRESS_Cirros_D_VNF_150115",
          "type": "Cirros_D_VNF",
          "ingress": {
            "id": "0332a2a0-b35a-468c-b2bf-e60971362da7",
            "name": "CP412"
          },
          "egress": {
            "id": "8b01a300-768d-480d-8726-2af41d1d2839",
            "name": "CP413"
          }
        }
      ],
      "egressEP": {
        "name": "Service_EP3",
        "egress": {
          "id": "8b01a300-768d-480d-8726-2af41d1d2839",
          "name": "CP413"
        }
      }
    },
    {
      "name": "nfp2",
      "id": "d3d6a2b8-4afe-4626-8608-d8d223d4324e",
      "vnffgName": "vnffg1",
      "forwrdingPolicy": "SYMMETRIC",
      "ingressEP": {
        "name": "Service_EP1",
        "ingress": {
          "id": "bca938af-4a5f-4d6f-a74e-38f52d1f1f81",
          "name": "CP112"
        }
      },
      "vnfs": [
        {
          "name": "INGRESS_Cirros_A_VNF_150113",
          "type": "Cirros_A_VNF",
          "ingress": {
            "id": "bca938af-4a5f-4d6f-a74e-38f52d1f1f81",
            "name": "CP112"
          },
          "egress": {
            "id": "174c480d-c36a-450b-b18d-ac4c085d4875",
            "name": "CP113"
          }
        },
        {
          "name": "INGRESS_Cirros_D_VNF_150115",
          "type": "Cirros_D_VNF",
          "ingress": {
            "id": "0332a2a0-b35a-468c-b2bf-e60971362da7",
            "name": "CP412"
          },
          "egress": {
            "id": "8b01a300-768d-480d-8726-2af41d1d2839",
            "name": "CP413"
          }
        }
      ],
      "egressEP": {
        "name": "Service_EP3",
        "egress": {
          "id": "8b01a300-768d-480d-8726-2af41d1d2839",
          "name": "CP413"
        }
      }
    },
    {
      "name": "nfp3",
      "id": "37b2b755-e22a-4d2c-b392-7ae9c0bce21e",
      "vnffgName": "vnffg2",
      "forwrdingPolicy": "SYMMETRIC",
      "ingressEP": {
        "name": "Service_EP2",
        "ingress": {
          "id": "67e864e8-b38d-4686-ac92-90359174273c",
          "name": "CP212"
        }
      },
      "vnfs": [
        {
          "name": "INGRESS_Cirros_B_VNF_150111",
          "type": "Cirros_B_VNF",
          "ingress": {
            "id": "67e864e8-b38d-4686-ac92-90359174273c",
            "name": "CP212"
          },
          "egress": {
            "id": "14df75b6-2f63-49dc-84d4-3e0efea44c0e",
            "name": "CP213"
          }
        },
        {
          "name": "INGRESS_Cirros_C_VNF_150119",
          "type": "Cirros_C_VNF",
          "ingress": {
            "id": "34925c8d-c5e6-4394-b40f-01c18d710a62",
            "name": "CP312"
          },
          "egress": {
            "id": "0ead4a65-30dd-42f2-ae9e-00ff7e6688b2",
            "name": "CP313"
          }
        },
        {
          "name": "INGRESS_Cirros_E_VNF_150117",
          "type": "Cirros_E_VNF",
          "ingress": {
            "id": "28ef2fcd-081c-454e-acb6-e3cefd629d63",
            "name": "CP512"
          },
          "egress": {
            "id": "6f1efd8d-6e5a-42e6-91d3-89b83841369e",
            "name": "CP513"
          }
        }
      ],
      "egressEP": {
        "name": "Service_EP4",
        "egress": {
          "id": "6f1efd8d-6e5a-42e6-91d3-89b83841369e",
          "name": "CP513"
       }
      }
    },
    {
      "name": "nfp4",
      "id": "79d726fe-e68f-4fce-bd9b-5f445cad9dff",
      "vnffgName": "vnffg2",
      "forwrdingPolicy": "SYMMETRIC",
      "ingressEP": {
        "name": "Service_EP2",
        "ingress": {
          "id": "67e864e8-b38d-4686-ac92-90359174273c",
          "name": "CP212"
        }
      },
      "vnfs": [
        {
          "name": "INGRESS_Cirros_B_VNF_150111",
          "type": "Cirros_B_VNF",
          "ingress": {
            "id": "67e864e8-b38d-4686-ac92-90359174273c",
            "name": "CP212"
          },
          "egress": {
            "id": "14df75b6-2f63-49dc-84d4-3e0efea44c0e",
            "name": "CP213"
          }
        },
        {
          "name": "INGRESS_Cirros_E_VNF_150117",
          "type": "Cirros_E_VNF",
          "ingress": {
            "id": "28ef2fcd-081c-454e-acb6-e3cefd629d63",
            "name": "CP512"
          },
          "egress": {
            "id": "6f1efd8d-6e5a-42e6-91d3-89b83841369e",
            "name": "CP513"
          }
        }
      ],
      "egressEP": {
        "name": "Service_EP4",
        "egress": {
          "id": "6f1efd8d-6e5a-42e6-91d3-89b83841369e",
          "name": "CP513"
        }
      }
    }
  ]
}

Create Classifier

Creates a classifier for a specific policy in the network service.

Method

POST

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/flow-classifier

where:

  • uim_host is the name of the host on which UIM is installed

  • port is the port number of the machine on which UIM is installed

  • networkServiceId is the identifier of the network service

Sample Request

{
    "policyName":"standard"
 
}
 

The input policyName is the name of the policy for which you want to create a classifier.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "message": "[INV-432008] Classifier(s) created successfully for the policy standard.",
  "data": "[INV-432008] Classifier(s) created successfully for the policy standard."
}

Delete Classifier

Deletes an existing classifier for a specific policy in the network service.

Method

DELETE

URL

http://uim_host:port/ocnso/1.1/ns/networkServiceId/flow-classifier

where:

  • uim_host is the name of the host on which UIM is installed

  • port is the port number of the machine on which UIM is installed

  • networkServiceId is the identifier of the network service

Sample Request

{
    "policyName":"standard"
 
}
 

The input policyName is the name of the policy for which you want to delete a classifier.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "message": "[INV-432008] Classifier(s) deleted successfully for the policy standard.",
  "data": "[INV-432008] Classifier(s) deleted successfully for the policy standard."
}

Register PNF

Registers or creates a new PNF in inventory.

Method

POST

URL

http://uim_host:port/ocnso/1.1/pnfs

Before registering a PNF, you must register the EMS. In the PNF registration request, specify the ID of the EMS in the id attribute under the management parameter.

Sample Request

{
  "name": "xtv59",
  "descriptorName": "Cisco_xRV",
  "description": "",
  "userName": "user",
  "pswd": "password",
  "sslEnabled": false,
  "sshKey": "7b:ab:75:32:9e:b6:6c:4b:29:dc",
  "ipAddress": "192.0.2.252",
  "management": {
    "id": "225001",
    "name": "ems5111",
    "mgmtInterface": "EMS",
    "descriptorName": "Cisco_xRV_EMS"
  },
  "parameters": [               
  
  ]
}

Table 7-8 describes the parameters in this request.

Table 7-8 Request Parameters

Parameter Name Description Required or Optional

name

Name of the PNF that you want to add.

Required

descriptorName

Name of the PNF descriptor.

Required

description

Description of the PNF.

Optional

userName

User name of the PNF.

Required

pswd

Password of the PNF.

Required

sslEnabled

Specify true if SSL is enabled for the PNF; otherwise, specify false.

Required

sshKey

SSH key of the PNF.

Optional

ipAddress

IP address of the PNF.

Required

management:{ id

ID of the EMS.

Optional

management:{ name

Name of the EMS.

Optional

management:{ mgmtInterface

Type of the interface.

Optional

management:{ descriptorName

Name of the EMS descriptor.

Optional

parameters:[

You must specify this parameter; however, you can choose to not specify any name-value pairs within this parameter, as follows:

"parameters": [               
  
]

Required


Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "525003",
    "name": "xtv598912",
    "descriptorName": "Cisco_xRV",
    "description": "",
    "ipAddress": "192.0.2.252",
    "userName": "user",
    "pswd": "****",
    "sslEnabled": false,
    "sshKey": "7b:ab:75:32:9e:b6:6c:4b:29:dc",
    "parameters": [
      {}
    ],
    "management": {
      "id": "225001",
      "name": "ems5111",
      "mgmtInterface": "EMS",
      "descriptorName": "Cisco_xRV_EMS"
    }
  }
}

Update PNF

Updates an existing registered PNF. The update persists the new attribute values to the inventory database.

Method

PUT

URL

http://uim_host:port/ocnso/1.1/pnfs/pnfId

where pnfId is the identifier of the PNF that you want to update.

Sample Request

{
   "pswd": "password",
   "sshKey": "7b:ab:75:32:9e:b6:6c:4b:29:dc"
}

Table 7-9 describes the parameters in this request.

Table 7-9 Request Parameters

Parameter Name Description Required or Optional

pswd

Password of the PNF.

Required

sshKey

SSH key of the PNF.

Required


Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "525003",
    "name": "xtv598912",
    "descriptorName": "Cisco_xRV",
    "description": "",
    "ipAddress": "192.0.2.252",
    "userName": "user",
    "pswd": "****",
    "sslEnabled": false,
    "sshKey": "7b:ab:75:32:9e:b6:6c:4b:29:dc",
    "parameters": [
      {}
    ]
  }
}

Get PNFs

Retrieves the list of active PNFs that are related to the input PNF descriptor.

Method

GET

URL

http://uim_host:port/ocnso/1.1/pnfs?descriptorName=pnfdName

where pnfdName is the name of the PNF descriptor.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": [
      {
         "id": "22001",
         "name": "xtv0018",
         "descriptorName": "Cisco_xRV",
         "ipAddress": "192.0.2.228",
         "userName": "user2",
         "pswd": "****",
         "sslEnabled": false,
         "sshKey": "",
         "parameters": [
            {}
         ],
         "management": {}
      },
      {
         "id": "300012",
         "name": "xtv592",
         "descriptorName": "Cisco_xRV",
         "ipAddress": "192.0.2.226",
         "userName": "user8",
         "pswd": "****",
         "sslEnabled": false,
         "sshKey": "",
         "parameters": [
            {}
         ],
         "management": {
            "id": "75007",
            "name": "ems363",
            "mgmtInterface": "EMS",
            "descriptorName": "Cisco_xRV_EMS"
         }
      },
      {
         "id": "300016",
         "name": "xtv595",
         "descriptorName": "Cisco_xRV",
         "ipAddress": "192.0.2.227",
         "userName": "user5",
         "pswd": "****",
         "sslEnabled": false,
         "sshKey": "",
         "parameters": [
            {}
         ],
         "management": {}
      }
   ]
}

Get PNF Details

Retrieves the details of a PNF given the PNF identifier.

Method

GET

URL

http://uim_host:port/ocnso/1.1/pnfs/pnfId

where pnfdId is the identifier of the PNF that you want to retrieve.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": {
      "id": "525003",
      "name": "xtv59",
      "descriptorName": "Cisco_xRV",
      "description": "",
      "ipAddress": "192.0.2.224",
      "userName": "user",
      "pswd": "****",
      "sslEnabled": false,
      "sshKey": "",
      "parameters": [
         {}
      ],
      "management": {
         "id": "225001",
         "name": "ems5111",
         "mgmtInterface": "EMS",
         "descriptorName": "Cisco_xRV_EMS"
      }
   }
}

Unregister PNF

Unregisters an existing PNF. The request deletes the PNF matching the input identifier value from the inventory database.

Method

DELETE

URL

http://uim_host:port/ocnso/1.1/pnfs/pnfId

where pnfId is the identifier of the PNF that you want to unregister.

Sample Request

This API does not require a request body.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "message": "[INV-430925] PNF 300007 is deleted successfully."
}

Register EMS

Register or create a new EMS in inventory. Ensure that each EMS that you are registering has a unique name.

Method

POST

URL

http://uim_host:port/ocnso/1.1/ems

Sample Request

{
 "id": "1",
 "name": "IPSA",
 "description": "Oracle generic ems",
 "userName": "admin",
 "pswd": "password",
 "ipAddress": "10.248.4.237",
 "port": "7002",
 "sslEnabled": false,
 "protocol": "REST"
"emsUrl":"http://10.248.4.237:7002/Oracle/CGBU/IPSA/DomainController/resources/data/devices"
}

Table 7-10 describes the parameters in this request.

Table 7-10 Request Parameters

Parameter Name Description Required or Optional

id

Unique ID of the EMS.

Required

name

Name of the EMS.

Required

description

Description of the EMS.

Optional

userName

User name of the EMS.

Required

pswd

Password of the EMS.

Required

ipAddress

IP address of the EMS.

Required

port

Port of the EMS.

Required

sslEnabled

Specify true if SSL is enabled for the EMS; otherwise, specify false.

Required

protocol

Type of protocol that is supported by the EMS for communication over the management interface. For example, REST.

Required

emsUrl

URL of the EMS that does configuration management for the VNF.

Required


Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "1",
    "name": "IPSA",
    "description": "Oracle generic EMS",
    "ipAddress": "10.248.4.237",
    "port": "7002",
    "userName": "admin",
    "pswd": "****",
    "sslEnabled": false,
    "protocol": "REST",
    "emsUrl": http://10.248.4.237:7002/Oracle/CGBU/IPSA/DomainController/resources/data/devices,
    "parameters": [
      {}
    ]
  }
}

Update EMS

Updates the details of a registered EMS in inventory. The update persists the new attribute values to the inventory database.

Method

PUT

URL

http://uim_host:port/ocnso/1.1/ems/emsId

where emsId is the identifier of the EMS that you want to update.

Sample Request

{
   "description": "New EMS description",
   "userName": "sys_user_1",
   "pswd": "password"
}

Table 7-11 describes the parameters in this request.

Table 7-11 Request Parameters

Parameter Name Description Required or Optional

description

Description of the EMS.

Optional

userName

User name of the EMS.

Optional

pswd

Password of the EMS.

Optional


Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "375003",
    "name": "ems574236312",
    "descriptorName": "Cisco_xRV_EMS",
    "description": "New EMS description",
    "ipAddress": "192.0.2.212",
    "port": "7001",
    "userName": "sys_user_1",
    "pswd": "****",
    "sslEnabled": false,
    "protocol": "REST",
    "parameters": [
      {}
    ]
  }
}

Get EMSs

Retrieves the list of active EMSs that are related to the input EMS descriptor.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ems?descriptorName=emsdName

where emsdName is the name of the EMS descriptor.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": [
      {
         "id": "225001",
         "name": "ems5111",
         "descriptorName": "Cisco_xRV_EMS",
         "description": "description",
         "ipAddress": "192.0.2.221",
         "port": "1234",
         "userName": "user",
         "pswd": "****",
         "sslEnabled": false,
         "protocol": "REST",
         "parameters": [
            {}
         ]
      },
      {
         "id": "375001",
         "name": "ems5742",
         "descriptorName": "Cisco_xRV_EMS",
         "description": "description",
         "ipAddress": "192.0.2.222",
         "port": "12345",
         "userName": "user",
         "pswd": "****",
         "sslEnabled": false,
         "protocol": "REST",
         "parameters": [
            {}
         ]
      }
   ]
}

Get EMS Details

Retrieves the details of an EMS given the EMS identifier.

Method

GET

URL

http://uim_host:port/ocnso/1.1/ems/emsId

where emsId is the identifier of the EMS that you want to retrieve.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": {
      "id": "375003",
      "name": "ems5742",
      "descriptorName": "Cisco_xRV_EMS",
      "description": "description",
      "ipAddress": "192.0.2.220",
      "port": "1234",
      "userName": "user11",
      "pswd": "****",
      "sslEnabled": false,
      "protocol": "REST",
      "parameters": [
         {}
      ]
   }
}

Unregister EMS

Unregisters an existing EMS. The request deletes the EMS matching the input identifier value from the inventory database.

You can unregister an EMS which is part of a network service that is in In Service status; however, if you terminate that network service, the unregistered EMS is not notified of the network service termination.

Method

DELETE

URL

http://uim_host:port/ocnso/1.1/ems/emsId

where emsId is the identifier of the EMS that you want to unregister.

Sample Request

This API does not require a request body.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "message": "[INV-430936] EMS 75003 is deleted successfully."
}

Get Network Service Descriptors

Retrieves a list of deployed network service descriptors.

Method

GET

URL

http://uim_host:port/ocnso/1.1/nsd

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": [
      "NPaas",
      "ResidentialGateway"
   ]
}

Get Network Service Descriptor Details

Retrieves details about a specified network service descriptor.

Method

GET

URL

http://uim_host:port/ocnso/1.1/nsd/nsdName

where nsdName is the name of the network service descriptor.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "name": "NPaaS",
    "virtualLinks": [
      {
        "id": "ManagementNetwork",
        "name": "ManagementNetwork",
        "referencedCPs": [
          {
            "id": "CP03",
            "name": "CP03",
            "type": "MANAGEMENT",
            "vnfdId": "Juniper_vSRX"
          },
          {
            "id": "CP03",
            "name": "CP03",
            "type": "MANAGEMENT",
            "vnfdId": "Checkpoint_NG_FW"
          }
        ]
      },
      {
        "id": "Data_IN",
        "name": "Data_IN",
        "referencedCPs": [
          {
            "id": "CP01",
            "name": "CP01",
            "type": "EXTERNAL",
            "vnfdId": "Juniper_vSRX"
          },
          {
            "id": "CP01",
            "name": "CP01",
            "type": "EXTERNAL",
            "vnfdId": "Checkpoint_NG_FW"
          }
        ]
      },
      {
        "id": "Data_OUT",
        "name": "Data_OUT",
        "referencedCPs": [
          {
            "id": "CP02",
            "name": "CP02",
            "type": "EXTERNAL",
            "vnfdId": "Juniper_vSRX"
          },
          {
            "id": "CP02",
            "name": "CP02",
            "type": "EXTERNAL",
            "vnfdId": "Checkpoint_NG_FW"
          }
        ]
      }
    ],
    "deploymentFlavors": [
      {
        "name": "Checkpoint",
        "constituentVNFs": [
          {
            "vnfRefId": "Checkpoint_NG_FW",
            "deploymentFlavorReference": "standard",
            "minInstances": 1,
            "maxInstances": 1
          }
        ]
      },
      {
        "name": "Juniper",
        "constituentVNFs": [
          {
            "vnfRefId": "Juniper_vSRX",
            "deploymentFlavorReference": "standard",
            "minInstances": 1,
            "maxInstances": 1
          }
        ]
      }
    ],
    "referencedVNFs": [
      "Checkpoint_NG_FW",
      "Juniper_vSRX"
    ],
    "forwardingGrpahs": [
      {
        "id": "data-vnffg",
        "name": "data-vnffg",
        "isDefault": false,
        "referredVNFDs": [
          "Juniper_vSRX"
        ],
        "referredVLDs": [],
        "referredEndpoints": [
          "Service_EP1",
          "Service_EP2"
        ],
        "forwardingPaths": [
          {
            "id": "nfp1",
            "name": "nfp1",
            "forwardingPolicy": "SYMMETRIC",
            "sourceEndpoint": "Service_EP1",
            "destinationEndpoint": "Service_EP2",
            "connectionPoints": [
              "CP01",
              "CP02"
            ]
          }
        ]
      }
    ],
    "policies": [
      {
        "id": "premium",
        "name": "premium",
        "type": "traffic-classification",
        "rules": [
          {
            "id": "rule1",
            "name": "rule1",
            "type": "traffic-classification",
            "action": "nfp-ref-id:nfp1",
            "referredFG": "data-vnffg",
            "params": [
              {
                "name": "protocol",
                "value": "UDP"
              }
            ]
          }
        ]
      },
      {
        "id": "standard",
        "name": "standard",
        "type": "traffic-classification",
        "rules": [
          {
            "id": "rule1",
            "name": "rule1",
            "type": "traffic-classification",
            "action": "nfp-ref-id:nfp1",
            "referredFG": "data-vnffg",
            "params": [
              {
                "name": "protocol",
                "value": "UDP"
              }
            ]
          }
        ]
      }
    ]
  }
}

Get Network Service Descriptor VNFDs

Retrieves a list of VNF descriptors that a network service descriptor references.

Method

GET

URL

http://uim_host:port/ocnso/1.1/nsd/nsdName/vnfds

where nsdName is the name of the network service descriptor.

Sample Response

{
   "status": "SUCCESS",
   "code": "200",
   "data": [
      "Checkpoint_NG_FW",
      "Juniper_vSRX"
   ]
}

Get Network Service Descriptor Flavors

Retrieves a list of deployment flavors for a specified network service descriptor.

Method

GET

URL

http://uim_host:port/ocnso/1.1/nsd/nsdName/flavors

where nsdName is the name of the network service descriptor.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": [
    {
      "name": "Checkpoint",
      "constituentVNFs": [
        {
          "vnfRefId": "Checkpoint_NG_FW",
          "deploymentFlavorReference": "standard",
          "minInstances": 1,
          "maxInstances": 1
        }
      ]
    },
    {
      "name": "Juniper",
      "constituentVNFs": [
        {
          "vnfRefId": "Juniper_vSRX",
          "deploymentFlavorReference": "standard",
          "minInstances": 1,
          "maxInstances": 1
        }
      ]
    }
  ]
}

Get VNF Descriptor Details

Retrieves details about a specified VNF descriptor.

Method

GET

URL

http://uim_host:port/ocnso/1.1/vnfd/vnfdName

where vnfdName is the name of the VNF descriptor.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": {
    "id": "Juniper_vSRX",
    "name": "Juniper_vSRX",
    "vendor": "Oracle",
    "version": "1.0",
     "integration": [
      (
            "ems": "IPSA",
            "hasHeatTemplate": "true"
       }
      ],
      "vdus": [
      {
        "id": "Juniper_vSRX_VDU",
        "name": "Juniper_vSRX_VDU",
        "imageReference": "vsrx-v1.0",
        "vnfComponents": [
          {
            "id": "vsrxc",
            "name": "vsrxc",
            "connectionPoints": [
              {
                "id": "CP03",
                "name": "CP03",
                "type": "MANAGEMENT",
                "vnfdId": "Juniper_vSRX"
              },
              {
                "id": "CP01",
                "name": "CP01",
                "type": "EXTERNAL",
                "vnfdId": "Juniper_vSRX"
              },
              {
                "id": "CP02",
                "name": "CP02",
                "type": "EXTERNAL",
                "vnfdId": "Juniper_vSRX"
              }
            ]
          }
        ]
      }
    ],
    "deploymentFlavors": [
      {
        "id": "standard",
        "name": "standard",
        "constituentVDUs": [
          {
            "minInstances": 1,
            "maxInstances": 1,
            "constituentVNFCs": [
              {
                "vnfcReference": "vsrxc",
                "minInstances": 1,
                "maxInstances": 1
              }
            ],
            "id": "Juniper_vSRX_VDU",
            "flavorID": "vsrx.medium"
          }
        ]
      }
    ],
    "connectionPoints": [
      {
        "id": "CP03",
        "name": "CP03",
        "type": "MANAGEMENT",
        "vnfdId": "Juniper_vSRX"
      },
      {
        "id": "CP01",
        "name": "CP01",
        "type": "EXTERNAL",
        "vnfdId": "Juniper_vSRX"
      },
      {
        "id": "CP02",
        "name": "CP02",
        "type": "EXTERNAL",
        "vnfdId": "Juniper_vSRX"
      }
    ],
    "vduImages": [
      {
        "id": "vsrx-v1.0",
        "name": "vsrx-12.1X47-D20.7-npaas-v0.3",
        "version": "1.0"
      }
    ],
    "vduFlavors": [
      {
        "id": "vsrx.small",
        "cpus": "2",
        "memory": "2048.0",
        "disk": "20.0"
      },
      {
        "id": "vsrx.medium",
        "cpus": "2",
        "memory": "4096.0",
        "disk": "20.0"
      },
      {
        "id": "m1.medium",
        "cpus": "2",
        "memory": "4096.0",
        "disk": "40.0"
      }
    ]
  }
} 

Get VNF Descriptor Flavors

Retrieves the list of VNF flavors of a specified VNF descriptor.

Method

GET

URL

http://uim_host:port/ocnso/1.1/vnfd/vnfdName/flavors

where vnfdName is the name of the VNF descriptor.

Sample Response

{
  "status": "SUCCESS",
  "code": "200",
  "data": [
    {
      "id": "standard",
      "name": "standard",
      "constituentVDUs": [
        {
          "minInstances": 1,
          "maxInstances": 1,
          "constituentVNFCs": [
            {
              "vnfcReference": "vsrxc",
              "minInstances": 1,
              "maxInstances": 1
            }
          ],
          "id": "Juniper_vSRX_VDU",
          "flavorID": "vsrx.medium"
        }
      ]
    }
  ]
}