@itentialopensource/adapter-kentik
Version:
This adapter integrates with system described as: kentik apis
1,642 lines (1,641 loc) • 402 kB
JSON
{
"id": "@itentialopensource/adapter-kentik",
"type": "Adapter",
"export": "Kentik",
"title": "Kentik",
"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": "listASGroups",
"summary": "ListASGroups",
"description": "Returns list of configured AS groups.",
"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": "/listASGroups"
},
"task": true
},
{
"name": "createASGroup",
"summary": "CreateASGroup",
"description": "Create configuration for a new AS group. Returns the newly created configuration.",
"input": [
{
"name": "body",
"type": "object",
"info": ": {\"asGroup\": {\"id\": \"string\", \"name\": \"string\", \"asn\": \"array\", \"createdDate\": \"string\", \"updatedDate\": \"string\"}}",
"required": true,
"schema": {
"title": "CreateASGroupRequest",
"required": [
"asGroup"
],
"type": "object",
"properties": {
"asGroup": {
"title": "ASGroupConcise",
"required": [
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "System generated unique identifier",
"readOnly": true
},
"name": {
"type": "string",
"description": "User selected unique name"
},
"asn": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of ASNs"
},
"createdDate": {
"type": "string",
"description": "Creation timestamp (UTC)",
"readOnly": true
},
"updatedDate": {
"type": "string",
"description": "Last modification timestamp (UTC)",
"readOnly": true
}
}
}
},
"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": "/createASGroup"
},
"task": true
},
{
"name": "updateASGroup",
"summary": "UpdateASGroup",
"description": "Replaces configuration of a AS group with attributes in the request. Returns the updated configuration.",
"input": [
{
"name": "asGroupId",
"type": "string",
"info": "System generated unique identifier: string",
"required": true,
"schema": {
"title": "asGroupId",
"type": "string"
}
},
{
"name": "body",
"type": "object",
"info": ": {\"asGroup\": {\"id\": \"string\", \"name\": \"string\", \"asn\": \"array\", \"createdDate\": \"string\", \"updatedDate\": \"string\"}}",
"required": true,
"schema": {
"title": "UpdateASGroupRequest",
"required": [
"asGroup"
],
"type": "object",
"properties": {
"asGroup": {
"title": "ASGroupConcise",
"required": [
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "System generated unique identifier",
"readOnly": true
},
"name": {
"type": "string",
"description": "User selected unique name"
},
"asn": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of ASNs"
},
"createdDate": {
"type": "string",
"description": "Creation timestamp (UTC)",
"readOnly": true
},
"updatedDate": {
"type": "string",
"description": "Last modification timestamp (UTC)",
"readOnly": true
}
}
}
},
"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": "/updateASGroup"
},
"task": true
},
{
"name": "getASGroup",
"summary": "GetASGroup",
"description": "Returns configuration of a AS group specified by ID.",
"input": [
{
"name": "asGroupId",
"type": "string",
"info": "ID of the requested AS group: string",
"required": true,
"schema": {
"title": "asGroupId",
"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": "/getASGroup"
},
"task": true
},
{
"name": "deleteASGroup",
"summary": "DeleteASGroup",
"description": "Deletes configuration of a AS group with specific ID.",
"input": [
{
"name": "asGroupId",
"type": "string",
"info": "ID of the AS group to be deleted: string",
"required": true,
"schema": {
"title": "asGroupId",
"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": "/deleteASGroup"
},
"task": true
},
{
"name": "listMonitors",
"summary": "ListMonitors",
"description": "Returns list of all BGP monitors present in the account.",
"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": "/listMonitors"
},
"task": true
},
{
"name": "createMonitor",
"summary": "CreateMonitor",
"description": "Creates new BGP Monitor and if successful returns its configuration.",
"input": [
{
"name": "body",
"type": "object",
"info": ": {\"monitor\": {\"id\": \"string\", \"name\": \"string\", \"status\": \"Must be one of [BGP_MONITOR_STATUS_UNSPECIFIED, BGP_MONITOR_STATUS_ACTIVE, BGP_MONITOR_STATUS_PAUSED, BGP_MONITOR_STATUS_DELETED]\", \"settings\": {\"allowedAsns\": \"array\", \"targets\": [{\"afi\": \"Must be one of [AFI_UNSPECIFIED, AFI_IP4, AFI_IP6]\", \"safi\": \"Must be one of [SAFI_UNSPECIFIED, SAFI_UNICAST, SAFI_MPLS, SAFI_L3VPN]\", \"prefix\": \"string\"}], \"checkRpki\": \"boolean\", \"includeCoveredPrefixes\": \"boolean\", \"healthSettings\": {\"reachabilityWarning\": 123, \"reachabilityCritical\": 123}, \"notificationChannels\": \"array\", \"notes\": \"string\", \"allowedUpstreams\": \"array\"}, \"cdate\": \"string\", \"edate\": \"string\", \"createdBy\": {\"id\": \"string\", \"email\": \"string\", \"fullName\": \"string\"}, \"lastUpdatedBy\": {\"id\": \"string\", \"email\": \"string\", \"fullName\": \"string\"}, \"labels\": \"array\"}}",
"required": true,
"schema": {
"title": "CreateMonitorRequest",
"required": [
"monitor"
],
"type": "object",
"properties": {
"monitor": {
"title": "BgpMonitor",
"required": [
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "System generated unique identifier",
"readOnly": true
},
"name": {
"type": "string",
"description": "User selected name of the monitor"
},
"status": {
"title": "BgpMonitorStatus",
"enum": [
"BGP_MONITOR_STATUS_UNSPECIFIED",
"BGP_MONITOR_STATUS_ACTIVE",
"BGP_MONITOR_STATUS_PAUSED",
"BGP_MONITOR_STATUS_DELETED"
],
"type": "string",
"description": "- BGP_MONITOR_STATUS_UNSPECIFIED: Invalid value.\n - BGP_MONITOR_STATUS_ACTIVE: Monitor is active.\n - BGP_MONITOR_STATUS_PAUSED: Monitor is paused.\n - BGP_MONITOR_STATUS_DELETED: Monitor is deleted. Not user settable"
},
"settings": {
"title": "BgpMonitorSettings",
"required": [
"targets"
],
"type": "object",
"properties": {
"allowedAsns": {
"type": "array",
"items": {
"type": "integer"
},
"description": "List of ASNs that are valid originators of monitored prefixes"
},
"targets": {
"type": "array",
"items": {
"title": "Nlri",
"required": [
"afi",
"safi",
"prefix"
],
"type": "object",
"properties": {
"afi": {
"title": "Afi",
"enum": [
"AFI_UNSPECIFIED",
"AFI_IP4",
"AFI_IP6"
],
"type": "string"
},
"safi": {
"title": "Safi",
"enum": [
"SAFI_UNSPECIFIED",
"SAFI_UNICAST",
"SAFI_MPLS",
"SAFI_L3VPN"
],
"type": "string"
},
"prefix": {
"type": "string",
"description": "Actual prefix data (format depends on AFI)"
}
}
},
"description": "List of prefixes to monitor"
},
"checkRpki": {
"type": "boolean",
"description": "Enable verification of validity of advertisements of monitored prefixes with respect to RPKI"
},
"includeCoveredPrefixes": {
"type": "boolean",
"description": "Include advertised subnets (sub-prefixes) of monitored prefixes"
},
"healthSettings": {
"title": "BgpHealthSettings",
"type": "object",
"properties": {
"reachabilityWarning": {
"type": "number",
"description": "Threshold (in percents) for triggering warning level alert"
},
"reachabilityCritical": {
"type": "number",
"description": "Threshold (in percents) for triggering critical level alert"
}
}
},
"notificationChannels": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IDs of notification channels for delivery of alerts"
},
"notes": {
"type": "string",
"description": "Free form notes documenting the monitor"
},
"allowedUpstreams": {
"type": "array",
"items": {
"type": "integer"
},
"description": "List of ASNs that are expected to propagate monitored prefixes"
}
}
},
"cdate": {
"type": "string",
"description": "Creation timestamp (UTC)",
"readOnly": true
},
"edate": {
"type": "string",
"description": "Last modification timestamp (UTC)",
"readOnly": true
},
"createdBy": {
"title": "UserInfo",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique system generated ID",
"readOnly": true
},
"email": {
"type": "string",
"description": "E-mail address of the user",
"readOnly": true
},
"fullName": {
"type": "string",
"description": "Full name of the user",
"readOnly": true
}
}
},
"lastUpdatedBy": {
"title": "UserInfo",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique system generated ID",
"readOnly": true
},
"email": {
"type": "string",
"description": "E-mail address of the user",
"readOnly": true
},
"fullName": {
"type": "string",
"description": "Full name of the user",
"readOnly": true
}
}
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": ""
}
}
}
},
"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": "/createMonitor"
},
"task": true
},
{
"name": "getMonitor",
"summary": "GetMonitor",
"description": "Returns configuration of existing BGP monitor with specific ID.",
"input": [
{
"name": "id",
"type": "string",
"info": "ID of the BGP monitor to be retrieved: string",
"required": true,
"schema": {
"title": "id",
"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": "/getMonitor"
},
"task": true
},
{
"name": "deleteMonitor",
"summary": "DeleteMonitor",
"description": "Delete BGP monitor with with specific ID.",
"input": [
{
"name": "id",
"type": "string",
"info": "ID of the BGP monitor to be deleted: string",
"required": true,
"schema": {
"title": "id",
"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": "/deleteMonitor"
},
"task": true
},
{
"name": "updateMonitor",
"summary": "UpdateMonitor",
"description": "Updates configuration of BGP monitor with specific ID and returns updated configuration.",
"input": [
{
"name": "id",
"type": "string",
"info": "System generated unique identifier: string",
"required": true,
"schema": {
"title": "id",
"type": "string"
}
},
{
"name": "body",
"type": "object",
"info": ": {\"monitor\": {\"id\": \"string\", \"name\": \"string\", \"status\": \"Must be one of [BGP_MONITOR_STATUS_UNSPECIFIED, BGP_MONITOR_STATUS_ACTIVE, BGP_MONITOR_STATUS_PAUSED, BGP_MONITOR_STATUS_DELETED]\", \"settings\": {\"allowedAsns\": \"array\", \"targets\": [{\"afi\": \"Must be one of [AFI_UNSPECIFIED, AFI_IP4, AFI_IP6]\", \"safi\": \"Must be one of [SAFI_UNSPECIFIED, SAFI_UNICAST, SAFI_MPLS, SAFI_L3VPN]\", \"prefix\": \"string\"}], \"checkRpki\": \"boolean\", \"includeCoveredPrefixes\": \"boolean\", \"healthSettings\": {\"reachabilityWarning\": 123, \"reachabilityCritical\": 123}, \"notificationChannels\": \"array\", \"notes\": \"string\", \"allowedUpstreams\": \"array\"}, \"cdate\": \"string\", \"edate\": \"string\", \"createdBy\": {\"id\": \"string\", \"email\": \"string\", \"fullName\": \"string\"}, \"lastUpdatedBy\": {\"id\": \"string\", \"email\": \"string\", \"fullName\": \"string\"}, \"labels\": \"array\"}}",
"required": true,
"schema": {
"title": "UpdateMonitorRequest",
"required": [
"monitor"
],
"type": "object",
"properties": {
"monitor": {
"title": "BgpMonitor",
"required": [
"name"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "System generated unique identifier",
"readOnly": true
},
"name": {
"type": "string",
"description": "User selected name of the monitor"
},
"status": {
"title": "BgpMonitorStatus",
"enum": [
"BGP_MONITOR_STATUS_UNSPECIFIED",
"BGP_MONITOR_STATUS_ACTIVE",
"BGP_MONITOR_STATUS_PAUSED",
"BGP_MONITOR_STATUS_DELETED"
],
"type": "string",
"description": "- BGP_MONITOR_STATUS_UNSPECIFIED: Invalid value.\n - BGP_MONITOR_STATUS_ACTIVE: Monitor is active.\n - BGP_MONITOR_STATUS_PAUSED: Monitor is paused.\n - BGP_MONITOR_STATUS_DELETED: Monitor is deleted. Not user settable"
},
"settings": {
"title": "BgpMonitorSettings",
"required": [
"targets"
],
"type": "object",
"properties": {
"allowedAsns": {
"type": "array",
"items": {
"type": "integer"
},
"description": "List of ASNs that are valid originators of monitored prefixes"
},
"targets": {
"type": "array",
"items": {
"title": "Nlri",
"required": [
"afi",
"safi",
"prefix"
],
"type": "object",
"properties": {
"afi": {
"title": "Afi",
"enum": [
"AFI_UNSPECIFIED",
"AFI_IP4",