{
  "id": "@itentialopensource/adapter-drivenets_networkcloud",
  "type": "Adapter",
  "export": "DrivenetsNetworkcloud",
  "title": "Drivenets_networkcloud",
  "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": "getLocations",
      "summary": "Retrieve Services for each PoP Location",
      "description": "Retrieve a list of all PoPs and the services available at each location.",
      "input": [
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "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": "/getLocations"
      },
      "task": true
    },
    {
      "name": "getLocation",
      "summary": "Retrieve Services for a Specific PoP",
      "description": "Retrieve a list of the services available at a specific POP location.",
      "input": [
        {
          "name": "location",
          "type": "string",
          "info": ": ",
          "required": true,
          "schema": {
            "title": "location",
            "type": "string"
          }
        },
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "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": "/getLocation"
      },
      "task": true
    },
    {
      "name": "postServiceItem",
      "summary": "Add a Service",
      "description": "The services you can add:\n\n- **Equinix Connect** - Creates a connection between Network Cloud+ and the customer's CPE in the Equinix network.\n\n- **Internet Gateway** - Connects a customer to the internet.\n\n- **Internet Service Provider** - Connects the internet gateway to an ISP.\n\nCombining one or more atomic services and then adding a policy create a solution. For example, the four atomic services above and several policies form the Internet Connect solution.\n\nThe response includes a unique ser...(description truncated)",
      "input": [
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"businessSid\": \"string\", \"businessSidDescription\": \"string\", \"atomicServices\": [{\"atomicServiceTransactionTag\": \"string\", \"atomicServiceType\": \"Must be one of [EQUINIX_CONNECT, INTERNET_GATEWAY, INTERNET_SERVICE_PROVIDER, AZURE_CONNECT]\", \"atomicServiceParams\": \"undefined\", \"circuits\": [{\"circuitTransactionTag\": \"string\", \"params\": \"undefined\"}]}], \"policies\": [{\"policyTransactionTag\": \"string\", \"policyParams\": {\"sourceAtomicServiceTransactionTag\": \"string\", \"DestinationAtomicServiceTransactionTag\": \"string\"}, \"functions\": [{\"functionTransactionTag\": \"string\", \"functionType\": \"string\", \"functionParams\": {\"location\": \"string\", \"direction\": {\"internalAtomicService\": \"undefined\", \"externalAtomicService\": \"undefined\"}, \"functionOrder\": 123, \"params\": \"undefined\"}}]}]}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "businessSid": {
                "type": "string",
                "description": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.",
                "example": "34314231-3425423-123f23-23a2g42"
              },
              "businessSidDescription": {
                "type": "string",
                "description": "Business id description",
                "example": "vADI service of Pepsi"
              },
              "atomicServices": {
                "type": "array",
                "description": "Entries for atomic services",
                "items": {
                  "type": "object",
                  "properties": {
                    "atomicServiceTransactionTag": {
                      "type": "string",
                      "description": "Unique TAG of component per transaction",
                      "example": "MyEquinixConnect1"
                    },
                    "atomicServiceType": {
                      "type": "string",
                      "description": "Type of the atomic service.",
                      "enum": [
                        "EQUINIX_CONNECT",
                        "INTERNET_GATEWAY",
                        "INTERNET_SERVICE_PROVIDER",
                        "AZURE_CONNECT"
                      ]
                    },
                    "atomicServiceParams": {},
                    "circuits": {
                      "type": "array",
                      "description": "Entries for atomic service circuits",
                      "items": {
                        "type": "object",
                        "properties": {
                          "circuitTransactionTag": {
                            "type": "string",
                            "description": "user provided circuit tag",
                            "example": "MyCircuit"
                          },
                          "params": {}
                        }
                      }
                    }
                  },
                  "required": [
                    "atomicServiceTransactionTag",
                    "atomicServiceType"
                  ]
                }
              },
              "policies": {
                "type": "array",
                "description": "Entries for policies",
                "items": {
                  "type": "object",
                  "properties": {
                    "policyTransactionTag": {
                      "type": "string",
                      "description": "user provided policy tag"
                    },
                    "policyParams": {
                      "type": "object",
                      "properties": {
                        "sourceAtomicServiceTransactionTag": {
                          "type": "string",
                          "description": "Unique TAG of component per transaction",
                          "example": "MyEquinixConnect1"
                        },
                        "DestinationAtomicServiceTransactionTag": {
                          "type": "string",
                          "description": "Unique TAG of component per transaction",
                          "example": "MyEquinixConnect1"
                        }
                      },
                      "required": [
                        "sourceAtomicServiceTransactionTag",
                        "DestinationAtomicServiceTransactionTag"
                      ]
                    },
                    "functions": {
                      "type": "array",
                      "description": "Entries for functions",
                      "items": {
                        "type": "object",
                        "properties": {
                          "functionTransactionTag": {
                            "type": "string",
                            "description": "user provided function tag"
                          },
                          "functionType": {
                            "type": "string",
                            "description": "Type of function",
                            "example": "NAT"
                          },
                          "functionParams": {
                            "type": "object",
                            "properties": {
                              "location": {
                                "type": "string"
                              },
                              "direction": {
                                "type": "object",
                                "properties": {
                                  "internalAtomicService": {},
                                  "externalAtomicService": {}
                                }
                              },
                              "functionOrder": {
                                "type": "integer",
                                "default": 1,
                                "minimum": 1,
                                "maximum": 1
                              },
                              "params": {}
                            }
                          }
                        },
                        "required": [
                          "functionType",
                          "functionParams"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "required": [
              "businessSid",
              "atomicServices"
            ],
            "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": "/postServiceItem"
      },
      "task": true
    },
    {
      "name": "putServiceItem",
      "summary": "Update a Service",
      "description": "Update a Service",
      "input": [
        {
          "name": "businessSid",
          "type": "string",
          "info": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.: ",
          "required": true,
          "schema": {
            "title": "businessSid",
            "type": "string"
          }
        },
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"businessSidDescription\": \"string\", \"atomicServices\": [{\"atomicServiceId\": \"string\", \"atomicServiceTransactionTag\": \"string\", \"atomicServiceType\": \"Must be one of [EQUINIX_CONNECT, INTERNET_GATEWAY, INTERNET_SERVICE_PROVIDER, AZURE_CONNECT]\", \"atomicServiceParams\": \"undefined\", \"circuits\": [{\"circuitId\": \"string\", \"circuitTransactionTag\": \"string\", \"params\": \"undefined\"}]}], \"policies\": [{\"policyId\": \"string\", \"policyTransactionTag\": \"string\", \"policyParams\": {\"sourceAtomicService\": \"undefined\", \"destinationAtomicService\": \"undefined\"}, \"functions\": [{\"functionId\": \"string\", \"functionTransactionTag\": \"string\", \"functionType\": \"string\", \"functionParams\": {\"location\": \"string\", \"direction\": {\"internalAtomicService\": \"undefined\", \"externalAtomicService\": \"undefined\"}, \"functionOrder\": 123, \"params\": \"undefined\"}}]}]}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "businessSidDescription": {
                "type": "string",
                "description": "Business id description",
                "example": "vADI service of Pepsi"
              },
              "atomicServices": {
                "type": "array",
                "description": "Entries for atomic services",
                "items": {
                  "type": "object",
                  "properties": {
                    "atomicServiceId": {
                      "type": "string",
                      "description": "Unique UUID of component",
                      "example": "12345-12345-abcdef-abcdef"
                    },
                    "atomicServiceTransactionTag": {
                      "type": "string",
                      "description": "Unique TAG of component per transaction",
                      "example": "MyEquinixConnect1"
                    },
                    "atomicServiceType": {
                      "type": "string",
                      "description": "Type of the atomic service.",
                      "enum": [
                        "EQUINIX_CONNECT",
                        "INTERNET_GATEWAY",
                        "INTERNET_SERVICE_PROVIDER",
                        "AZURE_CONNECT"
                      ]
                    },
                    "atomicServiceParams": {},
                    "circuits": {
                      "type": "array",
                      "description": "Entries for atomic service circuits",
                      "items": {
                        "type": "object",
                        "properties": {
                          "circuitId": {
                            "type": "string",
                            "description": "Unique circuit ID issued by the Network Cloud+ to identify an circuit."
                          },
                          "circuitTransactionTag": {
                            "type": "string",
                            "description": "user provided circuit tag",
                            "example": "MyCircuit"
                          },
                          "params": {}
                        }
                      }
                    }
                  }
                }
              },
              "policies": {
                "type": "array",
                "description": "Entries for policies",
                "items": {
                  "type": "object",
                  "properties": {
                    "policyId": {
                      "type": "string",
                      "description": "Unique policy ID issued by the Network Cloud+ to identify an policy."
                    },
                    "policyTransactionTag": {
                      "type": "string",
                      "description": "user provided policy tag"
                    },
                    "policyParams": {
                      "type": "object",
                      "properties": {
                        "sourceAtomicService": {},
                        "destinationAtomicService": {}
                      }
                    },
                    "functions": {
                      "type": "array",
                      "description": "Entries for functions",
                      "items": {
                        "type": "object",
                        "properties": {
                          "functionId": {
                            "type": "string",
                            "description": "Unique function ID issued by the Network Cloud+ to identify an function."
                          },
                          "functionTransactionTag": {
                            "type": "string",
                            "description": "user provided function tag."
                          },
                          "functionType": {
                            "type": "string",
                            "description": "Type of function.",
                            "example": "NAT"
                          },
                          "functionParams": {
                            "type": "object",
                            "properties": {
                              "location": {
                                "type": "string"
                              },
                              "direction": {
                                "type": "object",
                                "properties": {
                                  "internalAtomicService": {},
                                  "externalAtomicService": {}
                                }
                              },
                              "functionOrder": {
                                "type": "integer",
                                "default": 1,
                                "minimum": 1,
                                "maximum": 1
                              },
                              "params": {}
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "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": "/putServiceItem"
      },
      "task": true
    },
    {
      "name": "deleteServiceItem",
      "summary": "Delete a Service",
      "description": "Delete all services that form the business service ID.",
      "input": [
        {
          "name": "businessSid",
          "type": "string",
          "info": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.: ",
          "required": true,
          "schema": {
            "title": "businessSid",
            "type": "string"
          }
        },
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "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": "/deleteServiceItem"
      },
      "task": true
    },
    {
      "name": "getServiceItem",
      "summary": "Retrieve Service Configuration",
      "description": "Retrieve Service Configuration",
      "input": [
        {
          "name": "businessSid",
          "type": "string",
          "info": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.: ",
          "required": true,
          "schema": {
            "title": "businessSid",
            "type": "string"
          }
        },
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "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": "/getServiceItem"
      },
      "task": true
    },
    {
      "name": "getServiceItemState",
      "summary": "Retrieve Service Operational State",
      "description": "Get the operational state of a particular business service ID.",
      "input": [
        {
          "name": "businessSid",
          "type": "string",
          "info": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.: ",
          "required": true,
          "schema": {
            "title": "businessSid",
            "type": "string"
          }
        },
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "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": "/getServiceItemState"
      },
      "task": true
    },
    {
      "name": "getServiceMonitoring",
      "summary": "Retrieve Service monitoring data",
      "description": "Retrieve Service monitoring data",
      "input": [
        {
          "name": "businessSid",
          "type": "string",
          "info": "Unique ID provided by the Service Provider to identify a solution, which is a collection of several atomic services. When forming a solution, use the same BusinessSID.: ",
          "required": true,
          "schema": {
            "title": "businessSid",
            "type": "string"
          }
        },
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "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": "/getServiceMonitoring"
      },
      "task": true
    },
    {
      "name": "showCommand",
      "summary": "Show Command",
      "description": "Show commands display information about the system and system configuration, useful for troubleshooting. Information about the show commands can be found in DriveNets Documentation portal.",
      "input": [
        {
          "name": "version",
          "type": "string",
          "info": "The API version.: Must be one of [v1, v2, v3, v4]",
          "required": true,
          "schema": {
            "title": "version",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"operation\": \"string\", \"snDnId\": \"string\", \"snDnName\": \"string\", \"qualifier\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "operation": {
                "type": "string",
                "description": "Show Commands:\n        BGP, BGP_NEIGHBORS, BGP_SUMMARY,\n        BGP_ROUTE, BGP_NEXTHOP_REACHABLE,\n        BGP_NEXTHOP, BGP_IPV4, BGP_IPV4_PREFIX_LIST\n        BGP_IPV6, BGP_IPV6_PREFIX_LIST, INTERFACE\n        INTERFACE_COUNTERS, VRF",
                "example": "INTERFACE"
              },
              "snDnId": {
                "type": "string",
                "description": "Unique ID of service node",
                "example": "12345-12345-abcdef-abcdef"
              },
              "snDnName": {
                "type": "string",
                "description": "Service Node Name",
                "example": "Dallas324T"
              },
              "qualifier": {
                "type": "string",
                "description": "Qualifier",
                "example": "ge100-0/0/0"
              }
            },
            "required": [
              "operation",
              "snDnId",
              "snDnName",
              "qualifier"
            ],
            "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": "/showCommand"
      },
      "task": true
    }
  ],
  "views": []
}