@itentialopensource/adapter-etsi_sol002
Version:
This adapter integrates with system described as: ETSI sol002
1,350 lines (1,349 loc) • 1.17 MB
JSON
{
"id": "@itentialopensource/adapter-etsi_sol002",
"type": "Adapter",
"export": "EtsiSol002",
"title": "Etsi_sol002",
"src": "adapter.js",
"roles": [
"admin"
],
"methods": [
{
"name": "iapUpdateAdapterConfiguration",
"summary": "Updates the adapter configuration",
"description": "Updates the adapter configuration file with the provided changes",
"input": [
{
"name": "configFile",
"type": "string",
"info": "The name of the file to change",
"required": true,
"schema": {
"title": "configFile",
"type": "string"
}
},
{
"name": "changes",
"type": "object",
"info": "JSON object containing the configuration changes",
"required": true,
"schema": {
"title": "changes",
"type": "object"
}
},
{
"name": "entity",
"type": "string",
"info": "The entity in which the changes are being made",
"required": false,
"schema": {
"title": "entity",
"type": "string"
}
},
{
"name": "type",
"type": "string",
"info": "The type of file to change - action, schema, or mock",
"required": false,
"schema": {
"title": "type",
"type": "string"
}
},
{
"name": "action",
"type": "string",
"info": "The action to be changed",
"required": false,
"schema": {
"title": "action",
"type": "string"
}
},
{
"name" : "replace",
"type": "boolean",
"info": "True to replace entire mock data, false to merge/append",
"required": false,
"schema": {
"title": "replace",
"type" : "boolean"
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapUpdateAdapterConfiguration"
},
"task": true
},
{
"name": "iapSuspendAdapter",
"summary": "Suspends the adapter",
"description": "Suspends the adapter",
"input": [
{
"name": "mode",
"type": "enum",
"enumerals": [
"pause",
"error"
],
"info": "How incoming requests are handled. Defaults to 'pause'",
"description": "How incoming requests are handled. Defaults to 'pause'",
"schema": {
"title": "mode",
"type": "string"
},
"required": false
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing the adapter suspended status",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapSuspendAdapter"
},
"task": true
},
{
"name": "iapUnsuspendAdapter",
"summary": "Unsuspends the adapter",
"description": "Unsuspends the adapter",
"input": [],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing the adapter suspended status",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapUnsuspendAdapter"
},
"task": true
},
{
"name": "iapGetAdapterQueue",
"summary": "Return the requests that are waiting in the queue if throttling is enabled",
"description": "Return the requests that are waiting in the queue if throttling is enabled",
"input": [],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing the adapter queue",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapGetAdapterQueue"
},
"task": true
},
{
"name": "iapFindAdapterPath",
"summary": "Provides the ability to see if a particular API path is supported by the adapter",
"description": "Provides the ability to see if a particular API path is supported by the adapter",
"input": [
{
"name": "apiPath",
"type": "string",
"info": "The API Path you want to check - make sure to not include base path and version",
"description": "The API Path you want to check - make sure to not include base path and version",
"schema": {
"title": "apiPath",
"type": "string"
},
"required": true
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapFindAdapterPath"
},
"task": true
},
{
"name": "iapTroubleshootAdapter",
"summary": "Runs troubleshoot script for adapter",
"description": "Runs troubleshoot script for adapter",
"input": [
{
"name": "props",
"type": "object",
"info": "Object containing configuration, healthcheck and auth properties {'connProps':{'host': 'api.service.com', 'base_path': '/', 'protocol': 'http', 'port': 443, 'version': 'v1'},'healthCheckEndpoint': '/healthcheck', 'auth': {'auth_method': 'no authentication', 'username': 'username', 'password': 'password'}}",
"required": true,
"schema": {
"title": "props",
"type": "object"
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing the test results",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapTroubleshootAdapter"
},
"task": true
},
{
"name": "iapRunAdapterHealthcheck",
"summary": "Runs healthcheck script for adapter",
"description": "Runs healthcheck script for adapter",
"input": [],
"output": {
"name": "result",
"type": "boolean",
"description": "Whether healthcheck passed or failed",
"schema": {
"title": "result",
"type": "boolean"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapRunAdapterHealthcheck"
},
"task": true
},
{
"name": "iapRunAdapterConnectivity",
"summary": "Runs connectivity check script for adapter",
"description": "Runs connectivity check script for adapter",
"input": [],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing the test results",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapRunAdapterConnectivity"
},
"task": true
},
{
"name": "iapRunAdapterBasicGet",
"summary": "Runs basicGet script for adapter",
"description": "Runs basicGet script for adapter",
"input": [
{
"name": "maxCalls",
"required": false,
"type": "number",
"info": "How many GET endpoints to test (defaults to 5)",
"schema": {
"title": "maxCalls",
"type": "number",
"default": 5
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing the test results",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapRunAdapterBasicGet"
},
"task": true
},
{
"name": "iapMoveAdapterEntitiesToDB",
"summary": "Moves entities from an adapter into the Itential Platform database",
"description": "Moves entities from an adapter into the Itential Platform database",
"input": [],
"output": {
"name": "res",
"type": "object",
"description": "A JSON Object containing status, code and the response from the mongo transaction",
"schema": {
"title": "res",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapMoveAdapterEntitiesToDB"
},
"task": true
},
{
"name": "iapDeactivateTasks",
"summary": "Deactivate the inputted tasks",
"description": "Deactivate the inputted tasks",
"input": [
{
"name": "tasks",
"type": "array",
"description": "Tasks to deactivate",
"schema": {
"title": "tasks",
"type": "array"
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing success status",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapDeactivateTasks"
},
"task": true
},
{
"name": "iapActivateTasks",
"summary": "Activate the inputted tasks",
"description": "activate the inputted tasks",
"input": [
{
"name": "tasks",
"type": "array",
"description": "Tasks to activate",
"schema": {
"title": "tasks",
"type": "array"
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing success status",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapActivateTasks"
},
"task": true
},
{
"name": "iapPopulateEntityCache",
"summary": "Populate the cache for the given entities",
"description": "Populate the cache for the given entities",
"input": [
{
"name": "entityTypes",
"type": "array",
"info": "the entity type(s) to populate",
"required": true,
"schema": {
"title": "entityTypes",
"type": "array"
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapPopulateEntityCache"
},
"task": true
},
{
"name": "iapRetrieveEntitiesCache",
"summary": "Retrieves data from cache for specified entity type",
"description": "Retrieves data from cache for specified entity type",
"input": [
{
"name": "entityType",
"type": "string",
"info": "entity of which to retrieve",
"required": true,
"schema": {
"title": "entityType",
"type": "string"
}
},
{
"name": "options",
"type": "object",
"info": "settings of which data to return and how to return it",
"required": false,
"schema": {
"title": "options",
"type": "object"
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapRetrieveEntitiesCache"
},
"task": true
},
{
"name": "getDevice",
"summary": "Get the Appliance",
"description": "Get the Appliance",
"input": [
{
"name": "deviceName",
"type": "string",
"info": "An Appliance Device Name",
"required": true,
"schema": {
"title": "deviceName",
"type": "string"
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/getDevice"
},
"task": false
},
{
"name": "getDevicesFiltered",
"summary": "Get Appliances that match the filter",
"description": "Get Appliances that match the filter",
"input": [
{
"name": "options",
"type": "object",
"info": "options - e.g. { 'start': 1, 'limit': 20, 'filter': { 'name': 'abc123' } }",
"required": true,
"schema": {
"title": "options",
"type": "object"
}
}
],
"output": {
"name": "result",
"type": "array",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "array"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/getDevicesFiltered"
},
"task": false
},
{
"name": "isAlive",
"summary": "Checks the status for the provided Appliance",
"description": "Checks the status for the provided Appliance",
"input": [
{
"name": "deviceName",
"type": "string",
"info": "An Appliance Device Name",
"required": true,
"schema": {
"title": "deviceName",
"type": "string"
}
}
],
"output": {
"name": "result",
"type": "boolean",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "boolean"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/isAlive"
},
"task": false
},
{
"name": "getConfig",
"summary": "Gets a config for the provided Appliance",
"description": "Gets a config for the provided Appliance",
"input": [
{
"name": "deviceName",
"type": "string",
"info": "An Appliance Device Name",
"required": true,
"schema": {
"title": "deviceName",
"type": "string"
}
},
{
"name": "format",
"type": "string",
"info": "The format to be returned - this is ignored as we always return json",
"required": false,
"schema": {
"title": "format",
"type": "string"
}
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/getConfig"
},
"task": false
},
{
"name": "iapGetDeviceCount",
"summary": "Gets a device count from the system",
"description": "Gets a device count from the system",
"input": [],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapGetDeviceCount"
},
"task": false
},
{
"name": "iapExpandedGenericAdapterRequest",
"summary": "Makes the requested generic call with additional options",
"description": "Makes the requested generic call with additional options via metadata",
"input": [
{
"name": "metadata",
"type": "object",
"info": "metadata for the call (optional)",
"description": "metadata for the call - allows for many enhancements (optional)",
"schema": {
"title": "metadata",
"type": "object"
},
"required": false
},
{
"name": "uriPath",
"type": "string",
"info": "the path of the api call - do not include the host, port, base path or version",
"description": "the path of the api call",
"schema": {
"title": "uriPath",
"type": "string"
},
"required": false
},
{
"name": "restMethod",
"type": "string",
"info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
"description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
"schema": {
"title": "restMethod",
"type": "string"
},
"required": false
},
{
"name": "pathVars",
"type": "object",
"info": "the parameters to be put within the url path (optional)",
"description": "the parameters to be put within the url path (optional)",
"schema": {
"title": "pathVars",
"type": "object"
},
"required": false
},
{
"name": "queryData",
"type": "object",
"info": "the query parameters to be put on the url (optional)",
"description": "the query parameters to be put on the url (optional)",
"schema": {
"title": "queryData",
"type": "object"
},
"required": false
},
{
"name": "requestBody",
"type": "object",
"info": "the payload to be sent with the request (optional)",
"description": "the payload to be sent with the request (optional)",
"schema": {
"title": "requestBody",
"type": "object"
},
"required": false
},
{
"name": "addlHeaders",
"type": "object",
"info": "additional headers to be put on the call (optional)",
"description": "additional headers to be put on the call (optional)",
"schema": {
"title": "addlHeaders",
"type": "object"
},
"required": false
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/iapExpandedGenericAdapterRequest"
},
"task": true
},
{
"name": "genericAdapterRequest",
"summary": "Makes the requested generic call",
"description": "Makes the requested generic call",
"input": [
{
"name": "uriPath",
"type": "string",
"info": "the path of the api call - do not include the host, port, base path or version",
"description": "the path of the api call",
"schema": {
"title": "uriPath",
"type": "string"
},
"required": true
},
{
"name": "restMethod",
"type": "string",
"info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
"description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
"schema": {
"title": "restMethod",
"type": "string"
},
"required": true
},
{
"name": "queryData",
"type": "object",
"info": "the query parameters to be put on the url (optional)",
"description": "the query parameters to be put on the url (optional)",
"schema": {
"title": "queryData",
"type": "object"
},
"required": false
},
{
"name": "requestBody",
"type": "object",
"info": "the payload to be sent with the request (optional)",
"description": "the payload to be sent with the request (optional)",
"schema": {
"title": "requestBody",
"type": "object"
},
"required": false
},
{
"name": "addlHeaders",
"type": "object",
"info": "additional headers to be put on the call (optional)",
"description": "additional headers to be put on the call (optional)",
"schema": {
"title": "addlHeaders",
"type": "object"
},
"required": false
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/genericAdapterRequest"
},
"task": true
},
{
"name": "genericAdapterRequestNoBasePath",
"summary": "Makes the requested generic call",
"description": "Makes the requested generic call",
"input": [
{
"name": "uriPath",
"type": "string",
"info": "the path of the api call - do not include the host, port, base path or version",
"description": "the path of the api call",
"schema": {
"title": "uriPath",
"type": "string"
},
"required": true
},
{
"name": "restMethod",
"type": "string",
"info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
"description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
"schema": {
"title": "restMethod",
"type": "string"
},
"required": true
},
{
"name": "queryData",
"type": "object",
"info": "the query parameters to be put on the url (optional)",
"description": "the query parameters to be put on the url (optional)",
"schema": {
"title": "queryData",
"type": "object"
},
"required": false
},
{
"name": "requestBody",
"type": "object",
"info": "the payload to be sent with the request (optional)",
"description": "the payload to be sent with the request (optional)",
"schema": {
"title": "requestBody",
"type": "object"
},
"required": false
},
{
"name": "addlHeaders",
"type": "object",
"info": "additional headers to be put on the call (optional)",
"description": "additional headers to be put on the call (optional)",
"schema": {
"title": "addlHeaders",
"type": "object"
},
"required": false
}
],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "POST",
"path": "/genericAdapterRequestNoBasePath"
},
"task": true
},
{
"name": "iapRunAdapterLint",
"summary": "Run the adapter lint script to return the results",
"description": "Run the adapter lint script to return the results",
"input": [],
"output": {
"name": "result",
"type": "string",
"description": "A string containing the run results",
"schema": {
"title": "result",
"type": "string"
}
},
"roles": [
"admin"
],
"route": {
"verb": "GET",
"path": "/iapRunAdapterLint"
},
"task": true
},
{
"name": "iapRunAdapterTests",
"summary": "Run the adapter test scripts (baseunit and unit) to return the results",
"description": "Run the adapter test scripts (baseunit and unit) to return the results",
"input": [],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "GET",
"path": "/iapRunAdapterTests"
},
"task": true
},
{
"name": "iapGetAdapterInventory",
"summary": "Provide inventory information abbout the adapter",
"description": "Provide inventory information abbout the adapter",
"input": [],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"title": "result",
"type": "object"
}
},
"roles": [
"admin"
],
"route": {
"verb": "GET",
"path": "/iapGetAdapterInventory"
},
"task": true
},
{
"name": "getApiVersions",
"summary": "Retrieve API version information",
"description": "The GET method reads API version information. This method shall follow the provisions specified in table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not supported.",
"input": [],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"description": "This type represents API version information.\n",
"type": "object",
"required": [
"uriPrefix",
"apiVersions"
],
"properties": {
"uriPrefix": {
"description": "Specifies the URI prefix for the API, in the following form {apiRoot}/{apiName}/{apiMajorVersion}/.\n",
"type": "string"
},
"apiVersions": {
"description": "Version(s) supported for the API signaled by the uriPrefix attribute.\n",
"type": "array",
"items": {
"type": "object",
"required": [
"version"
],
"properties": {
"version": {
"description": "Identifies a supported version. The value of the version attribute shall be a version identifier as specified in clause 9.1 (SOL013).\n",
"type": "string"
},
"isDeprecated": {
"description": "If such information is available, this attribute indicates whether use of the version signaled by the version attribute is deprecated (true) or not (false).\nA deprecated version is still supported by the API producer but is recommended not to be used any longer. When a version is no longer supported, it does not appear in the response body.\n",
"type": "boolean"
},
"retirementDate": {
"description": "Date-time stamp. Representation: String formatted according to IETF RFC 3339.\n",
"type": "string"
}
}
}
}
}
}
},
"roles": [
"admin"
],
"route": {
"verb": "GET",
"path": "/getApiVersions"
},
"task": true
},
{
"name": "getConfiguration",
"summary": "Read VNF/VNFC configuration from VNF",
"description": "The client can use this method to read configuration information about a VNF instance and/or its VNFC instances.",
"input": [],
"output": {
"name": "result",
"type": "object",
"description": "A JSON Object containing status, code and the result",
"schema": {
"description": "This type represents configuration parameters of a VNF instance and its VNFC instances.\n",
"type": "object",
"required": [
"vnfConfigurationData"
],
"properties": {
"vnfConfigurationData": {
"description": "This type represents configuration parameters of a VNF instance.\n",
"type": "object",
"properties": {
"extCpConfig": {
"description": "Configuration parameters for the external CPs of the VNF instance.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a CP instance.\n",
"type": "object",
"required": [
"cpId",
"cpdId",
"addresses"
],
"properties": {
"cpId": {
"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
"type": "string"
},
"cpdId": {
"description": "An identifier that is unique within a VNF descriptor.\n",
"type": "string"
},
"addresses": {
"description": "Network address and port assigned to the CP.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a CP instance address.\n * NOTE 1: Either \"address\" or \"useDynamicAddress\" shall be present.\n * NOTE 2: At least one of \"macAddress\" and \"ipAddress\" shall be present.\n",
"type": "object",
"properties": {
"address": {
"description": "Network address that has been configured on the CP. See NOTE 1.\n",
"type": "object",
"properties": {
"macAddress": {
"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
"type": "string"
},
"ipAddress": {
"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.\n",
"type": "string"
}
}
},
"useDynamicAddress": {
"description": "Set to true if an address shall be assigned dynamically. Otherwise set to false. The default value shall be false. See NOTE 1.\n",
"type": "boolean"
},
"port": {
"description": "The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.).\n",
"type": "integer"
}
}
}
}
}
}
},
"dhcpServer": {
"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.\n",
"type": "string"
},
"vnfSpecificData": {
"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
"type": "object"
}
}
},
"vnfcConfigurationData": {
"description": "Configuration parameters of the VNFC instances.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a VNFC instance.\n",
"type": "object",
"required": [
"vnfcInstanceId"
],
"properties": {
"vnfcInstanceId": {
"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
"type": "string"
},
"intCpConfig": {
"description": "Configuration parameters for the internal CPs of the VNFC instance.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a CP instance.\n",
"type": "object",
"required": [
"cpId",
"cpdId",
"addresses"
],
"properties": {
"cpId": {
"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
"type": "string"
},
"cpdId": {
"description": "An identifier that is unique within a VNF descriptor.\n",
"type": "string"
},
"addresses": {
"description": "Network address and port assigned to the CP.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a CP instance address.\n * NOTE 1: Either \"address\" or \"useDynamicAddress\" shall be present.\n * NOTE 2: At least one of \"macAddress\" and \"ipAddress\" shall be present.\n",
"type": "object",
"properties": {
"address": {
"description": "Network address that has been configured on the CP. See NOTE 1.\n",
"type": "object",
"properties": {
"macAddress": {
"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
"type": "string"
},
"ipAddress": {
"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.\n",
"type": "string"
}
}
},
"useDynamicAddress": {
"description": "Set to true if an address shall be assigned dynamically. Otherwise set to false. The default value shall be false. See NOTE 1.\n",
"type": "boolean"
},
"port": {
"description": "The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.).\n",
"type": "integer"
}
}
}
}
}
}
},
"dhcpServer": {
"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.\n",
"type": "string"
},
"vnfcSpecificData": {
"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
"type": "object"
}
}
}
}
}
}
},
"roles": [
"admin"
],
"route": {
"verb": "GET",
"path": "/getConfiguration"
},
"task": true
},
{
"name": "patchConfiguration",
"summary": "Modify VNF/VNFC configuration.",
"description": "This method sets or modifies a configuration resource.",
"input": [
{
"name": "body",
"type": "object",
"info": "The parameter for the configuration modification, as defined in clause 9.5.2.2.: {\"vnfConfigurationData\": {\"extCpConfig\": [{\"cpId\": \"string\", \"cpdId\": \"string\", \"addresses\": [{\"address\": {\"macAddress\": \"string\", \"ipAddress\": \"string\"}, \"useDynamicAddress\": \"boolean\", \"port\": 123}]}], \"dhcpServer\": \"string\", \"vnfSpecificData\": \"object\"}, \"vnfcConfigurationData\": [{\"vnfcInstanceId\": \"string\", \"intCpConfig\": [{\"cpId\": \"string\", \"cpdId\": \"string\", \"addresses\": [{\"address\": {\"macAddress\": \"string\", \"ipAddress\": \"string\"}, \"useDynamicAddress\": \"boolean\", \"port\": 123}]}], \"dhcpServer\": \"string\", \"vnfcSpecificData\": \"object\"}], \"vnfcConfigurationDataDeleteIds\": \"array\"}",
"required": true,
"schema": {
"description": "This type represents request parameters for the \"Set Configuration\" operation.\n * NOTE 1: At least one of \"vnfConfigurationData\" and \"vnfcConfigurationData\"\n shall be present.\n * NOTE 2: The VnfcConfiguration data type can only be used to modify the configuration\n of existing VNFC instances.\n",
"type": "object",
"properties": {
"vnfConfigurationData": {
"description": "This type represents configuration parameters of a VNF instance.\n",
"type": "object",
"properties": {
"extCpConfig": {
"description": "Configuration parameters for the external CPs of the VNF instance.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a CP instance.\n",
"type": "object",
"required": [
"cpId",
"cpdId",
"addresses"
],
"properties": {
"cpId": {
"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
"type": "string"
},
"cpdId": {
"description": "An identifier that is unique within a VNF descriptor.\n",
"type": "string"
},
"addresses": {
"description": "Network address and port assigned to the CP.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a CP instance address.\n * NOTE 1: Either \"address\" or \"useDynamicAddress\" shall be present.\n * NOTE 2: At least one of \"macAddress\" and \"ipAddress\" shall be present.\n",
"type": "object",
"properties": {
"address": {
"description": "Network address that has been configured on the CP. See NOTE 1.\n",
"type": "object",
"properties": {
"macAddress": {
"description": "A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.\n",
"type": "string"
},
"ipAddress": {
"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.\n",
"type": "string"
}
}
},
"useDynamicAddress": {
"description": "Set to true if an address shall be assigned dynamically. Otherwise set to false. The default value shall be false. See NOTE 1.\n",
"type": "boolean"
},
"port": {
"description": "The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.).\n",
"type": "integer"
}
}
}
}
}
}
},
"dhcpServer": {
"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.\n",
"type": "string"
},
"vnfSpecificData": {
"description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n",
"type": "object"
}
}
},
"vnfcConfigurationData": {
"description": "Modifications to configuration data for certain VNFC instances. See NOTE 1 and NOTE 2. If present, the modifications of the \"vnfcConfigurationData\" attribute shall follow these provisions:\n Modifying an attribute that is an array of objects of type \"VnfcConfigurationData\".\n Assumptions:\n 1) \"oldList\" is the \"VnfcConfigurationData\" array to be modified and \"newList\"\n is the \"VnfcConfigurationData\" array that contains the changes.\n 2) \"oldEntry\" is an entry in \"oldList\" and \"newEntry\" is an entry in \"newList\".\n 3) A \"newEntry\" has a \"corresponding entry\" if there exists an \"oldEntry\" that\n has the same content of the \"vnfcInstanceId\" attribute as the \"newEntry\";\n a \"newEntry\" has no corresponding entry if no such \"oldEntry\" exists.\n 4) In any array of \"VnfcConfigurationData\" structures, the content of \"vnfcInstanceId\"\n is unique (i.e. there shall be no two entries with the same content of \"vnfcInstanceId\").\n Provisions:\n 1) For each \"newEntry\" in \"newList\" that has no corresponding entry in \"oldList\",\n the \"oldList\" array shall be modified by adding that \"newEntry\".\n\n 2) For each \"newEntry\" in \"newList\" that has a corresponding \"oldEntry\" in \"oldList\",\n the value of \"oldEntry\" shall be updated with the value of \"newEntry\" according to\n the rules of JSON Merge PATCH (see IETF RFC 7396 ).\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a VNFC instance.\n",
"type": "object",
"required": [
"vnfcInstanceId"
],
"properties": {
"vnfcInstanceId": {
"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
"type": "string"
},
"intCpConfig": {
"description": "Configuration parameters for the internal CPs of the VNFC instance.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a CP instance.\n",
"type": "object",
"required": [
"cpId",
"cpdId",
"addresses"
],
"properties": {
"cpId": {
"description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n",
"type": "string"
},
"cpdId": {
"description": "An identifier that is unique within a VNF descriptor.\n",
"type": "string"
},
"addresses": {
"description": "Network address and port assigned to the CP.\n",
"type": "array",
"items": {
"description": "This type represents configuration parameters of a CP instance address.\n * NOTE 1: Either \"address\" or \"useDynamicAddress\" shall be present.\n * NOTE 2: At least one of \"macAddress\" and \"ipAddress\" shall be present.\n",