| swagger: '2.0' |
| info: |
| version: 1.0.0 |
| title: ONAP SO VNFM Adapter API |
| description: >- |
| Describes the API between SO (Service Orchestrator) and the adapter for VNFM |
| (Virtual Network Function Manager) |
| basePath: /so/vnfm-adapter/v1 |
| schemes: |
| - http |
| - https |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| paths: |
| '/vnfs/{vnfId}': |
| post: |
| tags: |
| - SO VNFM Adapter |
| summary: VNF create |
| description: Create a VNF instance using a VNFM. |
| operationId: vnf_create |
| consumes: |
| - application/json |
| parameters: |
| - required: true |
| type: string |
| description: >- |
| The identifier of the VNF. This must be the vnf-id of an existing |
| generic-vnf in AAI. |
| name: vnfId |
| in: path |
| - in: body |
| name: body |
| description: VNF creation parameters |
| required: true |
| schema: |
| $ref: '#/definitions/CreateVnfRequest' |
| - name: X-ONAP-RequestID |
| description: >- |
| Used to track REST requests for logging purposes. Identifies a |
| single top level invocation of ONAP |
| in: header |
| required: true |
| type: string |
| - name: X-InvocationID |
| description: >- |
| Used to track REST requests for logging purposes. Identifies a |
| single invocation of a single component |
| in: header |
| required: true |
| type: string |
| responses: |
| '202': |
| description: >- |
| The request was accepted for processing, but the processing has not |
| been completed. |
| schema: |
| $ref: '#/definitions/CreateVnfResponse' |
| '400': |
| description: >- |
| An error occurred in the VNFM adapter relating to the given input, |
| for example, if the definition of the given VNF in AAI does not |
| included required information. |
| '404': |
| description: A VNF with the specified ID was not found in AAI. |
| '500': |
| description: >- |
| An error occurred in the VNFM adapter not relating to the given |
| input, or an error is received from the VNFM. |
| delete: |
| tags: |
| - SO VNFM Adapter |
| summary: VNF delete |
| description: Delete an instance of a VNF using a VNFM. |
| operationId: vnf_delete |
| consumes: |
| - application/json |
| parameters: |
| - required: true |
| type: string |
| description: >- |
| The identifier of the VNF. This must be the vnf-id of an existing |
| generic-vnf in AAI |
| name: vnfId |
| in: path |
| - name: X-ONAP-RequestID |
| description: >- |
| Used to track REST requests for logging purposes. Identifies a |
| single top level invocation of ONAP |
| in: header |
| required: true |
| type: string |
| - name: X-InvocationID |
| description: >- |
| Used to track REST requests for logging purposes. Identifies a |
| single invocation of a single component |
| in: header |
| required: true |
| type: string |
| responses: |
| '202': |
| description: >- |
| The request was accepted for processing, but the processing has not |
| been completed. |
| schema: |
| $ref: '#/definitions/DeleteVnfResponse' |
| '400': |
| description: >- |
| An error occurred in the VNFM adapter relating to the given input, |
| for example, if the definition of the given VNF in AAI does not |
| included required information. |
| '404': |
| description: A VNF with the specified ID was not found in AAI. |
| '500': |
| description: >- |
| An error occurred in the VNFM adapter not relating to the given |
| input, or an error is received from the VNFM. |
| '/jobs/{jobId}': |
| get: |
| tags: |
| - SO VNFM Adapter |
| summary: Job query |
| description: Query the status of a job. |
| operationId: job_query |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| parameters: |
| - required: true |
| type: string |
| description: The identifier of the Job. |
| name: jobId |
| in: path |
| - name: X-ONAP-RequestID |
| description: >- |
| Used to track REST requests for logging purposes. Identifies a |
| single top level invocation of ONAP |
| in: header |
| required: true |
| type: string |
| - name: X-InvocationID |
| description: >- |
| Used to track REST requests for logging purposes. Identifies a |
| single invocation of a single component |
| in: header |
| required: true |
| type: string |
| responses: |
| '200': |
| description: '' |
| schema: |
| $ref: '#/definitions/QueryJobResponse' |
| '404': |
| description: A job with the specified ID was not found. |
| '500': |
| description: >- |
| An error occurred in the VNFM adapter not relating to the given |
| input, or an error is received from the VNFM. |
| definitions: |
| CreateVnfRequest: |
| type: object |
| properties: |
| name: |
| type: string |
| description: The name to be applied to the VNF. |
| tenant: |
| $ref: '#/definitions/Tenant' |
| additionalParams: |
| type: object |
| description: >- |
| Additional input parameters for the instantiation process, specific to |
| the VNF being instantiated, as declared in the VNFD as part of |
| "InstantiateVnfOpConfig". |
| additionalProperties: |
| type: string |
| externalVirtualLinks: |
| type: array |
| description: Information about external VLs to connect the VNF to. |
| items: |
| $ref: '#/definitions/ExternalVirtualLink' |
| required: |
| - name |
| - tenant |
| Tenant: |
| type: object |
| description: Details of the tenant that VNFs can be deployed into |
| properties: |
| cloudOwner: |
| type: string |
| description: The owner in AAI of the cloud to which the tenant belongs. |
| regionName: |
| type: string |
| description: The regionName in AAI of the cloud to which the tenant belongs. |
| tenantId: |
| type: string |
| description: The identifier of the tenant in the VIM. |
| required: |
| - cloudOwner |
| - regionName |
| - tenantId |
| CreateVnfResponse: |
| type: object |
| properties: |
| jobId: |
| description: The ID of the job which can be used to query the status of the job |
| type: string |
| required: |
| - jobId |
| DeleteVnfResponse: |
| type: object |
| properties: |
| jobId: |
| description: >- |
| The ID of the job which can be used to query the status of the delete |
| job |
| type: string |
| required: |
| - jobId |
| QueryJobResponse: |
| type: object |
| properties: |
| operationStatusRetrievalStatus: |
| $ref: '#/definitions/OperationStatusRetrievalStatusEnum' |
| id: |
| type: string |
| operation: |
| $ref: '#/definitions/OperationEnum' |
| operationState: |
| $ref: '#/definitions/OperationStateEnum' |
| startTime: |
| type: string |
| format: date-time |
| stateEnteredTime: |
| type: string |
| format: date-time |
| vnfInstanceId: |
| type: string |
| required: |
| - operationStatusRetrievalStatus |
| OperationStatusRetrievalStatusEnum: |
| description: The status of the attempt to retrieve the operation from the VNFM |
| type: string |
| enum: |
| - STATUS_FOUND |
| - WAITING_FOR_STATUS |
| - OPERATION_NOT_FOUND |
| - CANNOT_RETRIEVE_STATUS |
| OperationEnum: |
| description: The operation |
| type: string |
| enum: |
| - INSTANTIATE |
| - SCALE |
| - SCALE_TO_LEVEL |
| - CHANGE_FLAVOUR |
| - TERMINATE |
| - HEAL |
| - OPERATE |
| - CHANGE_EXT_CONN |
| - MODIFY_INFO |
| OperationStateEnum: |
| description: The status of the operation |
| type: string |
| enum: |
| - STARTING |
| - PROCESSING |
| - COMPLETED |
| - FAILED_TEMP |
| - FAILED |
| - ROLLING_BACK |
| - ROLLED_BACK |
| ExternalVirtualLink: |
| description: | |
| This type represents an external VL. |
| type: object |
| required: |
| - id |
| - resourceId |
| - extCps |
| properties: |
| id: |
| description: | |
| An identifier with the intention of being globally unique. |
| type: string |
| tenant: |
| $ref: '#/definitions/Tenant' |
| resourceId: |
| description: | |
| An identifier maintained by the VIM. |
| type: string |
| extCps: |
| description: | |
| External CPs of the VNF to be connected to this external VL. |
| type: array |
| items: |
| description: > |
| This type represents configuration information for external CPs |
| created from a CPD. |
| type: object |
| required: |
| - cpdId |
| properties: |
| cpdId: |
| description: | |
| An identifier that is unique within a VNF descriptor. |
| type: string |
| cpConfig: |
| description: > |
| List of instance data that need to be configured on the CP |
| instances created from the respective CPD. |
| type: array |
| items: |
| description: > |
| This type represents an externally provided link port or |
| network address information per instance of an external |
| connection point. In case a link port is provided, the VNFM |
| shall use that link port when connecting the external CP to |
| the external VL. In a link port is not provided, the VNFM |
| shall create a link port on the external VL, and use that link |
| port to connect the external CP to the external VL. |
| type: object |
| properties: |
| cpInstanceId: |
| description: > |
| An identifier that is unique for the respective type |
| within a VNF instance, but may not be globally unique. |
| type: string |
| linkPortId: |
| description: | |
| An identifier with the intention of being globally unique. |
| type: string |
| cpProtocolData: |
| description: > |
| Parameters for configuring the network protocols on the |
| link port that connects the CP to a VL. The following |
| conditions apply to the attributes "linkPortId" and |
| "cpProtocolData": * The "linkPortId" and "cpProtocolData" |
| attributes shall both be absent for the deletion of an |
| existing external CP instance |
| addressed by cpInstanceId. |
| * At least one of these attributes shall be present for a |
| to-be-created external CP instance or an existing external |
| CP instance. |
| * If the "linkPortId" attribute is absent, the VNFM shall |
| create a link port. |
| |
| * If the "cpProtocolData" attribute is absent, the |
| "linkPortId" attribute shall be provided referencing a |
| pre-created link port, |
| and the VNFM can use means outside the scope of the present |
| document to obtain the pre-configured address information for the |
| connection point from the resource representing the link port. |
| * If both "cpProtocolData" and "linkportId" are provided, |
| the API consumer shall ensure that the cpProtocolData can |
| be used with the |
| pre-created link port referenced by "linkPortId". |
| type: array |
| items: |
| description: | |
| This type represents network protocol data. |
| type: object |
| required: |
| - layerProtocol |
| properties: |
| layerProtocol: |
| description: > |
| Identifier of layer(s) and protocol(s). This |
| attribute allows to signal the addition of further |
| types of layer and protocol in future versions of |
| the present document in a backwards-compatible way. |
| In the current version of the present document, only |
| IP over Ethernet is supported. |
| type: string |
| enum: |
| - IP_OVER_ETHERNET |
| ipOverEthernet: |
| description: > |
| This type represents network address data for IP |
| over Ethernet. |
| type: object |
| properties: |
| macAddress: |
| description: > |
| A MAC address. Representation: string that |
| consists of groups of two hexadecimal digits, |
| separated by hyphens or colons. |
| type: string |
| format: MAC |
| ipAddresses: |
| description: > |
| List of IP addresses to assign to the CP |
| instance. Each entry represents IP address data |
| for fixed or dynamic IP address assignment per |
| subnet. If this attribute is not present, no IP |
| address shall be assigned. |
| type: array |
| items: |
| type: object |
| required: |
| - type |
| properties: |
| type: |
| description: > |
| The type of the IP addresses. Permitted |
| values: IPV4, IPV6. |
| type: string |
| enum: |
| - IPV4 |
| - IPV6 |
| fixedAddresses: |
| description: > |
| Fixed addresses to assign (from the subnet |
| defined by "subnetId" if provided). |
| Exactly one of "fixedAddresses", |
| "numDynamicAddresses" or "ipAddressRange" |
| shall be present. |
| type: array |
| items: |
| description: > |
| An IPV4 or IPV6 address. Representation: |
| In case of an IPV4 address, string that |
| consists of four decimal integers |
| separated by dots, each integer ranging |
| from 0 to 255. In case of an IPV6 |
| address, string that consists of groups |
| of zero to four hexadecimal digits, |
| separated by colons. |
| type: string |
| format: IP |
| numDynamicAddresses: |
| description: > |
| Number of dynamic addresses to assign |
| (from the subnet defined by "subnetId" if |
| provided). Exactly one of |
| "fixedAddresses", "numDynamicAddresses" or |
| "ipAddressRange" shall be present. |
| type: integer |
| addressRange: |
| description: > |
| An IP address range to be used, e.g. in |
| case of egress connections. In case this |
| attribute is present, IP addresses from |
| the range will be used. |
| type: object |
| required: |
| - minAddress |
| - maxAddress |
| properties: |
| minAddress: |
| description: > |
| An IPV4 or IPV6 address. Representation: |
| In case of an IPV4 address, string that |
| consists of four decimal integers |
| separated by dots, each integer ranging |
| from 0 to 255. In case of an IPV6 |
| address, string that consists of groups |
| of zero to four hexadecimal digits, |
| separated by colons. |
| type: string |
| format: IP |
| maxAddress: |
| description: > |
| An IPV4 or IPV6 address. Representation: |
| In case of an IPV4 address, string that |
| consists of four decimal integers |
| separated by dots, each integer ranging |
| from 0 to 255. In case of an IPV6 |
| address, string that consists of groups |
| of zero to four hexadecimal digits, |
| separated by colons. |
| type: string |
| format: IP |
| subnetId: |
| description: > |
| An identifier maintained by the VIM or |
| other resource provider. It is expected to |
| be unique within the VIM instance. |
| type: string |
| extLinkPorts: |
| description: > |
| Externally provided link ports to be used to connect external |
| connection points to this external VL. If this attribute is not |
| present, the VNFM shall create the link ports on the external VL. |
| type: array |
| items: |
| description: > |
| This type represents an externally provided link port to be used to |
| connect an external connection point to an external VL. |
| type: object |
| required: |
| - id |
| - resourceHandle |
| properties: |
| id: |
| description: | |
| An identifier with the intention of being globally unique. |
| type: string |
| resourceHandle: |
| required: |
| - tenant |
| - resourceId |
| type: object |
| description: > |
| This type represents the information that allows addressing a |
| virtualised resource that is used by a VNF instance. |
| properties: |
| tenant: |
| $ref: '#/definitions/Tenant' |
| resourceId: |
| description: > |
| An identifier maintained by the VIM or other resource |
| provider. It is expected to be unique within the VIM |
| instance. |
| type: string |
| vimLevelResourceType: |
| description: > |
| Type of the resource in the scope of the VIM or the resource |
| provider. |
| type: string |