POMBA Context Builder Swagger
The following is a work in progress. TO DO
Add additional resources from the POMBA Context Builders and Data Sources 'yellow' model
Swagger YAML
Created using https://swagger.io/swagger-editor/
swagger: "2.0"
info:
description: "This is the POMBA Context Builder API. It must be supported by all Context Builders"
version: "0.0.1"
title: "POMBA Context Builder"
termsOfService: "http://onap.org"
contact:
email: "sharon.chisholm@amdocs.com"
host: "onap.org"
basePath: "/v1"
tags:
- name: "service"
description: "Service Instances"
externalDocs:
description: "Find out more"
url: "http://onap.org"
schemes:
- "http"
paths:
/service/context:
get:
tags:
- "pet"
summary: "Get service instance"
description: "Retrieve information about a particular service instance using information avaialble to this specific context builder."
operationId: "findServiceByInstance"
produces:
- "application/json"
parameters:
- name: "ServiceInstanceId"
in: "query"
description: "Service Instance Id of service you are interested in"
type: "string"
- name: "modelVersionId"
in: "query"
description: "Model UUID as published in service model metadata"
type: "string"
- name: "modelInvariantId"
in: "query"
description: "SDC generated invariant id as published in service model metadata"
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/Service"
400:
description: "Missing manadatory field in the request or HTTP header."
404:
description: "Error: Requested '%1' resource was not found."
405:
description: "Method Not Allowed : Invalid HTTP method type used ( PUT,DELETE,POST will be rejected)"
500:
description: "The GET request failed either due to internal Context Builder problem."
security:
- petstore_auth:
- "write:pets"
- "read:pets"
securityDefinitions:
petstore_auth:
type: "oauth2"
authorizationUrl: "http://petstore.swagger.io/oauth/dialog"
flow: "implicit"
scopes:
write:pets: "modify pets in your account"
read:pets: "read your pets"
api_key:
type: "apiKey"
name: "api_key"
in: "header"
definitions:
Service:
type: "object"
properties:
uuid:
type: "string"
description: "Univseral indentifier"
invariantUUID:
type: "string"
name:
type: "string"
description: "Service Name"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
vfList:
type: "array"
items:
$ref: "#/definitions/VNF"
xml:
name: "Service"
VNF:
type: "object"
properties:
uuid:
type: "string"
invariantUUID:
type: "string"
name:
type: "string"
type:
type: "string"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
vfModuleList:
type: "array"
items:
$ref: "#/definitions/VFModule"
vnfcList:
type: "array"
items:
$ref: "#/definitions/VNFC"
xml:
name: "VF"
VFModule:
type: "object"
properties:
uuid:
type: "string"
invariantUUID:
type: "string"
name:
type: "string"
minInstances:
type: "integer"
format: "int32"
maxInstances:
type: "integer"
format: "int32"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
vmList:
type: "array"
items:
$ref: "#/definitions/VM"
networkList:
type: "array"
items:
$ref: "#/definitions/Network"
xml:
name: "VFModule"
VNFC:
type: "object"
properties:
uuid:
type: "string"
invariantUUID:
type: "string"
name:
type: "string"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
xml:
name: "VNFC"
VM:
type: "object"
properties:
uuid:
type: "string"
invariantUUID:
type: "string"
name:
type: "string"
nfNamingCode:
type: "string"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
PServerList:
type: "array"
items:
$ref: "#/definitions/PServer"
IInterfaceList:
type: "array"
items:
$ref: "#/definitions/IInterface"
xml:
name: "VM"
Network:
type: "object"
properties:
uuid:
type: "string"
invariantUUID:
type: "string"
name:
type: "string"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
xml:
name: "Network"
IInterface:
type: "object"
properties:
uuid:
type: "string"
invariantUUID:
type: "string"
name:
type: "string"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
PortList:
type: "array"
items:
$ref: "#/definitions/Port"
xml:
name: "IInterface"
PServer:
type: "object"
properties:
uuid:
type: "string"
invariantUUID:
type: "string"
name:
type: "string"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
xml:
name: "PServer"
Port:
type: "object"
properties:
uuid:
type: "string"
invariantUUID:
type: "string"
name:
type: "string"
dataQuality:
$ref: "#/components/schemas/dataQuality"
attributeList:
type: "array"
items:
$ref: "#/components/schemas/attribute"
xml:
name: "Port"
components:
schemas:
dataQuality:
type: "object"
properties:
status:
type: "string"
enum: [ok, error]
errorText:
type: "string"
required:
- status
xml:
name: "dataQuality"
attribute:
type: "object"
properties:
name:
$ref: "#/components/schemas/fieldName"
value:
type: "string"
dataQuality:
$ref: "#/components/schemas/dataQuality"
required:
- name
- dataQuality
xml:
name: "dataQuality"
fieldName:
type: string
enum:
- adminState
- ipAddress
- hostName
- imageId
- lockedBoolean
- macAddress
- networkType
- networkTechnology
- physicalNetworkName
- sharedNetworkBoolean
- networkRole
- routerExternalBoolean
ApiResponse:
type: "object"
properties:
code:
type: "integer"
format: "int32"
type:
type: "string"
message:
type: "string"
externalDocs:
description: "Find out more about Swagger"
url: "http://swagger.io"
Inputs
Header
Query Parameters
Note that each instantiation of this API within a particular context builder may define each of these parameters as either mandatory, optional or not supported.
Example JSON Response
Note the top level objects is a service
[
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
],
"vfList": [
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"type": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
],
"vfModuleList": [
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"minInstances": 0,
"maxInstances": 0,
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
],
"vmList": [
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"nfNamingCode": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
],
"PServerList": [
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
]
}
],
"IInterfaceList": [
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
],
"PortList": [
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
]
}
]
}
]
}
],
"networkList": [
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
]
}
]
}
],
"vnfcList": [
{
"uuid": "string",
"invariantUUID": "string",
"name": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
},
"attributeList": [
{
"name": "adminState - ipAddress - hostName - lockedBoolean - macAddress - networkType - networkTechnology - physicalNetworkName - sharedNetworkBoolean - networkRole - routerExternalBoolean",
"value": "string",
"dataQuality": {
"status": "ok",
"errorText": "string"
}
}
]
}
]
}
]
}
]