@itentialopensource/adapter-paragon_dcs
Version:
This adapter integrates with system described as: naas/ems/dcs/proto/v1/dcs.proto.
1,530 lines • 58.7 kB
JSON
{
"id": "@itentialopensource/adapter-paragon_dcs",
"type": "Adapter",
"export": "ParagonDcs",
"title": "Paragon_dcs",
"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": "connectivityServiceDisconnectDevice",
"summary": "DisconnectDevice",
"description": "RPC used to terminate device connection.",
"input": [
{
"name": "body",
"type": "object",
"info": ": {\"device_uuid\": \"string\"}",
"required": true,
"schema": {
"type": "object",
"properties": {
"device_uuid": {
"type": "string",
"title": "Unique Id of the device to retrieve connection from DCS cache"
}
},
"definitions": {}
}
}
],
"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": "/connectivityServiceDisconnectDevice"
},
"task": true
},
{
"name": "connectivityServiceOp",
"summary": "Op",
"description": "RPC used to perform operations on device like reboot device or request\nfile put. Takes input as list of commands and returns the result",
"input": [
{
"name": "body",
"type": "object",
"info": ": {\"telemetry\": \"boolean\", \"device_info\": {\"subSystem\": \"Must be one of [UNKNOWN_SUBSYSTEM, Netconf, Cli]\", \"networkOS\": \"string\", \"vendor\": \"string\", \"UUID\": \"string\", \"family\": \"string\", \"component\": \"string\", \"auth\": {\"password\": \"string\", \"user\": \"string\", \"ssh_key\": \"string\"}, \"routingEngines\": \"array\", \"lastConfigSyncedTimeStamp\": \"string\", \"members\": [{\"loginConnectionState\": \"Must be one of [UNKNOWN_CONNECTION_STATUS, UP, DOWN]\", \"serialNumber\": \"string\", \"role\": \"string\", \"id\": \"string\", \"Name\": \"string\"}], \"chassisType\": \"Must be one of [STANDALONE, VIRTUAL_CHASSIS, CHASSIS_CLUSTER]\", \"protocol\": \"Must be one of [UNKNOWN_PROTOCOL, SSH, HTTP]\", \"hardwareModel\": \"string\", \"OSVersion\": \"string\", \"Name\": \"string\"}, \"command\": \"array\", \"timeout\": 123, \"user_input_cmd\": [{\"regexp\": \"string\", \"command\": \"string\"}]}",
"required": true,
"schema": {
"type": "object",
"properties": {
"telemetry": {
"type": "boolean",
"description": "To know whether the request is from application or from HB for metric collection.\nbased on this parameter netconf session is reused. This parameter is applicable only for netconf.\nAlso dedicated netconf sessions of device will be used apart from application requests."
},
"device_info": {
"type": "object",
"properties": {
"subSystem": {
"default": "UNKNOWN_SUBSYSTEM",
"enum": [
"UNKNOWN_SUBSYSTEM",
"Netconf",
"Cli"
],
"type": "string",
"description": "SubSystem to use to communicate with device, applicable for SSH protocol.\n\n - Netconf: Netconf subsystem\n - Cli: Cli subsystem"
},
"networkOS": {
"type": "string",
"title": "junos, evo, ios etc"
},
"vendor": {
"type": "string",
"title": "Juniper, Cisco etc"
},
"UUID": {
"type": "string",
"title": "Device UUID"
},
"family": {
"type": "string",
"title": "Device Family string"
},
"component": {
"type": "string",
"title": "default(junos) or node0/node1 in case of chasis cluster"
},
"auth": {
"type": "object",
"properties": {
"password": {
"type": "string",
"title": "password to ssh to device"
},
"user": {
"type": "string",
"description": "user name to ssh to device."
},
"ssh_key": {
"type": "string",
"description": "ssh public key of the device."
}
},
"description": "AuthInfo username and password to connect to device."
},
"routingEngines": {
"items": {
"type": "string"
},
"type": "array",
"title": "Routing Engines"
},
"lastConfigSyncedTimeStamp": {
"type": "string",
"title": "last configured timestamp"
},
"members": {
"items": {
"type": "object",
"properties": {
"loginConnectionState": {
"default": "UNKNOWN_CONNECTION_STATUS",
"enum": [
"UNKNOWN_CONNECTION_STATUS",
"UP",
"DOWN"
],
"type": "string",
"description": "ConnectionStatus use to publish device connection status UP/DOWN.\n\n - UP: device connection status UP\n - DOWN: device connection status down"
},
"serialNumber": {
"type": "string",
"title": "serial number of the FPC"
},
"role": {
"type": "string",
"title": "FPC role"
},
"id": {
"type": "string",
"title": "FPC Id"
},
"Name": {
"type": "string",
"title": "name of the component, eg JUNOS/Node[id=0]"
}
}
},
"type": "array",
"title": "VC or ChassisCluster members"
},
"chassisType": {
"default": "STANDALONE",
"enum": [
"STANDALONE",
"VIRTUAL_CHASSIS",
"CHASSIS_CLUSTER"
],
"type": "string"
},
"protocol": {
"default": "UNKNOWN_PROTOCOL",
"enum": [
"UNKNOWN_PROTOCOL",
"SSH",
"HTTP"
],
"type": "string",
"description": "Protocol to use to communicate with device.\n\n - SSH: SSH Protocol\n - HTTP: HTTP Protocol"
},
"hardwareModel": {
"type": "string",
"title": "HardwareModel e.g. ex2300, ex3400 etc"
},
"OSVersion": {
"type": "string",
"title": "Component OS Version"
},
"Name": {
"type": "string",
"title": "Device Name"
}
},
"description": "DeviceInfo is the object in which the device details for command are passed from clients to deviceplugins."
},
"command": {
"items": {
"type": "string"
},
"type": "array",
"title": "Holds the list of commands that needs to be executed"
},
"timeout": {
"title": "User specified request timeout",
"type": "integer"
},
"user_input_cmd": {
"items": {
"type": "object",
"properties": {
"regexp": {
"type": "string",
"title": "regular expressions matches the output of device commands"
},
"command": {
"type": "string",
"title": "commands includes list of actual command and user input"
}
}
},
"type": "array",
"title": "list of cli commands that required user inputs to execute commands\nContains commands and regex. Commands contains actual device commands and user inputs\nRegular expressions to match expected console output for the command\nfor example cisco device reboot: Proceed with reload? [confirm]"
}
},
"definitions": {}
}
}
],
"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": "/connectivityServiceOp"
},
"task": true
},
{
"name": "connectivityServiceConnectDevice",
"summary": "ConnectDevice",
"description": "RPC for initiating device connection. The device must be reachable.",
"input": [
{
"name": "body",
"type": "object",
"info": ": {\"edge_uuid\": \"string\", \"least_used\": \"boolean\", \"management_info\": {\"retry\": 123, \"vendor\": \"string\", \"device_uuid\": \"string\", \"ip\": \"string\", \"retry_interval\": 123, \"host_name\": \"string\", \"auth_info\": {\"password\": \"string\", \"user\": \"string\", \"ssh_key\": \"string\"}, \"port\": 123}}",
"required": true,
"schema": {
"type": "object",
"properties": {
"edge_uuid": {
"type": "string",
"title": "edge uuid if the connection to device via edge"
},
"least_used": {
"type": "boolean",
"description": "flag used to identify least used DCS pod.\nIf it sets true which means already least used pod computation is done\nand invoking particular pod instead of dcs service."
},
"management_info": {
"type": "object",
"properties": {
"retry": {
"type": "integer",
"description": "Number of time to retry in case connection to device not established."
},
"vendor": {
"type": "string",
"title": "vendor input for example: juniper, cisco"
},
"device_uuid": {
"type": "string",
"title": "Unique Id of the device to retrieve connection from DCS cache"
},
"ip": {
"type": "string"
},
"retry_interval": {
"type": "integer",
"description": "time interval in seconds to retry."
},
"host_name": {
"type": "string"
},
"auth_info": {
"type": "object",
"properties": {
"password": {
"type": "string",
"title": "password to ssh to device"
},
"user": {
"type": "string",
"description": "user name to ssh to device."
},
"ssh_key": {
"type": "string",
"description": "ssh public key of the device."
}
},
"description": "AuthInfo username and password to connect to device."
},
"port": {
"title": "Management port of the component; \nif not given, connection will use the default port for the protocol",
"type": "integer"
}
},
"description": "ManagementInfo contains the information necessary to dail out device connection."
}
},
"definitions": {}
}
}
],
"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": "/connectivityServiceConnectDevice"
},
"task": true
},
{
"name": "connectivityServiceGet",
"summary": "Get",
"description": "RPC used to retrieve snapshot of the data from device. Takes input\nas list of command that needs to be executed sequentially.",
"input": [
{
"name": "body",
"type": "object",
"info": ": {\"device_info\": {\"subSystem\": \"Must be one of [UNKNOWN_SUBSYSTEM, Netconf, Cli]\", \"networkOS\": \"string\", \"vendor\": \"string\", \"UUID\": \"string\", \"family\": \"string\", \"component\": \"string\", \"auth\": {\"password\": \"string\", \"user\": \"string\", \"ssh_key\": \"string\"}, \"routingEngines\": \"array\", \"lastConfigSyncedTimeStamp\": \"string\", \"members\": [{\"loginConnectionState\": \"Must be one of [UNKNOWN_CONNECTION_STATUS, UP, DOWN]\", \"serialNumber\": \"string\", \"role\": \"string\", \"id\": \"string\", \"Name\": \"string\"}], \"chassisType\": \"Must be one of [STANDALONE, VIRTUAL_CHASSIS, CHASSIS_CLUSTER]\", \"protocol\": \"Must be one of [UNKNOWN_PROTOCOL, SSH, HTTP]\", \"hardwareModel\": \"string\", \"OSVersion\": \"string\", \"Name\": \"string\"}, \"command\": \"array\", \"timeout\": 123, \"user_input_cmd\": [{\"regexp\": \"string\", \"command\": \"string\"}]}",
"required": true,
"schema": {
"type": "object",
"properties": {
"device_info": {
"type": "object",
"properties": {
"subSystem": {
"default": "UNKNOWN_SUBSYSTEM",
"enum": [
"UNKNOWN_SUBSYSTEM",
"Netconf",
"Cli"
],
"type": "string",
"description": "SubSystem to use to communicate with device, applicable for SSH protocol.\n\n - Netconf: Netconf subsystem\n - Cli: Cli subsystem"
},
"networkOS": {
"type": "string",
"title": "junos, evo, ios etc"
},
"vendor": {
"type": "string",
"title": "Juniper, Cisco etc"
},
"UUID": {
"type": "string",
"title": "Device UUID"
},
"family": {
"type": "string",
"title": "Device Family string"
},
"component": {
"type": "string",
"title": "default(junos) or node0/node1 in case of chasis cluster"
},
"auth": {
"type": "object",
"properties": {
"password": {
"type": "string",
"title": "password to ssh to device"
},
"user": {
"type": "string",
"description": "user name to ssh to device."
},
"ssh_key": {
"type": "string",
"description": "ssh public key of the device."
}
},
"description": "AuthInfo username and password to connect to device."
},
"routingEngines": {
"items": {
"type": "string"
},
"type": "array",
"title": "Routing Engines"
},
"lastConfigSyncedTimeStamp": {
"type": "string",
"title": "last configured timestamp"
},
"members": {
"items": {
"type": "object",
"properties": {
"loginConnectionState": {
"default": "UNKNOWN_CONNECTION_STATUS",
"enum": [
"UNKNOWN_CONNECTION_STATUS",
"UP",
"DOWN"
],
"type": "string",
"description": "ConnectionStatus use to publish device connection status UP/DOWN.\n\n - UP: device connection status UP\n - DOWN: device connection status down"
},
"serialNumber": {
"type": "string",
"title": "serial number of the FPC"
},
"role": {
"type": "string",
"title": "FPC role"
},
"id": {
"type": "string",
"title": "FPC Id"
},
"Name": {
"type": "string",
"title": "name of the component, eg JUNOS/Node[id=0]"
}
}
},
"type": "array",
"title": "VC or ChassisCluster members"
},
"chassisType": {
"default": "STANDALONE",
"enum": [
"STANDALONE",
"VIRTUAL_CHASSIS",
"CHASSIS_CLUSTER"
],
"type": "string"
},
"protocol": {
"default": "UNKNOWN_PROTOCOL",
"enum": [
"UNKNOWN_PROTOCOL",
"SSH",
"HTTP"
],
"type": "string",
"description": "Protocol to use to communicate with device.\n\n - SSH: SSH Protocol\n - HTTP: HTTP Protocol"
},
"hardwareModel": {
"type": "string",
"title": "HardwareModel e.g. ex2300, ex3400 etc"
},
"OSVersion": {
"type": "string",
"title": "Component OS Version"
},
"Name": {
"type": "string",
"title": "Device Name"
}
},
"description": "DeviceInfo is the object in which the device details for command are passed from clients to deviceplugins."
},
"command": {
"items": {
"type": "string"
},
"type": "array",
"title": "Holds the list of commands that needs to be executed"
},
"timeout": {
"title": "User specified request timeout",
"type": "integer"
},
"user_input_cmd": {
"items": {
"type": "object",
"properties": {
"regexp": {
"type": "string",
"title": "regular expressions matches the output of device commands"
},
"command": {
"type": "string",
"title": "commands includes list of actual command and user input"
}
}
},
"type": "array",
"title": "list of cli commands that required user inputs to execute commands\nContains commands and regex. Commands contains actual device commands and user inputs\nRegular expressions to match expected console output for the command\nfor example cisco device reboot: Proceed with reload? [confirm]"
}
},
"definitions": {}
}
}
],
"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": "/connectivityServiceGet"
},
"task": true
},
{
"name": "connectivityServiceSet",
"summary": "Set",
"description": "RPC used to modify the configuration on the device. Takes input\nas set of configuration commands along with to commit or validate\nor confirmed commit the commands.",
"input": [
{
"name": "body",
"type": "object",
"info": ": {\"commit_info\": {\"comment\": \"string\", \"synchronize\": \"boolean\", \"auto_confirmed_commit_timeout\": 123, \"commit_check\": \"boolean\"}, \"device_info\": {\"subSystem\": \"Must be one of [UNKNOWN_SUBSYSTEM, Netconf, Cli]\", \"networkOS\": \"string\", \"vendor\": \"string\", \"UUID\": \"string\", \"family\": \"string\", \"component\": \"string\", \"auth\": {\"password\": \"string\", \"user\": \"string\", \"ssh_key\": \"string\"}, \"routingEngines\": \"array\", \"lastConfigSyncedTimeStamp\": \"string\", \"members\": [{\"loginConn