{
  "id": "@itentialopensource/adapter-equinix",
  "type": "Adapter",
  "export": "Equinix",
  "title": "Equinix",
  "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": "getVirtualDevicesUsingGET",
      "summary": "Get Device Types",
      "description": "Returns device types (e.g., routers and firewalls) that can be launched on the NE platform.",
      "input": [
        {
          "name": "deviceTypeCode",
          "type": "string",
          "info": "Device type code (e.g., CSR1000V): string",
          "required": false,
          "schema": {
            "title": "deviceTypeCode",
            "type": "string"
          }
        },
        {
          "name": "category",
          "type": "string",
          "info": "Category. One of FIREWALL, ROUTER or SDWAN: string",
          "required": false,
          "schema": {
            "title": "category",
            "type": "string"
          }
        },
        {
          "name": "offset",
          "type": "string",
          "info": "Specifies where to start a page. It is the starting point of the collection returned from the server.: string",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Specifies the page size.: string",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "description": "Array of available virtual device types",
              "items": {
                "type": "object",
                "properties": {
                  "deviceTypeCode": {
                    "type": "string",
                    "example": "CSR1000V",
                    "description": "The type of the device."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the device.",
                    "example": "CSR 1000V"
                  },
                  "description": {
                    "type": "string",
                    "example": "Extend your enterprise network to public and private clouds with the CSR 1000V series.",
                    "description": "The description of the device."
                  },
                  "vendor": {
                    "type": "string",
                    "description": "The vendor of the device.",
                    "example": "Cisco"
                  },
                  "category": {
                    "type": "string",
                    "example": "ROUTER",
                    "description": "The type of the virtual device, whether router or firewall."
                  },
                  "maxInterfaceCount": {
                    "type": "integer",
                    "description": "The maximum available number of interfaces."
                  },
                  "defaultInterfaceCount": {
                    "type": "integer",
                    "description": "The default number of interfaces."
                  },
                  "clusterMaxInterfaceCount": {
                    "type": "integer",
                    "description": "The maximum number of available interfaces in case you are clustering."
                  },
                  "clusterDefaultInterfaceCount": {
                    "type": "integer",
                    "description": "The default number of available interfaces in case you are clustering."
                  },
                  "availableMetros": {
                    "type": "array",
                    "description": "An array of metros where the device is available.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "metroCode": {
                          "description": "Metro code",
                          "type": "string",
                          "example": "DC"
                        },
                        "metroDescription": {
                          "description": "Metro description",
                          "type": "string",
                          "example": "Ashburn"
                        },
                        "region": {
                          "description": "A region have several metros.",
                          "type": "string",
                          "example": "AMER"
                        },
                        "availableZones": {
                          "type": "array",
                          "description": "An array of available zones in the metro.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "zoneCode": {
                                "type": "string",
                                "description": "The zone code",
                                "example": "Zone1"
                              },
                              "zoneName": {
                                "type": "string",
                                "description": "The zone name",
                                "example": "Zone 1"
                              },
                              "clusterSupported": {
                                "type": "boolean",
                                "description": "Whether this zone supports cluster devices",
                                "example": false
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "softwarePackages": {
                    "type": "array",
                    "description": "An array of available software packages",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Software package name",
                          "example": "Security"
                        },
                        "packageCode": {
                          "type": "string",
                          "example": "SEC",
                          "description": "Software package code"
                        },
                        "licenseType": {
                          "type": "string",
                          "example": "appx",
                          "description": "Software package license type"
                        },
                        "versionDetails": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "cause": {
                                "type": "object",
                                "description": ""
                              },
                              "version": {
                                "type": "string",
                                "example": "16.09.02"
                              },
                              "imageName": {
                                "type": "string",
                                "example": "csr-16.09.02"
                              },
                              "versionDate": {
                                "type": "string",
                                "example": {
                                  "date": 1,
                                  "day": 2,
                                  "hours": 8,
                                  "minutes": 0,
                                  "month": 0,
                                  "seconds": 0,
                                  "time": 1546300800000,
                                  "timezoneOffset": -480,
                                  "year": 119
                                }
                              },
                              "status": {
                                "type": "string",
                                "example": "ACTIVE"
                              },
                              "stableVersion": {
                                "type": "string",
                                "example": true
                              },
                              "allowedUpgradableVersions": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "example": "16.09.03"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "deviceManagementTypes": {
                    "type": "object"
                  }
                }
              }
            },
            "pagination": {
              "type": "object",
              "properties": {
                "offset": {
                  "type": "integer",
                  "example": 0,
                  "description": "It is the starting point of the collection returned fromt the server"
                },
                "limit": {
                  "type": "integer",
                  "description": "The page size",
                  "example": 20
                },
                "total": {
                  "type": "integer",
                  "description": "The total number of results",
                  "example": 1
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getVirtualDevicesUsingGET"
      },
      "task": true
    },
    {
      "name": "getMetrosUsingGET",
      "summary": "Get Available Metros",
      "description": "Gets the available list of metros where NE platform is available. Please note that an account must be created for each country where virtual devices are being purchased.",
      "input": [
        {
          "name": "region",
          "type": "string",
          "info": "Name of the region for which you want metros (e.g., AMER): string",
          "required": false,
          "schema": {
            "title": "region",
            "type": "string"
          }
        },
        {
          "name": "offset",
          "type": "string",
          "info": "Specifies where to start a page. It is the starting point of the collection returned from the server.: string",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Specifies the page size.: string",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "content": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "metroCode": {
                    "type": "string",
                    "description": "Metro code",
                    "example": "SV"
                  },
                  "metroDescription": {
                    "type": "string",
                    "description": "Metro description",
                    "example": "Silicon Valley"
                  },
                  "availableZones": {
                    "type": "array",
                    "description": "An array of available zones in the metro.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "zoneCode": {
                          "type": "string",
                          "description": "The zone code",
                          "example": "Zone1"
                        },
                        "zoneName": {
                          "type": "string",
                          "description": "The zone name",
                          "example": "Zone 1"
                        },
                        "clusterSupported": {
                          "type": "boolean",
                          "description": "Whether this zone supports cluster devices",
                          "example": false
                        }
                      }
                    }
                  },
                  "region": {
                    "type": "string",
                    "description": "Region within which the metro is located",
                    "example": "AMER"
                  }
                }
              }
            },
            "pagination": {
              "type": "object",
              "properties": {
                "offset": {
                  "type": "integer",
                  "example": 0,
                  "description": "It is the starting point of the collection returned fromt the server"
                },
                "limit": {
                  "type": "integer",
                  "description": "The page size",
                  "example": 20
                },
                "total": {
                  "type": "integer",
                  "description": "The total number of results",
                  "example": 1
                }
              }
            },
            "data": {
              "example": 1,
              "type": "object"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getMetrosUsingGET"
      },
      "task": true
    },
    {
      "name": "getAccountsWithStatusUsingGET",
      "summary": "Get Accounts {metro}",
      "description": "Gets accounts by metro. You must have an account in a metro to create a virtual device there. To create an account go to \"accountCreateUrl\".",
      "input": [
        {
          "name": "metro",
          "type": "string",
          "info": "Metro region for which you want to check your account status: string",
          "required": true,
          "schema": {
            "title": "metro",
            "type": "string"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "Unique ID of an account: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "accountCreateUrl": {
              "type": "string",
              "description": "accountCreateUrl"
            },
            "content": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "accountName": {
                    "type": "string",
                    "description": "account Name",
                    "example": "nfv1"
                  },
                  "accountNumber": {
                    "type": "integer",
                    "description": "account number",
                    "example": 2252619
                  },
                  "accountUcmId": {
                    "type": "string",
                    "description": "account UcmId",
                    "example": "92D27009-EA33-4b60-B4FB-D3C4ED589649"
                  },
                  "accountStatus": {
                    "type": "string",
                    "description": "account status",
                    "example": "Active"
                  },
                  "referenceId": {
                    "type": "string",
                    "description": "referenceId",
                    "example": ""
                  }
                }
              }
            },
            "totalCount": {
              "type": "integer",
              "format": "int64",
              "description": "Total count"
            },
            "errorMessage": {
              "type": "string",
              "description": "error Message"
            },
            "errorCode": {
              "type": "string",
              "description": "error Code"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAccountsWithStatusUsingGET"
      },
      "task": true
    },
    {
      "name": "getAgreementStatusUsingGET",
      "summary": "Get Agreement Status.",
      "description": "Call this API to find out the status of your agreement, whether it is valid or not, or to just read the agreement terms.",
      "input": [
        {
          "name": "accountNumber",
          "type": "string",
          "info": "account_number: string",
          "required": true,
          "schema": {
            "title": "accountNumber",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "errorMessage": {
              "type": "string"
            },
            "isValid": {
              "type": "string"
            },
            "terms": {
              "type": "string"
            },
            "termsVersionID": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAgreementStatusUsingGET"
      },
      "task": true
    },
    {
      "name": "sendAgreementUsingPOST1",
      "summary": "Create an agreement",
      "description": "Call this API to post an agreement. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "agreementAcceptRequest",
          "type": "object",
          "info": "agreementAcceptRequest: {\"accountNumber\": \"string\", \"apttusId\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "accountNumber": {
                "type": "string"
              },
              "apttusId": {
                "type": "string"
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/sendAgreementUsingPOST1"
      },
      "task": true
    },
    {
      "name": "getVendorTermsUsingGET",
      "summary": "Get Vendor Terms",
      "description": "Returns a link to your vendor's terms of agreement. The term \"vendor\" here refers to the vendor of the virtual device on the Network Edge platform.",
      "input": [
        {
          "name": "vendorPackage",
          "type": "string",
          "info": "vendorPackage: string",
          "required": true,
          "schema": {
            "title": "vendorPackage",
            "type": "string"
          }
        },
        {
          "name": "licenseType",
          "type": "string",
          "info": "licenseType: string",
          "required": true,
          "schema": {
            "title": "licenseType",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "terms": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getVendorTermsUsingGET"
      },
      "task": true
    },
    {
      "name": "getOrderTermsUsingGET",
      "summary": "Get Order Terms",
      "description": "This API retrieves the Network Edge Order Terms and Conditions, which the user needs to read and understand before proceeding to place an order",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "terms": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getOrderTermsUsingGET"
      },
      "task": true
    },
    {
      "name": "retrievePriceUsingGET",
      "summary": "Get the Price",
      "description": "Returns the price of a virtual device and license based on account number and other fields. Please note that the listed price does not include the price of any optional features added to the device, some of which are charged.",
      "input": [
        {
          "name": "accountNumber",
          "type": "number",
          "info": "Account number: 123",
          "required": false,
          "schema": {
            "title": "accountNumber",
            "type": "number"
          }
        },
        {
          "name": "metro",
          "type": "string",
          "info": "Metro: string",
          "required": false,
          "schema": {
            "title": "metro",
            "type": "string"
          }
        },
        {
          "name": "vendorPackage",
          "type": "string",
          "info": "Vendor package: string",
          "required": false,
          "schema": {
            "title": "vendorPackage",
            "type": "string"
          }
        },
        {
          "name": "licenseType",
          "type": "string",
          "info": "License type: string",
          "required": false,
          "schema": {
            "title": "licenseType",
            "type": "string"
          }
        },
        {
          "name": "softwarePackage",
          "type": "string",
          "info": "Software package: string",
          "required": false,
          "schema": {
            "title": "softwarePackage",
            "type": "string"
          }
        },
        {
          "name": "throughput",
          "type": "number",
          "info": "Throughput: 123",
          "required": false,
          "schema": {
            "title": "throughput",
            "type": "number"
          }
        },
        {
          "name": "throughputUnit",
          "type": "string",
          "info": "Throughput unit: string",
          "required": false,
          "schema": {
            "title": "throughputUnit",
            "type": "string"
          }
        },
        {
          "name": "termLength",
          "type": "string",
          "info": "Term length (in months): string",
          "required": false,
          "schema": {
            "title": "termLength",
            "type": "string"
          }
        },
        {
          "name": "additionalBandwidth",
          "type": "number",
          "info": "Additional bandwidth (in Mbps): 123",
          "required": false,
          "schema": {
            "title": "additionalBandwidth",
            "type": "number"
          }
        },
        {
          "name": "virtualDeviceUuid",
          "type": "string",
          "info": "Virtual device unique Id (only required if existing device is being modified): string",
          "required": false,
          "schema": {
            "title": "virtualDeviceUuid",
            "type": "string"
          }
        },
        {
          "name": "deviceManagementType",
          "type": "string",
          "info": "The device management type: string",
          "required": false,
          "schema": {
            "title": "deviceManagementType",
            "type": "string"
          }
        },
        {
          "name": "core",
          "type": "number",
          "info": "The number of cores: 123",
          "required": false,
          "schema": {
            "title": "core",
            "type": "number"
          }
        },
        {
          "name": "secondaryAccountNumber",
          "type": "number",
          "info": "The secondary account number (for HA): 123",
          "required": false,
          "schema": {
            "title": "secondaryAccountNumber",
            "type": "number"
          }
        },
        {
          "name": "secondaryMetro",
          "type": "string",
          "info": "Secondary metro (for HA): string",
          "required": false,
          "schema": {
            "title": "secondaryMetro",
            "type": "string"
          }
        },
        {
          "name": "secondaryAdditionalBandwidth",
          "type": "number",
          "info": "Secondary additional bandwidth (in Mbps for HA): 123",
          "required": false,
          "schema": {
            "title": "secondaryAdditionalBandwidth",
            "type": "number"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "Account unique ID: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        },
        {
          "name": "orderingContact",
          "type": "string",
          "info": "Reseller customer username: string",
          "required": false,
          "schema": {
            "title": "orderingContact",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "primary": {
              "type": "object",
              "properties": {
                "billingCommencementDate": {
                  "type": "string"
                },
                "billingEnabled": {
                  "type": "boolean"
                },
                "charges": {
                  "type": "array",
                  "description": "An array of the monthly recurring charges.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "description": {
                        "type": "string",
                        "description": "The description of the charge, whether it is for the virtual device, the device license, or the additional bandwidth.",
                        "example": "VIRTUAL_DEVICE"
                      },
                      "monthlyRecurringCharges": {
                        "type": "string",
                        "description": "The monthly charges.",
                        "example": 200
                      }
                    }
                  }
                },
                "currency": {
                  "type": "string"
                }
              }
            },
            "secondary": {
              "type": "object",
              "properties": {
                "billingCommencementDate": {
                  "type": "string"
                },
                "billingEnabled": {
                  "type": "boolean"
                },
                "charges": {
                  "type": "array",
                  "description": "An array of the monthly recurring charges.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "description": {
                        "type": "string",
                        "description": "The description of the charge, whether it is for the virtual device, the device license, or the additional bandwidth.",
                        "example": "VIRTUAL_DEVICE"
                      },
                      "monthlyRecurringCharges": {
                        "type": "string",
                        "description": "The monthly charges.",
                        "example": 200
                      }
                    }
                  }
                },
                "currency": {
                  "type": "string"
                }
              }
            },
            "termLength": {
              "type": "string",
              "example": "24"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/retrievePriceUsingGET"
      },
      "task": true
    },
    {
      "name": "getOrderSummaryUsingGET",
      "summary": "Get Order Summary",
      "description": "Gets the order summary as a printable pdf file. This API helps customers who have to go through a PO process at their end to make a purchase and need a formal quote",
      "input": [
        {
          "name": "accountNumber",
          "type": "number",
          "info": "Account number: 123",
          "required": false,
          "schema": {
            "title": "accountNumber",
            "type": "number"
          }
        },
        {
          "name": "metro",
          "type": "string",
          "info": "Metro: string",
          "required": false,
          "schema": {
            "title": "metro",
            "type": "string"
          }
        },
        {
          "name": "vendorPackage",
          "type": "string",
          "info": "Vendor package: string",
          "required": false,
          "schema": {
            "title": "vendorPackage",
            "type": "string"
          }
        },
        {
          "name": "licenseType",
          "type": "string",
          "info": "License type: string",
          "required": false,
          "schema": {
            "title": "licenseType",
            "type": "string"
          }
        },
        {
          "name": "softwarePackage",
          "type": "string",
          "info": "Software package: string",
          "required": false,
          "schema": {
            "title": "softwarePackage",
            "type": "string"
          }
        },
        {
          "name": "throughput",
          "type": "number",
          "info": "Throughput: 123",
          "required": false,
          "schema": {
            "title": "throughput",
            "type": "number"
          }
        },
        {
          "name": "throughputUnit",
          "type": "string",
          "info": "Throughput unit: string",
          "required": false,
          "schema": {
            "title": "throughputUnit",
            "type": "string"
          }
        },
        {
          "name": "termLength",
          "type": "string",
          "info": "Term length (in months): string",
          "required": false,
          "schema": {
            "title": "termLength",
            "type": "string"
          }
        },
        {
          "name": "additionalBandwidth",
          "type": "number",
          "info": "Additional bandwidth (in Mbps): 123",
          "required": false,
          "schema": {
            "title": "additionalBandwidth",
            "type": "number"
          }
        },
        {
          "name": "virtualDeviceUuid",
          "type": "string",
          "info": "Virtual device unique Id (only required if existing device is being modified): string",
          "required": false,
          "schema": {
            "title": "virtualDeviceUuid",
            "type": "string"
          }
        },
        {
          "name": "deviceManagementType",
          "type": "string",
          "info": "The device management type: string",
          "required": false,
          "schema": {
            "title": "deviceManagementType",
            "type": "string"
          }
        },
        {
          "name": "core",
          "type": "number",
          "info": "The number of cores: 123",
          "required": false,
          "schema": {
            "title": "core",
            "type": "number"
          }
        },
        {
          "name": "secondaryAccountNumber",
          "type": "number",
          "info": "Secondary account number (for HA): 123",
          "required": false,
          "schema": {
            "title": "secondaryAccountNumber",
            "type": "number"
          }
        },
        {
          "name": "secondaryMetro",
          "type": "string",
          "info": "Secondary metro (for HA): string",
          "required": false,
          "schema": {
            "title": "secondaryMetro",
            "type": "string"
          }
        },
        {
          "name": "secondaryAdditionalBandwidth",
          "type": "number",
          "info": "Secondary additional bandwidth (in Mbps for HA): 123",
          "required": false,
          "schema": {
            "title": "secondaryAdditionalBandwidth",
            "type": "number"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "Account unique ID: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        },
        {
          "name": "orderingContact",
          "type": "string",
          "info": "Reseller customer username: string",
          "required": false,
          "schema": {
            "title": "orderingContact",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "accountNumber": {
              "type": "integer",
              "format": "int32"
            },
            "agreementId": {
              "type": "string"
            },
            "charges": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "monthlyRecurringCharges": {
                    "type": "number",
                    "format": "double"
                  },
                  "nonRecurringCharges": {
                    "type": "number",
                    "format": "double"
                  },
                  "productCode": {
                    "type": "string"
                  }
                }
              }
            },
            "currency": {
              "type": "string"
            },
            "errorCode": {
              "type": "string"
            },
            "errorMessage": {
              "type": "string"
            },
            "esignAgreementId": {
              "type": "string"
            },
            "ibxCountry": {
              "type": "string"
            },
            "ibxRegion": {
              "type": "string"
            },
            "initialTerm": {
              "type": "integer",
              "format": "int32"
            },
            "metro": {
              "type": "string"
            },
            "monthlyRecurringCharges": {
              "type": "number",
              "format": "double"
            },
            "nonRecurringCharges": {
              "type": "number",
              "format": "double"
            },
            "nonRenewalNotice": {
              "type": "string"
            },
            "orderTerms": {
              "type": "string"
            },
            "piPercentage": {
              "type": "string"
            },
            "productDescription": {
              "type": "string"
            },
            "quantity": {
              "type": "integer",
              "format": "int32"
            },
            "quoteContentType": {
              "type": "string"
            },
            "quoteFileName": {
              "type": "string"
            },
            "referenceId": {
              "type": "string"
            },
            "renewalPeriod": {
              "type": "integer",
              "format": "int32"
            },
            "requestSignType": {
              "type": "string"
            },
            "signStatus": {
              "type": "string"
            },
            "signType": {
              "type": "string"
            },
            "speed": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "totalCharges": {
              "type": "number",
              "format": "double"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getOrderSummaryUsingGET"
      },
      "task": true
    },
    {
      "name": "sendDnsLookupPOST1",
      "summary": "Post DNS Lookup",
      "description": "Call this method to lookup IP addresses associated with domains of a metro or a virtual device.",
      "input": [
        {
          "name": "dnsLookupRequest",
          "type": "object",
          "info": "dnsLookupRequest: {\"fqdns\": \"array\", \"uuid\": \"string\", \"metroCode\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "fqdns": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "velocloud.net"
                ],
                "description": "Domain names"
              },
              "uuid": {
                "type": "string",
                "description": "The unique Id of a virtual device",
                "example": "4cfb5675-5c3f-4275-adba-0c9e3c26c96b"
              },
              "metroCode": {
                "type": "string",
                "description": "Metro code",
                "example": "SY"
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "additionalProp": {
              "type": "object",
              "properties": {
                "cdn": {
                  "type": "boolean",
                  "example": true,
                  "description": "True or false"
                },
                "ips": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "example": [
                    "104.24.100.23/32",
                    "104.24.101.23/32",
                    "172.67.218.217/32"
                  ],
                  "description": "Domain names"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/sendDnsLookupPOST1"
      },
      "task": true
    },
    {
      "name": "getPublicKeysUsingGET",
      "summary": "Get Public Keys",
      "description": "This method returns the SSH public keys associated with this organization. If you are a reseller, please pass the account number of you customer to get the public keys.",
      "input": [
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "This field is for resellers. Please pass the accountUcmId of your customer to get the public keys.: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "example": "877a3aa2-c49a-4af1-98a6-007424e737ae",
                "description": "The unique Id of the keyName and keyValue combination"
              },
              "keyName": {
                "type": "string",
                "example": "myKeyName",
                "description": "Key name"
              },
              "keyValue": {
                "type": "string",
                "example": "myKeyValue",
                "description": "Key value"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getPublicKeysUsingGET"
      },
      "task": true
    },
    {
      "name": "postPublicKeyUsingPOST",
      "summary": "Create Public Key",
      "description": "You can use this API to post an SSH public key. If you are a reseller, pass the account number of your customer to post a key-name and key-value pair.",
      "input": [
        {
          "name": "publicKeyRequest",
          "type": "object",
          "info": "keyName and keyValue pair: {\"accountUcmId\": \"string\", \"keyName\": \"string\", \"keyValue\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "accountUcmId": {
                "type": "string",
                "example": 678967,
                "description": "This field is for resellers adding a public key for a customer"
              },
              "keyName": {
                "type": "string",
                "example": "myKeyName",
                "description": "Key name"
              },
              "keyValue": {
                "type": "string",
                "example": "myKeyValue",
                "description": "Key value"
              }
            }
          }
        }
      ],
      "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": "/postPublicKeyUsingPOST"
      },
      "task": true
    },
    {
      "name": "uploadLicenseUsingPOST",
      "summary": "Post License File",
      "description": "In case you want to bring your own license (BYOL), you can use this API to post a license file before creating a virtual device.",
      "input": [
        {
          "name": "file",
          "type": "string",
          "info": "file: string",
          "required": true,
          "schema": {
            "title": "file",
            "type": "string"
          }
        },
        {
          "name": "metroCode",
          "type": "string",
          "info": "metroCode: string",
          "required": true,
          "schema": {
            "title": "metroCode",
            "type": "string"
          }
        },
        {
          "name": "deviceTypeCode",
          "type": "string",
          "info": "deviceTypeCode: string",
          "required": true,
          "schema": {
            "title": "deviceTypeCode",
            "type": "string"
          }
        },
        {
          "name": "licenseType",
          "type": "string",
          "info": "licenseType: string",
          "required": true,
          "schema": {
            "title": "licenseType",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "fileId": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/uploadLicenseUsingPOST"
      },
      "task": true
    },
    {
      "name": "uploadLicenseForDeviceUsingPOST",
      "summary": "Post License {uuid}",
      "description": "In case you want to bring your own license and have already created a virtual device, use this API to post a license file. You can also use this API to renew a license that is about to expire.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique Id of a virtual device: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "file",
          "type": "string",
          "info": "License file: string",
          "required": true,
          "schema": {
            "title": "file",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "fileId": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/uploadLicenseForDeviceUsingPOST"
      },
      "task": true
    },
    {
      "name": "updateLicenseUsingPOST",
      "summary": "Update License Token/ID/Code",
      "description": "If you want to bring your own license (BYOL), you can use this API to post or update a license token after a virtual device is created.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique Id of a virtual device: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "request",
          "type": "object",
          "info": "License token: {\"token\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "token": {
                "type": "string",
                "example": "A1025025"
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "fileId": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateLicenseUsingPOST"
      },
      "task": true
    },
    {
      "name": "createVirtualDeviceUsingPOST",
      "summary": "Create Virtual Device",
      "description": "Creates a virtual device. You must provide your own account number (check Get account status API). This API can be used for  1. Create a Virtual Device   2. Create a Virtual Device Draft by sending draft = true  3. Create a Virtual Device From Draft",
      "input": [
        {
          "name": "virtualDevice",
          "type": "object",
          "info": "Create a virtual device (e.g., a router or a firewall): {\"accountNumber\": \"string\", \"accountReferenceId\": \"string\", \"deviceTypeCode\": \"string\", \"hostNamePrefix\": \"string\", \"licenseFileId\": \"string\", \"licenseMode\": \"string\", \"licenseToken\": \"string\", \"metroCode\": \"string\", \"zoneCode\": \"string\", \"packageCode\": \"string\", \"version\": \"string\", \"sshUsers\": [{\"sshUsername\": \"string\", \"sshPassword\": \"string\", \"sshUserUuid\": \"string\", \"action\": \"string\"}], \"throughput\": 123, \"throughputUnit\": \"string\", \"virtualDeviceName\": \"string\", \"orderingContact\": \"string\", \"notifications\": \"array\", \"aclTemplateUuid\": \"string\", \"additionalBandwidth\": 123, \"deviceManagementType\": \"string\", \"core\": 123, \"interfaceCount\": 123, \"siteId\": \"string\", \"systemIpAddress\": \"string\", \"vendorConfig\": {\"siteId\": \"string\", \"systemIpAddress\": \"string\", \"licenseKey\": \"string\", \"licenseSecret\": \"string\", \"localId\": \"string\", \"remoteId\": \"string\", \"controller1\": \"string\", \"controller2\": \"string\", \"serialNumber\": \"string\", \"adminPassword\": \"string\", \"activationKey\": \"string\", \"controllerFqdn\": \"string\", \"rootPassword\": \"string\", \"accountName\": \"string\", \"hostname\": \"string\", \"accountKey\": \"string\", \"applianceTag\": \"string\"}, \"userPublicKey\": {\"username\": \"string\", \"publicKeyName\": \"string\", \"publicKey\": \"string\"}, \"sshInterfaceId\": 123, \"clusterDetails\": {\"clusterName\": \"string\", \"hostNames\": \"array\"}, \"secondary\": {\"accountNumber\": \"string\", \"accountReferenceId\": \"string\", \"additionalBandwidth\": 123, \"licenseFileId\": \"string\", \"licenseToken\": \"string\", \"metroCode\": \"string\", \"zoneCode\": \"string\", \"notifications\": \"array\", \"aclTemplateUuid\": \"string\", \"sshUsers\": [{\"sshUserUuid\": \"string\", \"action\": \"Must be one of [CREATE, DELETE, REUSE]\", \"sshUsername\": \"string\", \"sshPassword\": \"string\"}], \"virtualDeviceName\": \"string\", \"hostNamePrefix\": \"string\", \"siteId\": \"string\", \"systemIpAddress\": \"string\", \"vendorConfig\": {\"siteId\": \"string\", \"systemIpAddress\": \"string\", \"licenseKey\": \"string\", \"licenseSecret\": \"string\", \"localId\": \"string\", \"remoteId\": \"string\", \"controller1\": \"string\", \"controller2\": \"string\", \"serialNumber\": \"string\", \"adminPassword\": \"string\", \"activationKey\": \"string\", \"controllerFqdn\": \"string\", \"rootPassword\": \"string\", \"accountName\": \"string\", \"hostname\": \"string\", \"accountKey\": \"string\", \"applianceTag\": \"string\"}, \"sshInterfaceId\": 123}}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "deviceTypeCode",
              "virtualDeviceName",
              "hostNamePrefix",
              "licenseMode",
              "metroCode",
              "notifications",
              "version",
              "core",
              "deviceManagementType"
            ],
            "properties": {
              "accountNumber": {
                "type": "string",
                "example": 10478397,
                "description": "Account number. Either an account number or accountReferenceId is required."
              },
              "accountReferenceId": {
                "type": "string",
                "example": 209809,
                "description": "AccountReferenceId. This is a temporary ID that can be used to create a device when the account status is still pending, not active. Either an account number or accountReferenceId is required."
              },
              "deviceTypeCode": {
                "type": "string",
                "example": "CSR1000V",
                "description": "Virtual device type (device type code)"
              },
              "hostNamePrefix": {
                "type": "string",
                "example": "mySR",
                "description": "Host name prefix for identification. Only a-z, A-Z, 0-9 and hyphen(-) are allowed. It should start with a letter and end with a letter or a digit. Also, it should be minimum 2 and maximum 10 characters long."
              },
              "licenseFileId": {
                "type": "string",
                "example": "d6e21e0c-86dd-11e8-adc0-fa7ae01bbebc",
                "description": "For Juniper devices you need to provide a licenseFileId if you want to BYOL (Bring Your Own License). You get a licenseFileId when you upload a license file by calling license upload API (Upload a license file before creating a virtual device). For Cisco devices, you do not need to provide a licenseFileId at the time of device creation. Once the device is provisioned, you can get the deviceSerialNo by calling Get virtual device {uuid} API. With the deviceSerialNo you can generate a license file on Cisco site. Afterward, you can upload the license file by calling license upload API (Upload a license file after creating a virtual device)."
              },
              "licenseMode": {
                "type": "string",
                "example": "SUB",
                "description": "License type. One of SUB (Subscription) or BYOL (Bring Your Own License)"
              },
              "licenseToken": {
                "type": "string",
                "example": "V74191621",
                "description": "In case you want to BYOL (Bring Your Own License) for a Palo Alto device, you must provide a license token. This field must have 8 alphanumeric characters."
              },
              "metroCode": {
                "type": "string",
                "example": "SV",
                "description": "Metro code"
              },
              "zoneCode": {
                "type": "string",
                "example": "Zone1",
                "description": "Zone code"
              },
              "packageCode": {
                "type": "string",
                "example": "IPBASE",
                "description": "Software package code"
              },
              "version": {
                "type": "string",
                "example": "16.09.03"
              },
              "sshUsers": {
                "type": "array",
                "description": "An array of sshUsernames and passwords",
                "items": {
                  "type": "object",
                  "properties": {
                    "sshUsername": {
                      "type": "string",
                      "description": "sshUsername. This should be minimum 3 and maximum 32 characters and include alphanumeric characters, dash, and underscore.",
                      "example": "cust0001_DC"
                    },
                    "sshPassword": {
                      "type": "string",
                      "description": "sshPassword",
                      "example": "projPass"
                    },
                    "sshUserUuid": {
                      "type": "string",
                      "description": "sshUserUuid",
                      "example": "999a3aa2-c49a-dddd-98a6-007424e73777"
                    },
                    "action": {
                      "type": "string",
                      "description": "action",
                      "example": "CREATE"
                    }
                  }
                }
              },
              "throughput": {
                "type": "integer",
                "format": "int32",
                "example": 1,
                "description": "Device throughput. This is required for Cisco and Juniper devices."
              },
              "throughputUnit": {
                "type": "string",
                "example": "Gbps",
                "description": "Throughput unit. This is required for Cisco and Juniper devices."
              },
              "virtualDeviceName": {
                "type": "string",
                "example": "Router1-csr1000v",
                "description": "Virtual device name for identification. This should be minimum 3 and maximum 50 characters long."
              },
              "orderingContact": {
                "type": "string",
                "example": "subuser01"
              },
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "test1@equinix.com",
                  "test2@equinix.com"
                ],
                "description": "Email addresses for notification. We need a minimum of 1 and no more than 5 email addresses."
              },
              "aclTemplateUuid": {
                "type": "string",
                "description": "The unique Id of a device ACL template.",
                "example": "49289456-a63e-47d4-927c-5161cfb77501"
              },
              "additionalBandwidth": {
                "type": "integer",
                "format": "int32",
                "example": 100,
                "description": "Secondary additional bandwidth to be configured (in Mbps for HA). Default bandwidth provided is 15 Mbps."
              },
              "deviceManagementType": {
                "type": "string",
                "example": "EQUINIX-CONFIGURED",
                "description": "Whether the device is SELF-CONFIGURED or EQUINIX-CONFIGURED"
              },
              "core": {
                "type": "integer",
                "format": "int32"
              },
              "interfaceCount": {
                "type": "integer",
                "format": "int32"
              },
              "siteId": {
                "type": "string",
                "example": "12345"
              },
              "systemIpAddress": {
                "type": "string",
                "example": "192.168.2.5"
              },
              "vendorConfig": {
                "type": "object",
                "properties": {
                  "siteId": {
                    "type": "string",
                    "example": 567,
                    "description": "Physical location within the Viptela overlay network, such as a branch office, or a campus (relevant only for Cisco SDWANs)"
                  },
                  "systemIpAddress": {
                    "type": "string",
                    "description": "IP assigned to CSRSDWAN router and vSmart controller (relevant only for Cisco SDWANs)",
                    "example": "192.164.0.0"
                  },
                  "licenseKey": {
                    "type": "string",
                    "example": "6735-vwe64568-6a91-4112-8734-bea12d91f7y7"
                  },
                  "licenseSecret": {
                    "type": "string",
                    "example": "h5j0i45e83324pblbfca764532c4a640e7801f0"
                  },
                  "localId": {
                    "type": "string",
                    "example": "branch1@example.com"
                  },
                  "remoteId": {
                    "type": "string",
                    "example": "companyController1@example.com"
                  },
                  "controller1": {
                    "type": "string",
                    "example": "54.219.248.29"
                  },
                  "controller2": {
                    "type": "string",
                    "example": "54.177.220.115"
                  },
                  "serialNumber": {
                    "type": "string",
                    "example": 4545454
                  },
                  "adminPassword": {
                    "type": "string",
                    "example": 5678909
                  },
                  "activationKey": {
                    "type": "string",
                    "example": "GJUK-JM2X-59BJ-2TDJ"
                  },
                  "controllerFqdn": {
                    "type": "string",
                    "example": "demo.velocloud.net"
                  },
                  "rootPassword": {
                    "type": "string",
                    "example": "myPassw0rd!"
                  },
                  "accountName": {
                    "type": "string",
                    "example": "accountName",
                    "description": "The name of account."
                  },
                  "hostname": {
                    "type": "string",
                    "example": "hostName",
                    "description": "The host name."
                  },
                  "accountKey": {
                    "type": "string",
                    "example": "Primary Account Key1",
                    "description": "The account key."
                  },
                  "applianceTag": {
                    "type": "string",
                    "example": "applianceTag",
                    "description": "The appliance tag."
                  }
                }
              },
              "userPublicKey": {
                "type": "object",
                "description": "An object with public key details of a self-configured device.",
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "The username of a self-configured device.",
                    "example": "test-user-1"
                  },
                  "publicKeyName": {
                    "type": "string",
                    "description": "The public key name of a self-configured device.",
                    "example": "test-pk-2"
                  },
                  "publicKey": {
                    "type": "string",
                    "description": "The public key of a self-configured device.",
                    "example": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU\\nGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3\\nPbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA\\nt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw"
                  }
                }
              },
              "sshInterfaceId": {
                "type": "integer",
                "example": 4,
                "description": "You may specify any available interface on the device as the sshInterfaceId. This field is only applicable to self-configured devices."
              },
              "clusterDetails": {
                "type": "object",
                "properties": {
                  "clusterName": {
                    "type": "string",
                    "description": "The cluster name.",
                    "example": "My Cluster"
                  },
                  "hostNames": {
                    "type": "array",
                    "description": "An array with two hostnames.",
                    "items": {
                      "type": "string",
                      "example": [
                        "hostName1",
                        "hostName2"
                      ]
                    }
                  }
                }
              },
              "secondary": {
                "type": "object",
                "required": [
                  "metroCode",
                  "notifications",
                  "virtualDeviceName",
                  "hostNamePrefix"
                ],
                "properties": {
                  "accountNumber": {
                    "type": "string",
                    "example": 10478398
                  },
                  "accountReferenceId": {
                    "type": "string",
                    "example": 209805
                  },
                  "additionalBandwidth": {
                    "type": "integer",
                    "format": "int32",
                    "example": 100,
                    "description": "Secondary additional bandwidth to be configured (in Mbps for HA). Default bandwidth provided is 15 Mbps."
                  },
                  "licenseFileId": {
                    "type": "string",
                    "example": "d6e21e0c-86dd-11e8-adc0-fa7ae01bbebc"
                  },
                  "licenseToken": {
                    "type": "string",
                    "example": "V74191621"
                  },
                  "metroCode": {
                    "type": "string",
                    "example": "SV"
                  },
                  "zoneCode": {
                    "type": "string",
                    "example": "Zone1",
                    "description": "Zone code"
                  },
                  "notifications": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "test1@example.com",
                        "test2@example.com"
                      ]
                    }
                  },
                  "aclTemplateUuid": {
                    "type": "string",
                    "description": "The unique Id of a device ACL template.",
                    "example": "39289456-a63e-47d4-927c-5161cfb77500"
                  },
                  "sshUsers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "action"
                      ],
                      "properties": {
                        "sshUserUuid": {
                          "type": "string",
                          "example": "999a3aa2-c49a-dddd-98a6-007424e73777",
                          "description": "Required for DELETE operation."
                        },
                        "action": {
                          "type": "string",
                          "example": "CREATE",
                          "description": "SSH operation to be performed",
                          "enum": [
                            "CREATE",
                            "DELETE",
                            "REUSE"
                          ]
                        },
                        "sshUsername": {
                          "type": "string",
                          "example": "cust0001_DC",
                          "description": "SSH User name"
                        },
                        "sshPassword": {
                          "type": "string",
                          "example": "projPass",
                          "description": "SSH Password"
                        }
                      }
                    }
                  },
                  "virtualDeviceName": {
                    "type": "string",
                    "example": "Router1-csr1000v",
                    "description": "Virtual Device Name"
                  },
                  "hostNamePrefix": {
                    "type": "string",
                    "example": "mySR",
                    "description": "Host name prefix for identification. Only a-z, A-Z, 0-9 and hyphen(-) are allowed. It should start with a letter and end with a letter or a digit. Also, it should be minimum 2 and maximum 10 characters long."
                  },
                  "siteId": {
                    "type": "string",
                    "example": "12345"
                  },
                  "systemIpAddress": {
                    "type": "string",
                    "example": "192.168.2.5"
                  },
                  "vendorConfig": {
                    "type": "object",
                    "properties": {
                      "siteId": {
                        "type": "string",
                        "example": 567,
                        "description": "Physical location within the Viptela overlay network, such as a branch office, or a campus (relevant only for Cisco SDWANs)"
                      },
                      "systemIpAddress": {
                        "type": "string",
                        "description": "IP assigned to CSRSDWAN router and vSmart controller (relevant only for Cisco SDWANs)",
                        "example": "192.164.0.0"
                      },
                      "licenseKey": {
                        "type": "string",
                        "example": "6735-vwe64568-6a91-4112-8734-bea12d91f7y7"
                      },
                      "licenseSecret": {
                        "type": "string",
                        "example": "h5j0i45e83324pblbfca764532c4a640e7801f0"
                      },
                      "localId": {
                        "type": "string",
                        "example": "branch1@example.com"
                      },
                      "remoteId": {
                        "type": "string",
                        "example": "companyController1@example.com"
                      },
                      "controller1": {
                        "type": "string",
                        "example": "54.219.248.29"
                      },
                      "controller2": {
                        "type": "string",
                        "example": "54.177.220.115"
                      },
                      "serialNumber": {
                        "type": "string",
                        "example": 4545454
                      },
                      "adminPassword": {
                        "type": "string",
                        "example": 5678909
                      },
                      "activationKey": {
                        "type": "string",
                        "example": "GJUK-JM2X-59BJ-2TDJ"
                      },
                      "controllerFqdn": {
                        "type": "string",
                        "example": "demo.velocloud.net"
                      },
                      "rootPassword": {
                        "type": "string",
                        "example": "myPassw0rd!"
                      },
                      "accountName": {
                        "type": "string",
                        "example": "accountName",
                        "description": "The name of account."
                      },
                      "hostname": {
                        "type": "string",
                        "example": "hostName",
                        "description": "The host name."
                      },
                      "accountKey": {
                        "type": "string",
                        "example": "Primary Account Key1",
                        "description": "The account key."
                      },
                      "applianceTag": {
                        "type": "string",
                        "example": "applianceTag",
                        "description": "The appliance tag."
                      }
                    }
                  },
                  "sshInterfaceId": {
                    "type": "integer",
                    "example": 4,
                    "description": "You may specify any available interface on the device as the sshInterfaceId. This field is only applicable to self-configured devices."
                  }
                }
              }
            }
          }
        },
        {
          "name": "draft",
          "type": "boolean",
          "info": "draft: boolean",
          "required": false,
          "schema": {
            "title": "draft",
            "type": "boolean"
          }
        },
        {
          "name": "draftUuid",
          "type": "string",
          "info": "draftUuid: string",
          "required": false,
          "schema": {
            "title": "draftUuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createVirtualDeviceUsingPOST"
      },
      "task": true
    },
    {
      "name": "getVirtualDevicesUsingGET1",
      "summary": "Get Virtual Devices",
      "description": "Returns all the available virtual devices, i.e. routers and routers, on the Network Edge platform.",
      "input": [
        {
          "name": "offset",
          "type": "string",
          "info": "Specifies where to start a page. It is the starting point of the collection returned from the server.: string",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Specifies the page size.: string",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        },
        {
          "name": "metroCode",
          "type": "string",
          "info": "metroCode: string",
          "required": false,
          "schema": {
            "title": "metroCode",
            "type": "string"
          }
        },
        {
          "name": "status",
          "type": "string",
          "info": "status: string",
          "required": false,
          "schema": {
            "title": "status",
            "type": "string"
          }
        },
        {
          "name": "showOnlySubCustomerDevices",
          "type": "boolean",
          "info": "Resellers may mark this Yes to see sub customer devices.: boolean",
          "required": false,
          "schema": {
            "title": "showOnlySubCustomerDevices",
            "type": "boolean"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "Unique ID of the account.: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "pagination": {
              "type": "object",
              "properties": {
                "offset": {
                  "type": "integer",
                  "example": 0,
                  "description": "It is the starting point of the collection returned fromt the server"
                },
                "limit": {
                  "type": "integer",
                  "description": "The page size",
                  "example": 20
                },
                "total": {
                  "type": "integer",
                  "description": "The total number of results",
                  "example": 1
                }
              }
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "accountName": {
                    "type": "string",
                    "example": "ABC INC"
                  },
                  "accountNumber": {
                    "type": "string",
                    "example": "133911"
                  },
                  "createdBy": {
                    "type": "string",
                    "example": "cust0001"
                  },
                  "createdDate": {
                    "type": "string",
                    "example": "2018-01-30T10:30:31.387Z"
                  },
                  "deviceSerialNo": {
                    "type": "string",
                    "example": "53791666484"
                  },
                  "deviceTypeCategory": {
                    "type": "string",
                    "example": "ROUTER"
                  },
                  "deviceTypeCode": {
                    "type": "string",
                    "example": "CSR1000V"
                  },
                  "deviceTypeName": {
                    "type": "string",
                    "example": "CSR 1000v"
                  },
                  "expiry": {
                    "type": "string",
                    "example": {
                      "date": 7,
                      "day": 4,
                      "hours": 8,
                      "minutes": 0,
                      "month": 1,
                      "seconds": 0,
                      "time": 1549497600000,
                      "timezoneOffset": -480,
                      "year": 119
                    }
                  },
                  "region": {
                    "type": "string",
                    "example": "AMER"
                  },
                  "deviceTypeVendor": {
                    "type": "string",
                    "example": "Cisco"
                  },
                  "hostName": {
                    "type": "string",
                    "example": "VR-SV-CSR1000V-cust0001-1"
                  },
                  "uuid": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
                  },
                  "lastUpdatedBy": {
                    "type": "string",
                    "example": "cust0002"
                  },
                  "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-01-30T10:30:31.387Z"
                  },
                  "licenseFileId": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
                  },
                  "licenseName": {
                    "type": "string",
                    "example": "Bring your own license"
                  },
                  "licenseStatus": {
                    "type": "string",
                    "example": "REGISTERED"
                  },
                  "licenseType": {
                    "type": "string",
                    "example": "BYOL"
                  },
                  "metroCode": {
                    "type": "string",
                    "example": "SV"
                  },
                  "metroName": {
                    "type": "string",
                    "example": "Silicon Valley"
                  },
                  "zoneCode": {
                    "type": "string",
                    "example": "zone1",
                    "description": "Zone code"
                  },
                  "zoneName": {
                    "type": "string",
                    "example": "Zone 1",
                    "description": "Zone name"
                  },
                  "name": {
                    "type": "string",
                    "example": "AWS-Azure-Router-csr1000v"
                  },
                  "notifications": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "test@equinix.com"
                    }
                  },
                  "packageCode": {
                    "type": "string",
                    "example": "SEC"
                  },
                  "packageName": {
                    "type": "string",
                    "example": "Security"
                  },
                  "version": {
                    "type": "string",
                    "example": "16.09.02"
                  },
                  "purchaseOrderNumber": {
                    "type": "string",
                    "example": "PO1223"
                  },
                  "redundancyType": {
                    "type": "string",
                    "example": "PRIMARY"
                  },
                  "redundantUuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa67xx"
                  },
                  "sshIpAddress": {
                    "type": "string",
                    "example": "10.195.11.23"
                  },
                  "sshIpFqdn": {
                    "type": "string",
                    "example": "test-device-168-201-97-149.eis.lab.equinix.com"
                  },
                  "status": {
                    "type": "string",
                    "example": "PROVISIONED"
                  },
                  "throughput": {
                    "type": "integer",
                    "format": "int32",
                    "example": 500
                  },
                  "throughputUnit": {
                    "type": "string",
                    "example": "Mbps"
                  },
                  "aclTemplateUuid": {
                    "type": "string",
                    "example": "49289456-a63e-47d4-927c-5161cfb77501"
                  },
                  "core": {
                    "type": "object",
                    "properties": {
                      "core": {
                        "type": "integer",
                        "example": 4,
                        "description": "The number of cores."
                      },
                      "memory": {
                        "type": "integer",
                        "example": 4,
                        "description": "The amount of memory."
                      },
                      "unit": {
                        "type": "string",
                        "example": "GB",
                        "description": "The unit of memory."
                      }
                    }
                  },
                  "pricingDetails": {
                    "type": "object",
                    "description": "An object that has the pricing and other details of a Siebel order.",
                    "properties": {
                      "termLength": {
                        "type": "string",
                        "description": "The termlength of the Siebel order.",
                        "example": 36
                      },
                      "orderNumber": {
                        "type": "string",
                        "description": "The order number.",
                        "example": "1-198735018693"
                      },
                      "core": {
                        "type": "integer",
                        "description": "The core selection on Siebel.",
                        "example": 4
                      },
                      "throughput": {
                        "type": "string",
                        "description": "Throughput.",
                        "example": 1
                      },
                      "ThroughputUnit": {
                        "type": "string",
                        "description": "The throughput unit.",
                        "example": "Gbps"
                      },
                      "packageCode": {
                        "type": "string",
                        "description": "The software package code.",
                        "example": "AX"
                      },
                      "additionalBandwidth": {
                        "type": "string",
                        "description": "The additional bandwidth selection on Siebel.",
                        "example": 100
                      },
                      "primary": {
                        "type": "object",
                        "description": "An object that has the charges associated with the primary device.",
                        "properties": {
                          "currency": {
                            "type": "string",
                            "description": "The currency of the charges.",
                            "example": "USD"
                          },
                          "charges": {
                            "type": "array"
                          }
                        }
                      },
                      "secondary": {
                        "type": "object",
                        "description": "An object that has the charges associated with the secondary device.",
                        "properties": {
                          "currency": {
                            "type": "string",
                            "description": "The currency of the charges.",
                            "example": "USD"
                          },
                          "charges": {
                            "type": "array"
                          }
                        }
                      }
                    }
                  },
                  "interfaceCount": {
                    "type": "integer",
                    "example": 10
                  },
                  "deviceManagementType": {
                    "type": "string",
                    "example": "EQUINIX-CONFIGURED"
                  },
                  "userPublicKey": {
                    "type": "object",
                    "description": "An object with public key details of a self-configured device.",
                    "properties": {
                      "username": {
                        "type": "string",
                        "description": "The username of a self-configured device.",
                        "example": "test-user-1"
                      },
                      "publicKeyName": {
                        "type": "string",
                        "description": "The public key name of a self-configured device.",
                        "example": "test-pk-2"
                      },
                      "publicKey": {
                        "type": "string",
                        "description": "The public key of a self-configured device.",
                        "example": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU\\nGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3\\nPbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA\\nt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw"
                      }
                    }
                  },
                  "managementIp": {
                    "type": "string",
                    "example": "10.195.237.228/26"
                  },
                  "managementGatewayIp": {
                    "type": "string",
                    "example": "10.195.237.254"
                  },
                  "publicIp": {
                    "type": "string",
                    "example": "149.97.198.95/31"
                  },
                  "publicGatewayIp": {
                    "type": "string",
                    "example": "149.97.198.94"
                  },
                  "primaryDnsName": {
                    "type": "string",
                    "example": "4.0.0.53"
                  },
                  "secondaryDnsName": {
                    "type": "string",
                    "example": "129.250.35.250"
                  },
                  "termLength": {
                    "type": "string",
                    "example": 12
                  },
                  "additionalBandwidth": {
                    "type": "string",
                    "example": 200
                  },
                  "siteId": {
                    "type": "string",
                    "example": "12345"
                  },
                  "systemIpAddress": {
                    "type": "string",
                    "example": "192.168.2.5"
                  },
                  "vendorConfig": {
                    "type": "object",
                    "properties": {
                      "siteId": {
                        "type": "string",
                        "example": 567,
                        "description": "Physical location within the Viptela overlay network, such as a branch office, or a campus (relevant only for Cisco SDWANs)"
                      },
                      "systemIpAddress": {
                        "type": "string",
                        "description": "IP assigned to CSRSDWAN router and vSmart controller (relevant only for Cisco SDWANs)",
                        "example": "192.164.0.0"
                      },
                      "licenseKey": {
                        "type": "string",
                        "example": "6735-vwe64568-6a91-4112-8734-bea12d91f7y7"
                      },
                      "licenseSecret": {
                        "type": "string",
                        "example": "h5j0i45e83324pblbfca764532c4a640e7801f0"
                      },
                      "localId": {
                        "type": "string",
                        "example": "branch1@example.com"
                      },
                      "remoteId": {
                        "type": "string",
                        "example": "companyController1@example.com"
                      },
                      "controller1": {
                        "type": "string",
                        "example": "54.219.248.29"
                      },
                      "controller2": {
                        "type": "string",
                        "example": "54.177.220.115"
                      },
                      "serialNumber": {
                        "type": "string",
                        "example": 4545454
                      },
                      "adminPassword": {
                        "type": "string",
                        "example": 5678909
                      },
                      "activationKey": {
                        "type": "string",
                        "example": "GJUK-JM2X-59BJ-2TDJ"
                      },
                      "controllerFqdn": {
                        "type": "string",
                        "example": "demo.velocloud.net"
                      },
                      "rootPassword": {
                        "type": "string",
                        "example": "myPassw0rd!"
                      },
                      "accountName": {
                        "type": "string",
                        "example": "accountName",
                        "description": "The name of account."
                      },
                      "hostname": {
                        "type": "string",
                        "example": "hostName",
                        "description": "The host name."
                      },
                      "accountKey": {
                        "type": "string",
                        "example": "Primary Account Key1",
                        "description": "The account key."
                      },
                      "applianceTag": {
                        "type": "string",
                        "example": "applianceTag",
                        "description": "The appliance tag."
                      }
                    }
                  },
                  "interfaces": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "example": 1
                        },
                        "ipv4Mask": {
                          "type": "string",
                          "example": "255.255.255.0"
                        },
                        "ipv4Subnet": {
                          "type": "string",
                          "example": "192.168.0.5"
                        },
                        "name": {
                          "type": "string",
                          "example": "ethernet1"
                        },
                        "status": {
                          "type": "string",
                          "example": "ASSIGNED"
                        },
                        "operationStatus": {
                          "type": "string",
                          "example": "DOWN"
                        },
                        "macAddress": {
                          "type": "string",
                          "example": "fa16.3e1c.a8d8"
                        },
                        "ipAddress": {
                          "type": "string",
                          "example": "2.2.2.2"
                        },
                        "assignedType": {
                          "type": "string",
                          "example": "Equinix Managed"
                        },
                        "type": {
                          "type": "string",
                          "example": "DATA",
                          "description": "The type of interface."
                        }
                      }
                    }
                  },
                  "asn": {
                    "type": "number",
                    "example": 1029,
                    "description": "The ASN number."
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getVirtualDevicesUsingGET1"
      },
      "task": true
    },
    {
      "name": "getVirtualDeviceUsingGET",
      "summary": "Get Virtual Device {uuid}",
      "description": "Returns the virtual device details of an existing device on the Network Edge platform. You must provide the unique ID of the existing device as a path parameter.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "accountName": {
              "type": "string",
              "example": "ABC INC"
            },
            "accountNumber": {
              "type": "string",
              "example": "133911"
            },
            "createdBy": {
              "type": "string",
              "example": "cust0001"
            },
            "createdDate": {
              "type": "string",
              "example": "2018-01-30T10:30:31.387Z"
            },
            "deviceSerialNo": {
              "type": "string",
              "example": "53791666484"
            },
            "deviceTypeCategory": {
              "type": "string",
              "example": "ROUTER"
            },
            "deviceTypeCode": {
              "type": "string",
              "example": "CSR1000V"
            },
            "deviceTypeName": {
              "type": "string",
              "example": "CSR 1000v"
            },
            "expiry": {
              "type": "string",
              "example": {
                "date": 7,
                "day": 4,
                "hours": 8,
                "minutes": 0,
                "month": 1,
                "seconds": 0,
                "time": 1549497600000,
                "timezoneOffset": -480,
                "year": 119
              }
            },
            "region": {
              "type": "string",
              "example": "AMER"
            },
            "deviceTypeVendor": {
              "type": "string",
              "example": "Cisco"
            },
            "hostName": {
              "type": "string",
              "example": "VR-SV-CSR1000V-cust0001-1"
            },
            "uuid": {
              "type": "string",
              "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
            },
            "lastUpdatedBy": {
              "type": "string",
              "example": "cust0002"
            },
            "lastUpdatedDate": {
              "type": "string",
              "example": "2018-01-30T10:30:31.387Z"
            },
            "licenseFileId": {
              "type": "string",
              "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
            },
            "licenseName": {
              "type": "string",
              "example": "Bring your own license"
            },
            "licenseStatus": {
              "type": "string",
              "example": "REGISTERED"
            },
            "licenseType": {
              "type": "string",
              "example": "BYOL"
            },
            "metroCode": {
              "type": "string",
              "example": "SV"
            },
            "metroName": {
              "type": "string",
              "example": "Silicon Valley"
            },
            "zoneCode": {
              "type": "string",
              "example": "zone1",
              "description": "Zone code"
            },
            "zoneName": {
              "type": "string",
              "example": "Zone 1",
              "description": "Zone name"
            },
            "name": {
              "type": "string",
              "example": "AWS-Azure-Router-csr1000v"
            },
            "notifications": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "test@equinix.com"
              }
            },
            "packageCode": {
              "type": "string",
              "example": "SEC"
            },
            "packageName": {
              "type": "string",
              "example": "Security"
            },
            "version": {
              "type": "string",
              "example": "16.09.02"
            },
            "purchaseOrderNumber": {
              "type": "string",
              "example": "PO1223"
            },
            "redundancyType": {
              "type": "string",
              "example": "PRIMARY"
            },
            "redundantUuid": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa67xx"
            },
            "sshIpAddress": {
              "type": "string",
              "example": "10.195.11.23"
            },
            "sshIpFqdn": {
              "type": "string",
              "example": "test-device-168-201-97-149.eis.lab.equinix.com"
            },
            "status": {
              "type": "string",
              "example": "PROVISIONED"
            },
            "throughput": {
              "type": "integer",
              "format": "int32",
              "example": 500
            },
            "throughputUnit": {
              "type": "string",
              "example": "Mbps"
            },
            "aclTemplateUuid": {
              "type": "string",
              "example": "49289456-a63e-47d4-927c-5161cfb77501"
            },
            "core": {
              "type": "object",
              "properties": {
                "core": {
                  "type": "integer",
                  "example": 4,
                  "description": "The number of cores."
                },
                "memory": {
                  "type": "integer",
                  "example": 4,
                  "description": "The amount of memory."
                },
                "unit": {
                  "type": "string",
                  "example": "GB",
                  "description": "The unit of memory."
                }
              }
            },
            "pricingDetails": {
              "type": "object",
              "description": "An object that has the pricing and other details of a Siebel order.",
              "properties": {
                "termLength": {
                  "type": "string",
                  "description": "The termlength of the Siebel order.",
                  "example": 36
                },
                "orderNumber": {
                  "type": "string",
                  "description": "The order number.",
                  "example": "1-198735018693"
                },
                "core": {
                  "type": "integer",
                  "description": "The core selection on Siebel.",
                  "example": 4
                },
                "throughput": {
                  "type": "string",
                  "description": "Throughput.",
                  "example": 1
                },
                "ThroughputUnit": {
                  "type": "string",
                  "description": "The throughput unit.",
                  "example": "Gbps"
                },
                "packageCode": {
                  "type": "string",
                  "description": "The software package code.",
                  "example": "AX"
                },
                "additionalBandwidth": {
                  "type": "string",
                  "description": "The additional bandwidth selection on Siebel.",
                  "example": 100
                },
                "primary": {
                  "type": "object",
                  "description": "An object that has the charges associated with the primary device.",
                  "properties": {
                    "currency": {
                      "type": "string",
                      "description": "The currency of the charges.",
                      "example": "USD"
                    },
                    "charges": {
                      "type": "array"
                    }
                  }
                },
                "secondary": {
                  "type": "object",
                  "description": "An object that has the charges associated with the secondary device.",
                  "properties": {
                    "currency": {
                      "type": "string",
                      "description": "The currency of the charges.",
                      "example": "USD"
                    },
                    "charges": {
                      "type": "array"
                    }
                  }
                }
              }
            },
            "interfaceCount": {
              "type": "integer",
              "example": 10
            },
            "deviceManagementType": {
              "type": "string",
              "example": "EQUINIX-CONFIGURED"
            },
            "userPublicKey": {
              "type": "object",
              "description": "An object with public key details of a self-configured device.",
              "properties": {
                "username": {
                  "type": "string",
                  "description": "The username of a self-configured device.",
                  "example": "test-user-1"
                },
                "publicKeyName": {
                  "type": "string",
                  "description": "The public key name of a self-configured device.",
                  "example": "test-pk-2"
                },
                "publicKey": {
                  "type": "string",
                  "description": "The public key of a self-configured device.",
                  "example": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU\\nGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3\\nPbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA\\nt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw"
                }
              }
            },
            "managementIp": {
              "type": "string",
              "example": "10.195.237.228/26"
            },
            "managementGatewayIp": {
              "type": "string",
              "example": "10.195.237.254"
            },
            "publicIp": {
              "type": "string",
              "example": "149.97.198.95/31"
            },
            "publicGatewayIp": {
              "type": "string",
              "example": "149.97.198.94"
            },
            "primaryDnsName": {
              "type": "string",
              "example": "4.0.0.53"
            },
            "secondaryDnsName": {
              "type": "string",
              "example": "129.250.35.250"
            },
            "termLength": {
              "type": "string",
              "example": 12
            },
            "additionalBandwidth": {
              "type": "string",
              "example": 200
            },
            "siteId": {
              "type": "string",
              "example": "12345"
            },
            "systemIpAddress": {
              "type": "string",
              "example": "192.168.2.5"
            },
            "vendorConfig": {
              "type": "object",
              "properties": {
                "siteId": {
                  "type": "string",
                  "example": 567,
                  "description": "Physical location within the Viptela overlay network, such as a branch office, or a campus (relevant only for Cisco SDWANs)"
                },
                "systemIpAddress": {
                  "type": "string",
                  "description": "IP assigned to CSRSDWAN router and vSmart controller (relevant only for Cisco SDWANs)",
                  "example": "192.164.0.0"
                },
                "licenseKey": {
                  "type": "string",
                  "example": "6735-vwe64568-6a91-4112-8734-bea12d91f7y7"
                },
                "licenseSecret": {
                  "type": "string",
                  "example": "h5j0i45e83324pblbfca764532c4a640e7801f0"
                },
                "localId": {
                  "type": "string",
                  "example": "branch1@example.com"
                },
                "remoteId": {
                  "type": "string",
                  "example": "companyController1@example.com"
                },
                "controller1": {
                  "type": "string",
                  "example": "54.219.248.29"
                },
                "controller2": {
                  "type": "string",
                  "example": "54.177.220.115"
                },
                "serialNumber": {
                  "type": "string",
                  "example": 4545454
                },
                "adminPassword": {
                  "type": "string",
                  "example": 5678909
                },
                "activationKey": {
                  "type": "string",
                  "example": "GJUK-JM2X-59BJ-2TDJ"
                },
                "controllerFqdn": {
                  "type": "string",
                  "example": "demo.velocloud.net"
                },
                "rootPassword": {
                  "type": "string",
                  "example": "myPassw0rd!"
                },
                "accountName": {
                  "type": "string",
                  "example": "accountName",
                  "description": "The name of account."
                },
                "hostname": {
                  "type": "string",
                  "example": "hostName",
                  "description": "The host name."
                },
                "accountKey": {
                  "type": "string",
                  "example": "Primary Account Key1",
                  "description": "The account key."
                },
                "applianceTag": {
                  "type": "string",
                  "example": "applianceTag",
                  "description": "The appliance tag."
                }
              }
            },
            "interfaces": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "number",
                    "example": 1
                  },
                  "ipv4Mask": {
                    "type": "string",
                    "example": "255.255.255.0"
                  },
                  "ipv4Subnet": {
                    "type": "string",
                    "example": "192.168.0.5"
                  },
                  "name": {
                    "type": "string",
                    "example": "ethernet1"
                  },
                  "status": {
                    "type": "string",
                    "example": "ASSIGNED"
                  },
                  "operationStatus": {
                    "type": "string",
                    "example": "DOWN"
                  },
                  "macAddress": {
                    "type": "string",
                    "example": "fa16.3e1c.a8d8"
                  },
                  "ipAddress": {
                    "type": "string",
                    "example": "2.2.2.2"
                  },
                  "assignedType": {
                    "type": "string",
                    "example": "Equinix Managed"
                  },
                  "type": {
                    "type": "string",
                    "example": "DATA",
                    "description": "The type of interface."
                  }
                }
              }
            },
            "asn": {
              "type": "number",
              "example": 1029,
              "description": "The ASN number."
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getVirtualDeviceUsingGET"
      },
      "task": true
    },
    {
      "name": "updateVirtualDeviceUsingPATCH1",
      "summary": "Update Virtual Device",
      "description": "This API can be used to update certain fields of a virtual device. Authorization checks are performed on the API users making this request.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "The unique Id of the device.: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "virtualDeviceUpdateRequestDto",
          "type": "object",
          "info": ": {\"notifications\": \"array\", \"termLength\": 123, \"virtualDeviceName\": \"string\", \"clusterName\": \"string\", \"status\": \"string\"}",
          "required": false,
          "schema": {
            "type": "object",
            "properties": {
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "test1@example.com"
                }
              },
              "termLength": {
                "type": "integer",
                "description": "Term length in months. Please keep in mind that you cannot downgrade the term length.",
                "example": 4
              },
              "virtualDeviceName": {
                "type": "string",
                "description": "Virtual device name. This should be minimum 3 and maximum 50 characters long.",
                "example": "RCiscoSTROY"
              },
              "clusterName": {
                "type": "string",
                "description": "Cluster name. This should be minimum 3 and maximum 50 characters long.",
                "example": "myCluster0123"
              },
              "status": {
                "type": "string",
                "description": "Status of the device",
                "example": "PROVISIONED"
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "secondaryUuid": {
              "type": "string"
            },
            "uuid": {
              "type": "string",
              "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateVirtualDeviceUsingPATCH1"
      },
      "task": true
    },
    {
      "name": "deleteVRouterUsingDELETE",
      "summary": "Delete Virtual Devices",
      "description": "Delete a virtual device by its unique Id. For some device types (e.g. for Palo Alto devices), you also need to provide a deactivation key as a body parameter. For HA devices, the deleteRedundantDevice field must be marked True to delete both devices.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique ID of the virtual device.: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "deletionInfo",
          "type": "object",
          "info": "deletionInfo: {\"deactivationKey\": \"string\", \"secondary\": {\"deactivationKey\": \"string\"}}",
          "required": false,
          "schema": {
            "type": "object",
            "properties": {
              "deactivationKey": {
                "type": "string",
                "example": "8dfbd5ba3610234d9e550032603cc34762af140533e2c1de0111d3451d16eefd",
                "description": "Some devices, e.g. Palo Alto devices, require a mandatory deactivation key for Equinix to successfully process the request."
              },
              "secondary": {
                "type": "object",
                "properties": {
                  "deactivationKey": {
                    "type": "string",
                    "example": "8dfbd5ba3610234d9e550032603cc34762af140533e2c1de0111d3451d16eefd",
                    "description": "Object that holds the secondary deactivation key for HA (high availability) devices."
                  }
                }
              }
            }
          }
        },
        {
          "name": "deleteRedundantDevice",
          "type": "boolean",
          "info": "Optional parameter in case you have a secondary device for high availability (HA). As both primary and secondary devices are deleted simultaneously, this field must be ma...(description truncated): boolean",
          "required": false,
          "schema": {
            "title": "deleteRedundantDevice",
            "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": "/deleteVRouterUsingDELETE"
      },
      "task": true
    },
    {
      "name": "updateVirtualDeviceUsingPUT",
      "summary": "Update Device Draft",
      "description": "This API is for updating a virtual device draft  and does not support device update as of now.",
      "input": [
        {
          "name": "draft",
          "type": "boolean",
          "info": "draft: boolean",
          "required": true,
          "schema": {
            "title": "draft",
            "type": "boolean"
          }
        },
        {
          "name": "virtualDevice",
          "type": "object",
          "info": "Update virtual device details: {\"accountNumber\": \"string\", \"accountReferenceId\": \"string\", \"deviceTypeCode\": \"string\", \"hostNamePrefix\": \"string\", \"licenseFileId\": \"string\", \"licenseMode\": \"string\", \"licenseToken\": \"string\", \"metroCode\": \"string\", \"zoneCode\": \"string\", \"packageCode\": \"string\", \"version\": \"string\", \"sshUsers\": [{\"sshUsername\": \"string\", \"sshPassword\": \"string\", \"sshUserUuid\": \"string\", \"action\": \"string\"}], \"throughput\": 123, \"throughputUnit\": \"string\", \"virtualDeviceName\": \"string\", \"orderingContact\": \"string\", \"notifications\": \"array\", \"aclTemplateUuid\": \"string\", \"additionalBandwidth\": 123, \"deviceManagementType\": \"string\", \"core\": 123, \"interfaceCount\": 123, \"siteId\": \"string\", \"systemIpAddress\": \"string\", \"vendorConfig\": {\"siteId\": \"string\", \"systemIpAddress\": \"string\", \"licenseKey\": \"string\", \"licenseSecret\": \"string\", \"localId\": \"string\", \"remoteId\": \"string\", \"controller1\": \"string\", \"controller2\": \"string\", \"serialNumber\": \"string\", \"adminPassword\": \"string\", \"activationKey\": \"string\", \"controllerFqdn\": \"string\", \"rootPassword\": \"string\", \"accountName\": \"string\", \"hostname\": \"string\", \"accountKey\": \"string\", \"applianceTag\": \"string\"}, \"userPublicKey\": {\"username\": \"string\", \"publicKeyName\": \"string\", \"publicKey\": \"string\"}, \"sshInterfaceId\": 123, \"clusterDetails\": {\"clusterName\": \"string\", \"hostNames\": \"array\"}, \"secondary\": {\"accountNumber\": \"string\", \"accountReferenceId\": \"string\", \"additionalBandwidth\": 123, \"licenseFileId\": \"string\", \"licenseToken\": \"string\", \"metroCode\": \"string\", \"zoneCode\": \"string\", \"notifications\": \"array\", \"aclTemplateUuid\": \"string\", \"sshUsers\": [{\"sshUserUuid\": \"string\", \"action\": \"Must be one of [CREATE, DELETE, REUSE]\", \"sshUsername\": \"string\", \"sshPassword\": \"string\"}], \"virtualDeviceName\": \"string\", \"hostNamePrefix\": \"string\", \"siteId\": \"string\", \"systemIpAddress\": \"string\", \"vendorConfig\": {\"siteId\": \"string\", \"systemIpAddress\": \"string\", \"licenseKey\": \"string\", \"licenseSecret\": \"string\", \"localId\": \"string\", \"remoteId\": \"string\", \"controller1\": \"string\", \"controller2\": \"string\", \"serialNumber\": \"string\", \"adminPassword\": \"string\", \"activationKey\": \"string\", \"controllerFqdn\": \"string\", \"rootPassword\": \"string\", \"accountName\": \"string\", \"hostname\": \"string\", \"accountKey\": \"string\", \"applianceTag\": \"string\"}, \"sshInterfaceId\": 123}}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "deviceTypeCode",
              "virtualDeviceName",
              "hostNamePrefix",
              "licenseMode",
              "metroCode",
              "notifications",
              "version",
              "core",
              "deviceManagementType"
            ],
            "properties": {
              "accountNumber": {
                "type": "string",
                "example": 10478397,
                "description": "Account number. Either an account number or accountReferenceId is required."
              },
              "accountReferenceId": {
                "type": "string",
                "example": 209809,
                "description": "AccountReferenceId. This is a temporary ID that can be used to create a device when the account status is still pending, not active. Either an account number or accountReferenceId is required."
              },
              "deviceTypeCode": {
                "type": "string",
                "example": "CSR1000V",
                "description": "Virtual device type (device type code)"
              },
              "hostNamePrefix": {
                "type": "string",
                "example": "mySR",
                "description": "Host name prefix for identification. Only a-z, A-Z, 0-9 and hyphen(-) are allowed. It should start with a letter and end with a letter or a digit. Also, it should be minimum 2 and maximum 10 characters long."
              },
              "licenseFileId": {
                "type": "string",
                "example": "d6e21e0c-86dd-11e8-adc0-fa7ae01bbebc",
                "description": "For Juniper devices you need to provide a licenseFileId if you want to BYOL (Bring Your Own License). You get a licenseFileId when you upload a license file by calling license upload API (Upload a license file before creating a virtual device). For Cisco devices, you do not need to provide a licenseFileId at the time of device creation. Once the device is provisioned, you can get the deviceSerialNo by calling Get virtual device {uuid} API. With the deviceSerialNo you can generate a license file on Cisco site. Afterward, you can upload the license file by calling license upload API (Upload a license file after creating a virtual device)."
              },
              "licenseMode": {
                "type": "string",
                "example": "SUB",
                "description": "License type. One of SUB (Subscription) or BYOL (Bring Your Own License)"
              },
              "licenseToken": {
                "type": "string",
                "example": "V74191621",
                "description": "In case you want to BYOL (Bring Your Own License) for a Palo Alto device, you must provide a license token. This field must have 8 alphanumeric characters."
              },
              "metroCode": {
                "type": "string",
                "example": "SV",
                "description": "Metro code"
              },
              "zoneCode": {
                "type": "string",
                "example": "Zone1",
                "description": "Zone code"
              },
              "packageCode": {
                "type": "string",
                "example": "IPBASE",
                "description": "Software package code"
              },
              "version": {
                "type": "string",
                "example": "16.09.03"
              },
              "sshUsers": {
                "type": "array",
                "description": "An array of sshUsernames and passwords",
                "items": {
                  "type": "object",
                  "properties": {
                    "sshUsername": {
                      "type": "string",
                      "description": "sshUsername. This should be minimum 3 and maximum 32 characters and include alphanumeric characters, dash, and underscore.",
                      "example": "cust0001_DC"
                    },
                    "sshPassword": {
                      "type": "string",
                      "description": "sshPassword",
                      "example": "projPass"
                    },
                    "sshUserUuid": {
                      "type": "string",
                      "description": "sshUserUuid",
                      "example": "999a3aa2-c49a-dddd-98a6-007424e73777"
                    },
                    "action": {
                      "type": "string",
                      "description": "action",
                      "example": "CREATE"
                    }
                  }
                }
              },
              "throughput": {
                "type": "integer",
                "format": "int32",
                "example": 1,
                "description": "Device throughput. This is required for Cisco and Juniper devices."
              },
              "throughputUnit": {
                "type": "string",
                "example": "Gbps",
                "description": "Throughput unit. This is required for Cisco and Juniper devices."
              },
              "virtualDeviceName": {
                "type": "string",
                "example": "Router1-csr1000v",
                "description": "Virtual device name for identification. This should be minimum 3 and maximum 50 characters long."
              },
              "orderingContact": {
                "type": "string",
                "example": "subuser01"
              },
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "test1@equinix.com",
                  "test2@equinix.com"
                ],
                "description": "Email addresses for notification. We need a minimum of 1 and no more than 5 email addresses."
              },
              "aclTemplateUuid": {
                "type": "string",
                "description": "The unique Id of a device ACL template.",
                "example": "49289456-a63e-47d4-927c-5161cfb77501"
              },
              "additionalBandwidth": {
                "type": "integer",
                "format": "int32",
                "example": 100,
                "description": "Secondary additional bandwidth to be configured (in Mbps for HA). Default bandwidth provided is 15 Mbps."
              },
              "deviceManagementType": {
                "type": "string",
                "example": "EQUINIX-CONFIGURED",
                "description": "Whether the device is SELF-CONFIGURED or EQUINIX-CONFIGURED"
              },
              "core": {
                "type": "integer",
                "format": "int32"
              },
              "interfaceCount": {
                "type": "integer",
                "format": "int32"
              },
              "siteId": {
                "type": "string",
                "example": "12345"
              },
              "systemIpAddress": {
                "type": "string",
                "example": "192.168.2.5"
              },
              "vendorConfig": {
                "type": "object",
                "properties": {
                  "siteId": {
                    "type": "string",
                    "example": 567,
                    "description": "Physical location within the Viptela overlay network, such as a branch office, or a campus (relevant only for Cisco SDWANs)"
                  },
                  "systemIpAddress": {
                    "type": "string",
                    "description": "IP assigned to CSRSDWAN router and vSmart controller (relevant only for Cisco SDWANs)",
                    "example": "192.164.0.0"
                  },
                  "licenseKey": {
                    "type": "string",
                    "example": "6735-vwe64568-6a91-4112-8734-bea12d91f7y7"
                  },
                  "licenseSecret": {
                    "type": "string",
                    "example": "h5j0i45e83324pblbfca764532c4a640e7801f0"
                  },
                  "localId": {
                    "type": "string",
                    "example": "branch1@example.com"
                  },
                  "remoteId": {
                    "type": "string",
                    "example": "companyController1@example.com"
                  },
                  "controller1": {
                    "type": "string",
                    "example": "54.219.248.29"
                  },
                  "controller2": {
                    "type": "string",
                    "example": "54.177.220.115"
                  },
                  "serialNumber": {
                    "type": "string",
                    "example": 4545454
                  },
                  "adminPassword": {
                    "type": "string",
                    "example": 5678909
                  },
                  "activationKey": {
                    "type": "string",
                    "example": "GJUK-JM2X-59BJ-2TDJ"
                  },
                  "controllerFqdn": {
                    "type": "string",
                    "example": "demo.velocloud.net"
                  },
                  "rootPassword": {
                    "type": "string",
                    "example": "myPassw0rd!"
                  },
                  "accountName": {
                    "type": "string",
                    "example": "accountName",
                    "description": "The name of account."
                  },
                  "hostname": {
                    "type": "string",
                    "example": "hostName",
                    "description": "The host name."
                  },
                  "accountKey": {
                    "type": "string",
                    "example": "Primary Account Key1",
                    "description": "The account key."
                  },
                  "applianceTag": {
                    "type": "string",
                    "example": "applianceTag",
                    "description": "The appliance tag."
                  }
                }
              },
              "userPublicKey": {
                "type": "object",
                "description": "An object with public key details of a self-configured device.",
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "The username of a self-configured device.",
                    "example": "test-user-1"
                  },
                  "publicKeyName": {
                    "type": "string",
                    "description": "The public key name of a self-configured device.",
                    "example": "test-pk-2"
                  },
                  "publicKey": {
                    "type": "string",
                    "description": "The public key of a self-configured device.",
                    "example": "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU\\nGPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3\\nPbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA\\nt3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw"
                  }
                }
              },
              "sshInterfaceId": {
                "type": "integer",
                "example": 4,
                "description": "You may specify any available interface on the device as the sshInterfaceId. This field is only applicable to self-configured devices."
              },
              "clusterDetails": {
                "type": "object",
                "properties": {
                  "clusterName": {
                    "type": "string",
                    "description": "The cluster name.",
                    "example": "My Cluster"
                  },
                  "hostNames": {
                    "type": "array",
                    "description": "An array with two hostnames.",
                    "items": {
                      "type": "string",
                      "example": [
                        "hostName1",
                        "hostName2"
                      ]
                    }
                  }
                }
              },
              "secondary": {
                "type": "object",
                "required": [
                  "metroCode",
                  "notifications",
                  "virtualDeviceName",
                  "hostNamePrefix"
                ],
                "properties": {
                  "accountNumber": {
                    "type": "string",
                    "example": 10478398
                  },
                  "accountReferenceId": {
                    "type": "string",
                    "example": 209805
                  },
                  "additionalBandwidth": {
                    "type": "integer",
                    "format": "int32",
                    "example": 100,
                    "description": "Secondary additional bandwidth to be configured (in Mbps for HA). Default bandwidth provided is 15 Mbps."
                  },
                  "licenseFileId": {
                    "type": "string",
                    "example": "d6e21e0c-86dd-11e8-adc0-fa7ae01bbebc"
                  },
                  "licenseToken": {
                    "type": "string",
                    "example": "V74191621"
                  },
                  "metroCode": {
                    "type": "string",
                    "example": "SV"
                  },
                  "zoneCode": {
                    "type": "string",
                    "example": "Zone1",
                    "description": "Zone code"
                  },
                  "notifications": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "test1@example.com",
                        "test2@example.com"
                      ]
                    }
                  },
                  "aclTemplateUuid": {
                    "type": "string",
                    "description": "The unique Id of a device ACL template.",
                    "example": "39289456-a63e-47d4-927c-5161cfb77500"
                  },
                  "sshUsers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "action"
                      ],
                      "properties": {
                        "sshUserUuid": {
                          "type": "string",
                          "example": "999a3aa2-c49a-dddd-98a6-007424e73777",
                          "description": "Required for DELETE operation."
                        },
                        "action": {
                          "type": "string",
                          "example": "CREATE",
                          "description": "SSH operation to be performed",
                          "enum": [
                            "CREATE",
                            "DELETE",
                            "REUSE"
                          ]
                        },
                        "sshUsername": {
                          "type": "string",
                          "example": "cust0001_DC",
                          "description": "SSH User name"
                        },
                        "sshPassword": {
                          "type": "string",
                          "example": "projPass",
                          "description": "SSH Password"
                        }
                      }
                    }
                  },
                  "virtualDeviceName": {
                    "type": "string",
                    "example": "Router1-csr1000v",
                    "description": "Virtual Device Name"
                  },
                  "hostNamePrefix": {
                    "type": "string",
                    "example": "mySR",
                    "description": "Host name prefix for identification. Only a-z, A-Z, 0-9 and hyphen(-) are allowed. It should start with a letter and end with a letter or a digit. Also, it should be minimum 2 and maximum 10 characters long."
                  },
                  "siteId": {
                    "type": "string",
                    "example": "12345"
                  },
                  "systemIpAddress": {
                    "type": "string",
                    "example": "192.168.2.5"
                  },
                  "vendorConfig": {
                    "type": "object",
                    "properties": {
                      "siteId": {
                        "type": "string",
                        "example": 567,
                        "description": "Physical location within the Viptela overlay network, such as a branch office, or a campus (relevant only for Cisco SDWANs)"
                      },
                      "systemIpAddress": {
                        "type": "string",
                        "description": "IP assigned to CSRSDWAN router and vSmart controller (relevant only for Cisco SDWANs)",
                        "example": "192.164.0.0"
                      },
                      "licenseKey": {
                        "type": "string",
                        "example": "6735-vwe64568-6a91-4112-8734-bea12d91f7y7"
                      },
                      "licenseSecret": {
                        "type": "string",
                        "example": "h5j0i45e83324pblbfca764532c4a640e7801f0"
                      },
                      "localId": {
                        "type": "string",
                        "example": "branch1@example.com"
                      },
                      "remoteId": {
                        "type": "string",
                        "example": "companyController1@example.com"
                      },
                      "controller1": {
                        "type": "string",
                        "example": "54.219.248.29"
                      },
                      "controller2": {
                        "type": "string",
                        "example": "54.177.220.115"
                      },
                      "serialNumber": {
                        "type": "string",
                        "example": 4545454
                      },
                      "adminPassword": {
                        "type": "string",
                        "example": 5678909
                      },
                      "activationKey": {
                        "type": "string",
                        "example": "GJUK-JM2X-59BJ-2TDJ"
                      },
                      "controllerFqdn": {
                        "type": "string",
                        "example": "demo.velocloud.net"
                      },
                      "rootPassword": {
                        "type": "string",
                        "example": "myPassw0rd!"
                      },
                      "accountName": {
                        "type": "string",
                        "example": "accountName",
                        "description": "The name of account."
                      },
                      "hostname": {
                        "type": "string",
                        "example": "hostName",
                        "description": "The host name."
                      },
                      "accountKey": {
                        "type": "string",
                        "example": "Primary Account Key1",
                        "description": "The account key."
                      },
                      "applianceTag": {
                        "type": "string",
                        "example": "applianceTag",
                        "description": "The appliance tag."
                      }
                    }
                  },
                  "sshInterfaceId": {
                    "type": "integer",
                    "example": 4,
                    "description": "You may specify any available interface on the device as the sshInterfaceId. This field is only applicable to self-configured devices."
                  }
                }
              }
            }
          }
        },
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique Id of a Virtual Device: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "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": "/updateVirtualDeviceUsingPUT"
      },
      "task": true
    },
    {
      "name": "updateAdditionalBandwidth",
      "summary": "Update Additional Bandwidth",
      "description": "You can use this method to change or add additional bandwidth to a virtual device.",
      "input": [
        {
          "name": "uuid",
          "type": "number",
          "info": "The unique Id of a virtual device: 123",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "number"
          }
        },
        {
          "name": "request",
          "type": "object",
          "info": "Additional Bandwidth: {\"additionalBandwidth\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "additionalBandwidth": {
                "type": "integer",
                "example": 100
              }
            }
          }
        }
      ],
      "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": "/updateAdditionalBandwidth"
      },
      "task": true
    },
    {
      "name": "getVirtualDeviceInterfacesUsingGET",
      "summary": "Get Device Interfaces",
      "description": "Returns the interface details by the unique Id of an existing virtual device on the Network Edge platform.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "example": 1
              },
              "ipv4Mask": {
                "type": "string",
                "example": "255.255.255.0"
              },
              "ipv4Subnet": {
                "type": "string",
                "example": "192.168.0.5"
              },
              "name": {
                "type": "string",
                "example": "ethernet1"
              },
              "status": {
                "type": "string",
                "example": "ASSIGNED"
              },
              "operationStatus": {
                "type": "string",
                "example": "DOWN"
              },
              "macAddress": {
                "type": "string",
                "example": "fa16.3e1c.a8d8"
              },
              "ipAddress": {
                "type": "string",
                "example": "2.2.2.2"
              },
              "assignedType": {
                "type": "string",
                "example": "Equinix Managed"
              },
              "type": {
                "type": "string",
                "example": "DATA",
                "description": "The type of interface."
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getVirtualDeviceInterfacesUsingGET"
      },
      "task": true
    },
    {
      "name": "pingDeviceUsingGET",
      "summary": "Ping Virtual Device",
      "description": "It pings a virtual device to ensure it's reachable. You must pass the unique Id of the device as the path parameter.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Virtual Device unique Id: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "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": "/pingDeviceUsingGET"
      },
      "task": true
    },
    {
      "name": "createDeviceACLTemplateUsingPost",
      "summary": "Create ACL Template",
      "description": "This API is used to create a device ACL template. The response is the unique ID of the ACL template.",
      "input": [
        {
          "name": "aclTemplateRequest",
          "type": "object",
          "info": "Create a device ACL template.: {\"name\": \"string\", \"description\": \"string\", \"metroCode\": \"string\", \"inBoundRules\": [{\"srcType\": \"string\", \"protocol\": \"string\", \"srcPort\": \"string\", \"dstPort\": \"string\", \"fqdn\": \"string\", \"subets\": \"array\", \"seqNo\": 123}]}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "description",
              "metroCode",
              "inBoundRules",
              "srcType",
              "protocol",
              "srcPort",
              "dstPort",
              "subnets",
              "seqNo"
            ],
            "properties": {
              "name": {
                "type": "string",
                "example": "Test Template",
                "description": "The device ACL template name."
              },
              "description": {
                "type": "string",
                "example": "Test Template Description",
                "description": "The device ACL template description."
              },
              "metroCode": {
                "type": "string",
                "example": "DC",
                "description": "Metro code."
              },
              "inBoundRules": {
                "type": "array",
                "description": "An array of inbound rules.",
                "items": {
                  "type": "object",
                  "properties": {
                    "srcType": {
                      "type": "string",
                      "example": "DOMAIN",
                      "description": "Source type."
                    },
                    "protocol": {
                      "type": "string",
                      "example": "DNS",
                      "description": "Protocol."
                    },
                    "srcPort": {
                      "type": "string",
                      "example": 53,
                      "description": "Source port."
                    },
                    "dstPort": {
                      "type": "string",
                      "example": "any",
                      "description": "Destination port."
                    },
                    "fqdn": {
                      "type": "string",
                      "example": "equinix.com",
                      "description": "This field is mandatory in case the source type is DOMAIN."
                    },
                    "subets": {
                      "type": "array",
                      "description": "An array of subnets.",
                      "items": {
                        "type": "string",
                        "example": "192.168.1.1/32"
                      }
                    },
                    "seqNo": {
                      "type": "integer",
                      "example": 1,
                      "description": "The sequence number of the inbound rule."
                    }
                  }
                }
              }
            }
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "A reseller creating a device ACL template for a customer can pass the accountUcmId of the customer.: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createDeviceACLTemplateUsingPost"
      },
      "task": true
    },
    {
      "name": "getDeviceACLTemplateUsingGET1",
      "summary": "Get ACL Templates",
      "description": "Returns all the device ACL templates. The ACL templates list the networks that require access to the device.",
      "input": [
        {
          "name": "offset",
          "type": "string",
          "info": "Specifies where to start a page. It is the starting point of the collection returned from the server.: string",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Specifies the page size.: string",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "Unique ID of the account. A reseller querying for the device ACLs of a customer should input the accountUcmId of the customer.: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "pagination": {
              "type": "object",
              "properties": {
                "offset": {
                  "type": "integer",
                  "example": 0,
                  "description": "It is the starting point of the collection returned fromt the server"
                },
                "limit": {
                  "type": "integer",
                  "description": "The page size",
                  "example": 20
                },
                "total": {
                  "type": "integer",
                  "description": "The total number of results",
                  "example": 1
                }
              }
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The name of the device ACL template.",
                    "example": "New template"
                  },
                  "uuid": {
                    "type": "string",
                    "description": "The unique Id of the device ACL template.",
                    "example": "be7ef79e-31e7-4769-be5b-e192496f48aa"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the device ACL template.",
                    "example": "My description"
                  },
                  "inBoundRules": {
                    "type": "array",
                    "description": "An array of inbound rules",
                    "items": {
                      "type": "object",
                      "properties": {
                        "srcType": {
                          "type": "string",
                          "example": "DOMAIN",
                          "description": "Source type."
                        },
                        "protocol": {
                          "type": "string",
                          "example": "DNS",
                          "description": "Protocol."
                        },
                        "srcPort": {
                          "type": "string",
                          "example": 53,
                          "description": "Source port."
                        },
                        "dstPort": {
                          "type": "string",
                          "example": "any",
                          "description": "Destination port."
                        },
                        "fqdn": {
                          "type": "string",
                          "example": "equinix.com",
                          "description": "This field is mandatory in case the source type is DOMAIN."
                        },
                        "subets": {
                          "type": "array",
                          "description": "An array of subnets.",
                          "items": {
                            "type": "string",
                            "example": "192.168.1.1/32"
                          }
                        },
                        "seqNo": {
                          "type": "integer",
                          "example": 1,
                          "description": "The sequence number of the inbound rule."
                        }
                      }
                    }
                  },
                  "metroCode": {
                    "type": "string",
                    "example": "SV",
                    "description": "The metro code"
                  },
                  "metroName": {
                    "type": "string",
                    "example": "Silicon Valley",
                    "description": "The metro name"
                  },
                  "virtualDeviceName": {
                    "type": "string",
                    "example": "Test Device",
                    "description": "The name of the virtual device associated with this template."
                  },
                  "virtualDeviceUuid": {
                    "type": "string",
                    "example": "ce7ef79e-31e7-4769-be5b-e192496f48ab",
                    "description": "The unique Id of the virtual device associated with this template."
                  },
                  "deviceACLstatus": {
                    "type": "string",
                    "example": "PROVISIONING",
                    "description": "Device ACL status"
                  },
                  "createdBy": {
                    "type": "string",
                    "example": "nfvsit01",
                    "description": "Created by"
                  },
                  "createdDate": {
                    "type": "string",
                    "example": "2020/10/03T19:41:17.976Z",
                    "description": "Created date"
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getDeviceACLTemplateUsingGET1"
      },
      "task": true
    },
    {
      "name": "getDeviceTemplatebyUuid",
      "summary": "Get ACL Template {uuid}",
      "description": "Returns the ACL Template details of any existing template. You must provide the unique ID of an existing template as a path parameter.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique Id of a device ACL template: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "A reseller creating a device ACL template for a customer can pass the accountUcmId of the customer.: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The name of the device ACL template.",
              "example": "New template"
            },
            "uuid": {
              "type": "string",
              "description": "The unique Id of the device ACL template.",
              "example": "be7ef79e-31e7-4769-be5b-e192496f48aa"
            },
            "description": {
              "type": "string",
              "description": "The description of the device ACL template.",
              "example": "My description"
            },
            "inBoundRules": {
              "type": "array",
              "description": "An array of inbound rules",
              "items": {
                "type": "object",
                "properties": {
                  "srcType": {
                    "type": "string",
                    "example": "DOMAIN",
                    "description": "Source type."
                  },
                  "protocol": {
                    "type": "string",
                    "example": "DNS",
                    "description": "Protocol."
                  },
                  "srcPort": {
                    "type": "string",
                    "example": 53,
                    "description": "Source port."
                  },
                  "dstPort": {
                    "type": "string",
                    "example": "any",
                    "description": "Destination port."
                  },
                  "fqdn": {
                    "type": "string",
                    "example": "equinix.com",
                    "description": "This field is mandatory in case the source type is DOMAIN."
                  },
                  "subets": {
                    "type": "array",
                    "description": "An array of subnets.",
                    "items": {
                      "type": "string",
                      "example": "192.168.1.1/32"
                    }
                  },
                  "seqNo": {
                    "type": "integer",
                    "example": 1,
                    "description": "The sequence number of the inbound rule."
                  }
                }
              }
            },
            "metroCode": {
              "type": "string",
              "example": "SV",
              "description": "The metro code"
            },
            "metroName": {
              "type": "string",
              "example": "Silicon Valley",
              "description": "The metro name"
            },
            "virtualDeviceName": {
              "type": "string",
              "example": "Test Device",
              "description": "The name of the virtual device associated with this template."
            },
            "virtualDeviceUuid": {
              "type": "string",
              "example": "ce7ef79e-31e7-4769-be5b-e192496f48ab",
              "description": "The unique Id of the virtual device associated with this template."
            },
            "deviceACLstatus": {
              "type": "string",
              "example": "PROVISIONING",
              "description": "Device ACL status"
            },
            "createdBy": {
              "type": "string",
              "example": "nfvsit01",
              "description": "Created by"
            },
            "createdDate": {
              "type": "string",
              "example": "2020/10/03T19:41:17.976Z",
              "description": "Created date"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getDeviceTemplatebyUuid"
      },
      "task": true
    },
    {
      "name": "deletedeviceACLUsingDELETE",
      "summary": "Delete ACL template",
      "description": "Deletes a device ACL template. You must provide the unique Id of the ACL template.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique ID of a device ACL template: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "A reseller deleting a device ACL template for a customer must pass the accountUcmId of the customer.: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "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": "/deletedeviceACLUsingDELETE"
      },
      "task": true
    },
    {
      "name": "updateDeviceACLTemplateUsingPUT",
      "summary": "Update ACL Template",
      "description": "Updates a device ACL template. You must pass the unique Id of the ACL template as a path parameter.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique ID of a device ACL template: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "A reseller updating a device ACL template for a customer must pass the accountUcmId of the customer.: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        },
        {
          "name": "aclTemplateRequest",
          "type": "object",
          "info": "Create a device ACL template.: {\"name\": \"string\", \"description\": \"string\", \"metroCode\": \"string\", \"inBoundRules\": [{\"srcType\": \"string\", \"protocol\": \"string\", \"srcPort\": \"string\", \"dstPort\": \"string\", \"fqdn\": \"string\", \"subets\": \"array\", \"seqNo\": 123}]}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "description",
              "metroCode",
              "inBoundRules",
              "srcType",
              "protocol",
              "srcPort",
              "dstPort",
              "subnets",
              "seqNo"
            ],
            "properties": {
              "name": {
                "type": "string",
                "example": "Test Template",
                "description": "The device ACL template name."
              },
              "description": {
                "type": "string",
                "example": "Test Template Description",
                "description": "The device ACL template description."
              },
              "metroCode": {
                "type": "string",
                "example": "DC",
                "description": "Metro code."
              },
              "inBoundRules": {
                "type": "array",
                "description": "An array of inbound rules.",
                "items": {
                  "type": "object",
                  "properties": {
                    "srcType": {
                      "type": "string",
                      "example": "DOMAIN",
                      "description": "Source type."
                    },
                    "protocol": {
                      "type": "string",
                      "example": "DNS",
                      "description": "Protocol."
                    },
                    "srcPort": {
                      "type": "string",
                      "example": 53,
                      "description": "Source port."
                    },
                    "dstPort": {
                      "type": "string",
                      "example": "any",
                      "description": "Destination port."
                    },
                    "fqdn": {
                      "type": "string",
                      "example": "equinix.com",
                      "description": "This field is mandatory in case the source type is DOMAIN."
                    },
                    "subets": {
                      "type": "array",
                      "description": "An array of subnets.",
                      "items": {
                        "type": "string",
                        "example": "192.168.1.1/32"
                      }
                    },
                    "seqNo": {
                      "type": "integer",
                      "example": 1,
                      "description": "The sequence number of the inbound rule."
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateDeviceACLTemplateUsingPUT"
      },
      "task": true
    },
    {
      "name": "createLinkGroupUsingPOST",
      "summary": "Create Device Link",
      "description": "Call this API to create a device link between virtual devices. You can include any devices that are registered and provisioned.",
      "input": [
        {
          "name": "deviceLinkGroup",
          "type": "object",
          "info": "New Device Link Group: {\"groupName\": \"string\", \"subnet\": \"string\", \"linkDevices\": [{\"asn\": 123, \"deviceUuid\": \"string\", \"interfaceId\": 123}], \"links\": [{\"accountNumber\": \"string\", \"throughput\": \"string\", \"throughputUnit\": \"string\", \"sourceMetroCode\": \"string\", \"sourceZoneCode\": \"string\", \"destinationMetroCode\": \"string\", \"destinationZoneCode\": \"string\"}]}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "groupName",
              "subnet"
            ],
            "properties": {
              "groupName": {
                "type": "string",
                "example": "linkGroup",
                "description": "Group name."
              },
              "subnet": {
                "type": "string",
                "example": "192.164.0.0/29",
                "description": "Subnet of the link group."
              },
              "linkDevices": {
                "type": "array",
                "description": "An array of devices to link.",
                "items": {
                  "type": "object",
                  "required": [
                    "deviceUuid"
                  ],
                  "description": "Unique Id of a device.",
                  "properties": {
                    "asn": {
                      "type": "integer",
                      "format": "int64",
                      "example": 25658,
                      "description": "The ASN number of the device. The request will fail if you provide a new ASN for a device that already has an ASN."
                    },
                    "deviceUuid": {
                      "type": "string",
                      "example": "70754e55-a064-40c3-a911-6dc1f14b96fd",
                      "description": "device"
                    },
                    "interfaceId": {
                      "type": "integer",
                      "example": 6,
                      "description": "Any available interface of the device."
                    }
                  }
                }
              },
              "links": {
                "type": "array",
                "description": "An array of links.",
                "items": {
                  "type": "object",
                  "properties": {
                    "accountNumber": {
                      "type": "string",
                      "description": "Account number. Either an account number or an accountreferenceId is required to create a link group.",
                      "example": 345678
                    },
                    "throughput": {
                      "type": "string",
                      "example": "1000",
                      "description": "Metro Throughput."
                    },
                    "throughputUnit": {
                      "type": "string",
                      "example": "Mbps",
                      "description": "Throughput unit."
                    },
                    "sourceMetroCode": {
                      "type": "string",
                      "example": "SY",
                      "description": "Source metro code."
                    },
                    "sourceZoneCode": {
                      "type": "string",
                      "example": "Zone1",
                      "description": "Source zone code."
                    },
                    "destinationMetroCode": {
                      "type": "string",
                      "example": "SY",
                      "description": "Destination metro code."
                    },
                    "destinationZoneCode": {
                      "type": "string",
                      "example": "Zone2",
                      "description": "Destination metro code."
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "example": "a5d9182d-c529-451d-b137-3742d5a742ce"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createLinkGroupUsingPOST"
      },
      "task": true
    },
    {
      "name": "getLinkGroupsUsingGET1",
      "summary": "Get Device Links.",
      "description": "This method returns device links. You can link two or more devices that are registered and provisioned.",
      "input": [
        {
          "name": "metro",
          "type": "string",
          "info": "Metro Code: string",
          "required": false,
          "schema": {
            "title": "metro",
            "type": "string"
          }
        },
        {
          "name": "virtualDeviceUuid",
          "type": "string",
          "info": "Unique Id of a virtual device.: string",
          "required": false,
          "schema": {
            "title": "virtualDeviceUuid",
            "type": "string"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "Unique Id of the account. A reseller querying for a customer's link groups can pass the accountUcmId of the customer's account. To get the accountUcmId of your customer's...(description truncated): string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        },
        {
          "name": "pageNumber",
          "type": "number",
          "info": "Page number. Default value=1: 123",
          "required": false,
          "schema": {
            "title": "pageNumber",
            "type": "number"
          }
        },
        {
          "name": "size",
          "type": "number",
          "info": "Results per page. Default value=100: 123",
          "required": false,
          "schema": {
            "title": "size",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "accountName": {
                "type": "string",
                "description": "Account name.",
                "example": "Samsung"
              },
              "createdBy": {
                "type": "string",
                "description": "Created by username.",
                "example": "nfv-sit1"
              },
              "createdDate": {
                "type": "string",
                "description": "Created date.",
                "example": "2019-09-15T10:30:31.387Z"
              },
              "groupName": {
                "type": "string",
                "description": "Group name.",
                "example": "vik-chain"
              },
              "id": {
                "type": "integer",
                "format": "int64",
                "example": 1130
              },
              "lastUpdatedBy": {
                "type": "string",
                "example": "reg2-acc1"
              },
              "lastUpdatedDate": {
                "type": "string",
                "example": "2019-09-16T10:30:31.387Z"
              },
              "metroDevices": {
                "type": "array",
                "description": "An array of metros and the devices in the metros belonging to the group.",
                "items": {
                  "type": "object",
                  "properties": {
                    "devices": {
                      "type": "array",
                      "description": "An array of devices that are part of a device link group.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "aside": {
                            "type": "object",
                            "properties": {
                              "array": {
                                "type": "boolean"
                              },
                              "bigDecimal": {
                                "type": "boolean"
                              },
                              "bigInteger": {
                                "type": "boolean"
                              },
                              "binary": {
                                "type": "boolean"
                              },
                              "boolean": {
                                "type": "boolean"
                              },
                              "containerNode": {
                                "type": "boolean"
                              },
                              "double": {
                                "type": "boolean"
                              },
                              "float": {
                                "type": "boolean"
                              },
                              "floatingPointNumber": {
                                "type": "boolean"
                              },
                              "int": {
                                "type": "boolean"
                              },
                              "integralNumber": {
                                "type": "boolean"
                              },
                              "long": {
                                "type": "boolean"
                              },
                              "missingNode": {
                                "type": "boolean"
                              },
                              "nodeType": {
                                "type": "string",
                                "enum": [
                                  "ARRAY",
                                  "BINARY",
                                  "BOOLEAN",
                                  "MISSING",
                                  "NULL",
                                  "NUMBER",
                                  "OBJECT",
                                  "POJO",
                                  "STRING"
                                ]
                              },
                              "null": {
                                "type": "boolean"
                              },
                              "number": {
                                "type": "boolean"
                              },
                              "object": {
                                "type": "boolean"
                              },
                              "pojo": {
                                "type": "boolean"
                              },
                              "short": {
                                "type": "boolean"
                              },
                              "textual": {
                                "type": "boolean"
                              },
                              "valueNode": {
                                "type": "boolean"
                              }
                            }
                          },
                          "category": {
                            "type": "string",
                            "description": "Category of the device.",
                            "example": "ROUTER"
                          },
                          "cloudProfileProvisioningStatus": {
                            "type": "string",
                            "example": "PROVISIONED"
                          },
                          "connectionStatus": {
                            "type": "string"
                          },
                          "connectionUuid": {
                            "type": "string"
                          },
                          "deviceName": {
                            "type": "string",
                            "description": "Name of the device.",
                            "example": "CSR-Device01"
                          },
                          "deviceTypeCode": {
                            "type": "string",
                            "description": "Device type code.",
                            "example": "CSR1000V"
                          },
                          "deviceUUID": {
                            "type": "string",
                            "description": "Unique Id of the device.",
                            "example": "9ea5a0e4-2bf7-45c2-9aa7-e846a8cd5560"
                          },
                          "interfaceId": {
                            "type": "string",
                            "example": "123"
                          },
                          "interfaceOverlayStatus": {
                            "type": "string",
                            "example": "PROVISIONED"
                          },
                          "interfaceUUID": {
                            "type": "string",
                            "description": "Unique Id of the interface used to link the device.",
                            "example": "6d5b942a-429e-494e-87e0-993845951cf"
                          },
                          "ipAssigned": {
                            "type": "string",
                            "description": "Assigned IP address of the device.",
                            "example": "10.0.0.2/27"
                          },
                          "networkDetails": {
                            "type": "object",
                            "properties": {
                              "array": {
                                "type": "boolean"
                              },
                              "bigDecimal": {
                                "type": "boolean"
                              },
                              "bigInteger": {
                                "type": "boolean"
                              },
                              "binary": {
                                "type": "boolean"
                              },
                              "boolean": {
                                "type": "boolean"
                              },
                              "containerNode": {
                                "type": "boolean"
                              },
                              "double": {
                                "type": "boolean"
                              },
                              "float": {
                                "type": "boolean"
                              },
                              "floatingPointNumber": {
                                "type": "boolean"
                              },
                              "int": {
                                "type": "boolean"
                              },
                              "integralNumber": {
                                "type": "boolean"
                              },
                              "long": {
                                "type": "boolean"
                              },
                              "missingNode": {
                                "type": "boolean"
                              },
                              "nodeType": {
                                "type": "string",
                                "enum": [
                                  "ARRAY",
                                  "BINARY",
                                  "BOOLEAN",
                                  "MISSING",
                                  "NULL",
                                  "NUMBER",
                                  "OBJECT",
                                  "POJO",
                                  "STRING"
                                ]
                              },
                              "null": {
                                "type": "boolean"
                              },
                              "number": {
                                "type": "boolean"
                              },
                              "object": {
                                "type": "boolean"
                              },
                              "pojo": {
                                "type": "boolean"
                              },
                              "short": {
                                "type": "boolean"
                              },
                              "textual": {
                                "type": "boolean"
                              },
                              "valueNode": {
                                "type": "boolean"
                              }
                            }
                          },
                          "status": {
                            "type": "string",
                            "description": "Status of the device.",
                            "example": "PROVISIONING"
                          },
                          "throughput": {
                            "type": "string",
                            "description": "Throughput of the device.",
                            "example": "500"
                          },
                          "throughputUnit": {
                            "type": "string",
                            "description": "Throughput unit of the device.",
                            "example": "Mbps"
                          },
                          "vxlan": {
                            "type": "string",
                            "example": "123"
                          }
                        }
                      }
                    },
                    "metro": {
                      "type": "string",
                      "description": "Name of the metro.",
                      "example": "Dallas"
                    },
                    "metroCode": {
                      "type": "string",
                      "description": "Metro Code",
                      "example": "DA"
                    },
                    "throughput": {
                      "type": "string",
                      "description": "Throughput of the metro.",
                      "example": "500"
                    },
                    "throughputUnit": {
                      "type": "string",
                      "description": "Throughput unit.",
                      "example": "Mbps"
                    }
                  }
                }
              },
              "source": {
                "type": "string",
                "example": "API"
              },
              "status": {
                "type": "string",
                "description": "Status of the device.",
                "example": "PROVISIONING"
              },
              "subnet": {
                "type": "string",
                "description": "Subnet of the link group.",
                "example": "10.0.0.0/27"
              },
              "uuid": {
                "type": "string",
                "description": "Unique Id of the linked group.",
                "example": "6ea5a0e4-2bf7-45c2-9aa7-e846a8cd5567"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getLinkGroupsUsingGET1"
      },
      "task": true
    },
    {
      "name": "getLinkGroupByUUIDUsingGET",
      "summary": "Get Device Link {uuid}",
      "description": "This API will return a device link by its unique Id. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique Id of a device link group.: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "accountName": {
              "type": "string",
              "description": "Account name.",
              "example": "Samsung"
            },
            "createdBy": {
              "type": "string",
              "description": "Created by username.",
              "example": "nfv-sit1"
            },
            "createdDate": {
              "type": "string",
              "description": "Created date.",
              "example": "2019-09-15T10:30:31.387Z"
            },
            "groupName": {
              "type": "string",
              "description": "Group name.",
              "example": "vik-chain"
            },
            "id": {
              "type": "integer",
              "format": "int64",
              "example": 1130
            },
            "lastUpdatedBy": {
              "type": "string",
              "example": "reg2-acc1"
            },
            "lastUpdatedDate": {
              "type": "string",
              "example": "2019-09-16T10:30:31.387Z"
            },
            "metroDevices": {
              "type": "array",
              "description": "An array of metros and the devices in the metros belonging to the group.",
              "items": {
                "type": "object",
                "properties": {
                  "devices": {
                    "type": "array",
                    "description": "An array of devices that are part of a device link group.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "aside": {
                          "type": "object",
                          "properties": {
                            "array": {
                              "type": "boolean"
                            },
                            "bigDecimal": {
                              "type": "boolean"
                            },
                            "bigInteger": {
                              "type": "boolean"
                            },
                            "binary": {
                              "type": "boolean"
                            },
                            "boolean": {
                              "type": "boolean"
                            },
                            "containerNode": {
                              "type": "boolean"
                            },
                            "double": {
                              "type": "boolean"
                            },
                            "float": {
                              "type": "boolean"
                            },
                            "floatingPointNumber": {
                              "type": "boolean"
                            },
                            "int": {
                              "type": "boolean"
                            },
                            "integralNumber": {
                              "type": "boolean"
                            },
                            "long": {
                              "type": "boolean"
                            },
                            "missingNode": {
                              "type": "boolean"
                            },
                            "nodeType": {
                              "type": "string",
                              "enum": [
                                "ARRAY",
                                "BINARY",
                                "BOOLEAN",
                                "MISSING",
                                "NULL",
                                "NUMBER",
                                "OBJECT",
                                "POJO",
                                "STRING"
                              ]
                            },
                            "null": {
                              "type": "boolean"
                            },
                            "number": {
                              "type": "boolean"
                            },
                            "object": {
                              "type": "boolean"
                            },
                            "pojo": {
                              "type": "boolean"
                            },
                            "short": {
                              "type": "boolean"
                            },
                            "textual": {
                              "type": "boolean"
                            },
                            "valueNode": {
                              "type": "boolean"
                            }
                          }
                        },
                        "category": {
                          "type": "string",
                          "description": "Category of the device.",
                          "example": "ROUTER"
                        },
                        "cloudProfileProvisioningStatus": {
                          "type": "string",
                          "example": "PROVISIONED"
                        },
                        "connectionStatus": {
                          "type": "string"
                        },
                        "connectionUuid": {
                          "type": "string"
                        },
                        "deviceName": {
                          "type": "string",
                          "description": "Name of the device.",
                          "example": "CSR-Device01"
                        },
                        "deviceTypeCode": {
                          "type": "string",
                          "description": "Device type code.",
                          "example": "CSR1000V"
                        },
                        "deviceUUID": {
                          "type": "string",
                          "description": "Unique Id of the device.",
                          "example": "9ea5a0e4-2bf7-45c2-9aa7-e846a8cd5560"
                        },
                        "interfaceId": {
                          "type": "string",
                          "example": "123"
                        },
                        "interfaceOverlayStatus": {
                          "type": "string",
                          "example": "PROVISIONED"
                        },
                        "interfaceUUID": {
                          "type": "string",
                          "description": "Unique Id of the interface used to link the device.",
                          "example": "6d5b942a-429e-494e-87e0-993845951cf"
                        },
                        "ipAssigned": {
                          "type": "string",
                          "description": "Assigned IP address of the device.",
                          "example": "10.0.0.2/27"
                        },
                        "networkDetails": {
                          "type": "object",
                          "properties": {
                            "array": {
                              "type": "boolean"
                            },
                            "bigDecimal": {
                              "type": "boolean"
                            },
                            "bigInteger": {
                              "type": "boolean"
                            },
                            "binary": {
                              "type": "boolean"
                            },
                            "boolean": {
                              "type": "boolean"
                            },
                            "containerNode": {
                              "type": "boolean"
                            },
                            "double": {
                              "type": "boolean"
                            },
                            "float": {
                              "type": "boolean"
                            },
                            "floatingPointNumber": {
                              "type": "boolean"
                            },
                            "int": {
                              "type": "boolean"
                            },
                            "integralNumber": {
                              "type": "boolean"
                            },
                            "long": {
                              "type": "boolean"
                            },
                            "missingNode": {
                              "type": "boolean"
                            },
                            "nodeType": {
                              "type": "string",
                              "enum": [
                                "ARRAY",
                                "BINARY",
                                "BOOLEAN",
                                "MISSING",
                                "NULL",
                                "NUMBER",
                                "OBJECT",
                                "POJO",
                                "STRING"
                              ]
                            },
                            "null": {
                              "type": "boolean"
                            },
                            "number": {
                              "type": "boolean"
                            },
                            "object": {
                              "type": "boolean"
                            },
                            "pojo": {
                              "type": "boolean"
                            },
                            "short": {
                              "type": "boolean"
                            },
                            "textual": {
                              "type": "boolean"
                            },
                            "valueNode": {
                              "type": "boolean"
                            }
                          }
                        },
                        "status": {
                          "type": "string",
                          "description": "Status of the device.",
                          "example": "PROVISIONING"
                        },
                        "throughput": {
                          "type": "string",
                          "description": "Throughput of the device.",
                          "example": "500"
                        },
                        "throughputUnit": {
                          "type": "string",
                          "description": "Throughput unit of the device.",
                          "example": "Mbps"
                        },
                        "vxlan": {
                          "type": "string",
                          "example": "123"
                        }
                      }
                    }
                  },
                  "metro": {
                    "type": "string",
                    "description": "Name of the metro.",
                    "example": "Dallas"
                  },
                  "metroCode": {
                    "type": "string",
                    "description": "Metro Code",
                    "example": "DA"
                  },
                  "throughput": {
                    "type": "string",
                    "description": "Throughput of the metro.",
                    "example": "500"
                  },
                  "throughputUnit": {
                    "type": "string",
                    "description": "Throughput unit.",
                    "example": "Mbps"
                  }
                }
              }
            },
            "source": {
              "type": "string",
              "example": "API"
            },
            "status": {
              "type": "string",
              "description": "Status of the device.",
              "example": "PROVISIONING"
            },
            "subnet": {
              "type": "string",
              "description": "Subnet of the link group.",
              "example": "10.0.0.0/27"
            },
            "uuid": {
              "type": "string",
              "description": "Unique Id of the linked group.",
              "example": "6ea5a0e4-2bf7-45c2-9aa7-e846a8cd5567"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getLinkGroupByUUIDUsingGET"
      },
      "task": true
    },
    {
      "name": "updateLinkGroupUsingPATCH",
      "summary": "Update Device Link",
      "description": "Call this API to update a device link. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique Id of a device link group.: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "deviceLinkGroup",
          "type": "object",
          "info": "Device Link Group: {\"groupName\": \"string\", \"subnet\": \"string\", \"linkDevices\": [{\"asn\": 123, \"deviceUuid\": \"string\", \"interfaceId\": 123}], \"links\": [{\"accountNumber\": \"string\", \"throughput\": \"string\", \"throughputUnit\": \"string\", \"sourceMetroCode\": \"string\", \"sourceZoneCode\": \"string\", \"destinationMetroCode\": \"string\", \"destinationZoneCode\": \"string\"}]}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "groupName",
              "subnet"
            ],
            "properties": {
              "groupName": {
                "type": "string",
                "example": "linkGroup",
                "description": "Group name."
              },
              "subnet": {
                "type": "string",
                "example": "192.164.0.0/29",
                "description": "Subnet of the link group."
              },
              "linkDevices": {
                "type": "array",
                "description": "An array of devices to link.",
                "items": {
                  "type": "object",
                  "required": [
                    "deviceUuid"
                  ],
                  "description": "Unique Id of a device.",
                  "properties": {
                    "asn": {
                      "type": "integer",
                      "format": "int64",
                      "example": 25658,
                      "description": "The ASN number of the device. The request will fail if you provide a new ASN for a device that already has an ASN."
                    },
                    "deviceUuid": {
                      "type": "string",
                      "example": "70754e55-a064-40c3-a911-6dc1f14b96fd",
                      "description": "device"
                    },
                    "interfaceId": {
                      "type": "integer",
                      "example": 6,
                      "description": "Any available interface of the device."
                    }
                  }
                }
              },
              "links": {
                "type": "array",
                "description": "An array of links.",
                "items": {
                  "type": "object",
                  "properties": {
                    "accountNumber": {
                      "type": "string",
                      "description": "Account number. Either an account number or an accountreferenceId is required to create a link group.",
                      "example": 345678
                    },
                    "throughput": {
                      "type": "string",
                      "example": "1000",
                      "description": "Metro Throughput."
                    },
                    "throughputUnit": {
                      "type": "string",
                      "example": "Mbps",
                      "description": "Throughput unit."
                    },
                    "sourceMetroCode": {
                      "type": "string",
                      "example": "SY",
                      "description": "Source metro code."
                    },
                    "sourceZoneCode": {
                      "type": "string",
                      "example": "Zone1",
                      "description": "Source zone code."
                    },
                    "destinationMetroCode": {
                      "type": "string",
                      "example": "SY",
                      "description": "Destination metro code."
                    },
                    "destinationZoneCode": {
                      "type": "string",
                      "example": "Zone2",
                      "description": "Destination metro code."
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateLinkGroupUsingPATCH"
      },
      "task": true
    },
    {
      "name": "deleteLinkGroupUsingDELETE",
      "summary": "Delete Device Link",
      "description": "This method deletes a device link group. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Unique Id of a device link group.: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "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": "/deleteLinkGroupUsingDELETE"
      },
      "task": true
    },
    {
      "name": "getProfilesByMetroUsingGET",
      "summary": "Get L2 Service Profiles",
      "description": "Get the list of all active and valid Layer 2 service profiles to which connections can be created.",
      "input": [
        {
          "name": "metroCode",
          "type": "array",
          "info": "metroCode: array",
          "required": false,
          "schema": {
            "title": "metroCode",
            "type": "array"
          }
        },
        {
          "name": "pageNumber",
          "type": "number",
          "info": "page number: 123",
          "required": false,
          "schema": {
            "title": "pageNumber",
            "type": "number"
          }
        },
        {
          "name": "pageSize",
          "type": "number",
          "info": "total number of records: 123",
          "required": false,
          "schema": {
            "title": "pageSize",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "isLastPage": {
              "type": "boolean",
              "example": true
            },
            "totalCount": {
              "type": "integer",
              "example": 55
            },
            "isFirstPage": {
              "type": "boolean",
              "example": true
            },
            "pageSize": {
              "type": "integer",
              "example": 1000
            },
            "pageNumber": {
              "type": "integer",
              "example": 1
            },
            "content": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "uuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "name": {
                    "type": "string",
                    "example": "test"
                  },
                  "authKeyLabel": {
                    "type": "string",
                    "example": "Authorization Key"
                  },
                  "connectionNameLabel": {
                    "type": "string",
                    "example": "Connection Name"
                  },
                  "requiredRedundancy": {
                    "type": "boolean",
                    "example": false
                  },
                  "allowCustomSpeed": {
                    "type": "boolean",
                    "example": false
                  },
                  "speedBands": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "speed": {
                          "type": "number",
                          "format": "double",
                          "example": 50
                        },
                        "unit": {
                          "type": "string",
                          "example": "MB"
                        }
                      }
                    }
                  },
                  "metros": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "example": "SV"
                      },
                      "name": {
                        "type": "string",
                        "example": "Silicon Valley"
                      },
                      "ibxs": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "example": "SV1"
                        }
                      },
                      "inTrail": {
                        "type": "boolean",
                        "example": false
                      },
                      "displayName": {
                        "type": "string",
                        "example": "Silicon Valley"
                      }
                    }
                  },
                  "createdDate": {
                    "type": "string",
                    "example": "2018-03-22T04:34:48.231Z"
                  },
                  "createdBy": {
                    "type": "string",
                    "example": "Sandbox User"
                  },
                  "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-04-03T00:30:57.055Z"
                  },
                  "lastUpdatedBy": {
                    "type": "string",
                    "example": "Sandbox User"
                  },
                  "vlanSameAsPrimary": {
                    "type": "boolean",
                    "example": false
                  },
                  "tagType": {
                    "type": "string",
                    "example": "CTAGED"
                  },
                  "ctagLabel": {
                    "type": "string",
                    "example": "Seller-Side C-Tag"
                  },
                  "apiAvailable": {
                    "type": "boolean",
                    "example": false
                  },
                  "selfProfile": {
                    "type": "boolean",
                    "example": false
                  },
                  "profileEncapsulation": {
                    "type": "string",
                    "example": "Dot1q"
                  },
                  "authorizationKey": {
                    "type": "string",
                    "example": "535235"
                  },
                  "organizationName": {
                    "type": "string",
                    "example": "Equinix-ADMIN"
                  },
                  "private": {
                    "type": "boolean",
                    "example": false
                  },
                  "features": {
                    "type": "object",
                    "properties": {
                      "cloudReach": {
                        "type": "boolean",
                        "example": true
                      },
                      "testProfile": {
                        "type": "boolean",
                        "example": false
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getProfilesByMetroUsingGET"
      },
      "task": true
    },
    {
      "name": "getProfileByIdUsingGET",
      "summary": "Get L2 Service Profile {uuid}",
      "description": "Get all the pertinent details for a Layer 2 service profile specified by its uuid.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "isLastPage": {
              "type": "boolean",
              "example": true
            },
            "totalCount": {
              "type": "integer",
              "example": 55
            },
            "isFirstPage": {
              "type": "boolean",
              "example": true
            },
            "pageSize": {
              "type": "integer",
              "example": 1000
            },
            "pageNumber": {
              "type": "integer",
              "example": 1
            },
            "content": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "uuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "name": {
                    "type": "string",
                    "example": "test"
                  },
                  "authKeyLabel": {
                    "type": "string",
                    "example": "Authorization Key"
                  },
                  "connectionNameLabel": {
                    "type": "string",
                    "example": "Connection Name"
                  },
                  "requiredRedundancy": {
                    "type": "boolean",
                    "example": false
                  },
                  "allowCustomSpeed": {
                    "type": "boolean",
                    "example": false
                  },
                  "speedBands": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "speed": {
                          "type": "number",
                          "format": "double",
                          "example": 50
                        },
                        "unit": {
                          "type": "string",
                          "example": "MB"
                        }
                      }
                    }
                  },
                  "metros": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "example": "SV"
                      },
                      "name": {
                        "type": "string",
                        "example": "Silicon Valley"
                      },
                      "ibxs": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "example": "SV1"
                        }
                      },
                      "inTrail": {
                        "type": "boolean",
                        "example": false
                      },
                      "displayName": {
                        "type": "string",
                        "example": "Silicon Valley"
                      }
                    }
                  },
                  "createdDate": {
                    "type": "string",
                    "example": "2018-03-22T04:34:48.231Z"
                  },
                  "createdBy": {
                    "type": "string",
                    "example": "Sandbox User"
                  },
                  "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-04-03T00:30:57.055Z"
                  },
                  "lastUpdatedBy": {
                    "type": "string",
                    "example": "Sandbox User"
                  },
                  "vlanSameAsPrimary": {
                    "type": "boolean",
                    "example": false
                  },
                  "tagType": {
                    "type": "string",
                    "example": "CTAGED"
                  },
                  "ctagLabel": {
                    "type": "string",
                    "example": "Seller-Side C-Tag"
                  },
                  "apiAvailable": {
                    "type": "boolean",
                    "example": false
                  },
                  "selfProfile": {
                    "type": "boolean",
                    "example": false
                  },
                  "profileEncapsulation": {
                    "type": "string",
                    "example": "Dot1q"
                  },
                  "authorizationKey": {
                    "type": "string",
                    "example": "535235"
                  },
                  "organizationName": {
                    "type": "string",
                    "example": "Equinix-ADMIN"
                  },
                  "private": {
                    "type": "boolean",
                    "example": false
                  },
                  "features": {
                    "type": "object",
                    "properties": {
                      "cloudReach": {
                        "type": "boolean",
                        "example": true
                      },
                      "testProfile": {
                        "type": "boolean",
                        "example": false
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getProfileByIdUsingGET"
      },
      "task": true
    },
    {
      "name": "validateAuthorizationKeyUsingGET",
      "summary": "Get L2 Validate Authorization Key",
      "description": "Validates authorization/service key or account ID to connect to cloud service providers. The participant must first use the provider console to establish a connection and obtain a valid account or service which could then be used to create connections to CSPs. Participants may validate their keys using this API.",
      "input": [
        {
          "name": "authorizationKey",
          "type": "string",
          "info": "Could be AWS Account ID or Azure Service Key or Google Pairing Key or Oracle connection Id or any other authorization key: string",
          "required": true,
          "schema": {
            "title": "authorizationKey",
            "type": "string"
          }
        },
        {
          "name": "metroCode",
          "type": "string",
          "info": "metroCode: string",
          "required": true,
          "schema": {
            "title": "metroCode",
            "type": "string"
          }
        },
        {
          "name": "profileId",
          "type": "string",
          "info": "profileId: string",
          "required": true,
          "schema": {
            "title": "profileId",
            "type": "string"
          }
        },
        {
          "name": "region",
          "type": "string",
          "info": "region: string",
          "required": true,
          "schema": {
            "title": "region",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "example": "Authorization key provided is valid"
            },
            "status": {
              "type": "string",
              "example": "VALID"
            },
            "primary": {
              "type": "object",
              "properties": {
                "bandwidth": {
                  "type": "string",
                  "example": "50MB"
                }
              }
            },
            "secondary": {
              "type": "object",
              "properties": {
                "bandwidth": {
                  "type": "string",
                  "example": "50MB"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/validateAuthorizationKeyUsingGET"
      },
      "task": true
    },
    {
      "name": "createConnectionUsingPOST",
      "summary": "Create L2 Connection",
      "description": "Create a new Layer 2 connection on a virtual device to a cloud service provider, another ECX participant or to your own assets in another metro.",
      "input": [
        {
          "name": "request",
          "type": "object",
          "info": "request: {\"primaryName\": \"string\", \"virtualDeviceUuid\": \"string\", \"profileUUID\": \"string\", \"authorizationKey\": \"string\", \"speed\": 123, \"speedUnit\": \"string\", \"notifications\": \"array\", \"purchaseOrderNumber\": \"string\", \"sellerMetroCode\": \"string\", \"interfaceId\": 123, \"secondaryName\": \"string\", \"namedTag\": \"string\", \"secondaryVirtualDeviceUuid\": \"string\", \"secondaryProfileUUID\": \"string\", \"secondaryAuthorizationKey\": \"string\", \"secondarySellerMetroCode\": \"string\", \"secondarySpeed\": 123, \"secondarySpeedUnit\": \"string\", \"secondaryNotifications\": \"array\", \"secondaryInterfaceId\": 123, \"primaryZSideVlanCTag\": 123, \"secondaryZSideVlanCTag\": 123, \"primaryZSidePortUUID\": \"string\", \"primaryZSideVlanSTag\": 123, \"secondaryZSidePortUUID\": \"string\", \"secondaryZSideVlanSTag\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "primaryName": {
                "type": "string",
                "example": "v3-api-test-pri"
              },
              "virtualDeviceUuid": {
                "type": "string",
                "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
              },
              "profileUUID": {
                "type": "string",
                "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
              },
              "authorizationKey": {
                "type": "string",
                "example": 444111000222
              },
              "speed": {
                "type": "integer",
                "example": 50
              },
              "speedUnit": {
                "type": "string",
                "example": "MB"
              },
              "notifications": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "sandboxuser@example-company.com"
                }
              },
              "purchaseOrderNumber": {
                "type": "string",
                "example": "312456323"
              },
              "sellerMetroCode": {
                "type": "string",
                "example": "SV"
              },
              "interfaceId": {
                "type": "integer",
                "example": 5
              },
              "secondaryName": {
                "type": "string",
                "example": "v3-api-test-sec1"
              },
              "namedTag": {
                "type": "string",
                "example": "Private"
              },
              "secondaryVirtualDeviceUuid": {
                "type": "string",
                "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
              },
              "secondaryProfileUUID": {
                "type": "string",
                "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
              },
              "secondaryAuthorizationKey": {
                "type": "string",
                "example": 444111000222
              },
              "secondarySellerMetroCode": {
                "type": "string",
                "example": "SV"
              },
              "secondarySpeed": {
                "type": "integer",
                "example": 50
              },
              "secondarySpeedUnit": {
                "type": "string",
                "example": "MB"
              },
              "secondaryNotifications": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "sandboxuser@example-company.com"
                }
              },
              "secondaryInterfaceId": {
                "type": "integer",
                "example": 6
              },
              "primaryZSideVlanCTag": {
                "type": "integer",
                "example": 101
              },
              "secondaryZSideVlanCTag": {
                "type": "integer",
                "example": 102
              },
              "primaryZSidePortUUID": {
                "type": "string",
                "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
              },
              "primaryZSideVlanSTag": {
                "type": "integer",
                "example": 301
              },
              "secondaryZSidePortUUID": {
                "type": "string",
                "example": "xxxxx192-xx70-xxxx-xx04-xxxxxxxa37xx"
              },
              "secondaryZSideVlanSTag": {
                "type": "integer",
                "example": 302
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "example": "Connection created successfully"
            },
            "primaryConnectionId": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            },
            "secondaryConnectionId": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            },
            "status": {
              "type": "string",
              "example": "SUCCESS"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createConnectionUsingPOST"
      },
      "task": true
    },
    {
      "name": "performUserActionUsingPATCH",
      "summary": "Update Connection {uuid}",
      "description": "Update (or approve) connection to complete the provisioning or to perform any updates to the Layer 2 connection. It is typically used to accept a hosted connection.",
      "input": [
        {
          "name": "action",
          "type": "string",
          "info": "action: string",
          "required": true,
          "schema": {
            "title": "action",
            "type": "string"
          }
        },
        {
          "name": "uuid",
          "type": "string",
          "info": "connId: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "request",
          "type": "object",
          "info": "request: {\"accessKey\": \"string\", \"secretKey\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "accessKey": {
                "type": "string",
                "example": "AKIAIXKQARIFBC3QJKYQ"
              },
              "secretKey": {
                "type": "string",
                "example": "ARIFW1lWbqNSOqSkCAOXAhep22UGyLJvkDBAIG"
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "example": "Message"
            },
            "primaryConnectionId": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/performUserActionUsingPATCH"
      },
      "task": true
    },
    {
      "name": "getConnectionByUuidUsingGET",
      "summary": "Get L2 Connection",
      "description": "Get connection details including its status, allocated bandwidth, VLAN tag, the service profile (or cloud provider) the connection has been created to etc.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "Connection UUID: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "buyerOrganizationName": {
              "type": "string",
              "example": "Forsythe Solutions Group, Inc."
            },
            "uuid": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            },
            "name": {
              "type": "string",
              "example": "Test-123"
            },
            "vlanSTag": {
              "type": "integer",
              "format": "int32",
              "example": 1015
            },
            "portUUID": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            },
            "portName": {
              "type": "string",
              "example": "TEST-CH2-CX-SEC-01"
            },
            "asideEncapsulation": {
              "type": "string",
              "example": "dot1q"
            },
            "metroCode": {
              "type": "string",
              "example": "CH"
            },
            "metroDescription": {
              "type": "string",
              "example": "Chicago"
            },
            "providerStatus": {
              "type": "string",
              "example": "PROVISIONED"
            },
            "status": {
              "type": "string",
              "example": "PROVISIONED"
            },
            "billingTier": {
              "type": "string",
              "example": "Up to 500MB"
            },
            "authorizationKey": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            },
            "speed": {
              "type": "integer",
              "format": "int32",
              "example": 500
            },
            "speedUnit": {
              "type": "string",
              "example": "MB"
            },
            "redundancyType": {
              "type": "string",
              "example": "secondary"
            },
            "redundancyGroup": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            },
            "sellerMetroCode": {
              "type": "string",
              "example": "CH"
            },
            "sellerMetroDescription": {
              "type": "string",
              "example": "Chicago"
            },
            "sellerServiceName": {
              "type": "string",
              "example": "XYZ Cloud Service"
            },
            "sellerServiceUUID": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            },
            "sellerOrganizationName": {
              "type": "string",
              "example": "EQUINIX-CLOUD-EXCHANGE"
            },
            "notifications": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "sandboxuser@example-company.com, sandboxuser@example-company.com"
              }
            },
            "purchaseOrderNumber": {
              "type": "string",
              "example": "O-1234567890"
            },
            "namedTag": {
              "type": "string",
              "example": "Private"
            },
            "createdDate": {
              "type": "string",
              "example": "2017-09-26T22:46:24.312Z"
            },
            "createdBy": {
              "type": "string",
              "example": "sandboxuser@example-company.com"
            },
            "createdByFullName": {
              "type": "string",
              "example": "Sandbox User"
            },
            "createdByEmail": {
              "type": "string",
              "example": "sandboxuser@example-company.com"
            },
            "lastUpdatedBy": {
              "type": "string",
              "example": "sandboxuser@example-company.com"
            },
            "lastUpdatedDate": {
              "type": "string",
              "example": "2017-09-26T23:01:46Z"
            },
            "lastUpdatedByFullName": {
              "type": "string",
              "example": "Sandbox User"
            },
            "lastUpdatedByEmail": {
              "type": "string",
              "example": "sandboxuser@example-company.com"
            },
            "zSidePortName": {
              "type": "string",
              "example": "TEST-CHG-06GMR-Tes-2-TES-C"
            },
            "zSidePortUUID": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            },
            "zSideVlanCTag": {
              "type": "integer",
              "format": "int32",
              "example": 515
            },
            "zSideVlanSTag": {
              "type": "integer",
              "format": "int32",
              "example": 2
            },
            "remote": {
              "type": "boolean",
              "example": false
            },
            "private": {
              "type": "boolean",
              "example": "false,"
            },
            "self": {
              "type": "boolean",
              "example": "false,"
            },
            "redundantUuid": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getConnectionByUuidUsingGET"
      },
      "task": true
    },
    {
      "name": "deleteConnectionUsingDELETE",
      "summary": "Delete Connection {uuid}",
      "description": "Deletes a virtual connection specified by its unique Id. Once a connection has been successfully deleted, billing for that connections will also be stopped.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "connId: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "example": "Message"
            },
            "primaryConnectionId": {
              "type": "string",
              "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteConnectionUsingDELETE"
      },
      "task": true
    },
    {
      "name": "addBgpConfigurationUsingPOST",
      "summary": "Create BGP Peering",
      "description": "Creates a BGP session to establish a point-to-point connection between your virtual device and cloud service provider. To create BGP peers, you must have a virtual device that is provisioned and registered and a provisioned connection.",
      "input": [
        {
          "name": "request",
          "type": "object",
          "info": "BGP configuration details: {\"authenticationKey\": \"string\", \"connectionUuid\": \"string\", \"localAsn\": 123, \"localIpAddress\": \"string\", \"remoteAsn\": 123, \"remoteIpAddress\": \"string\"}",
          "required": false,
          "schema": {
            "type": "object",
            "properties": {
              "authenticationKey": {
                "description": "Provide a key value that you can use later to authenticate.",
                "type": "string",
                "example": "pass123"
              },
              "connectionUuid": {
                "type": "string",
                "example": "f79eead8-b837-41d3-9095-9b15c2c4996d",
                "description": "The unique Id of a connection between the virtual device and the cloud service provider"
              },
              "localAsn": {
                "type": "integer",
                "format": "int64",
                "example": 10012,
                "description": "Local ASN (autonomous system network). This is the ASN of the virtual device."
              },
              "localIpAddress": {
                "type": "string",
                "example": "100.210.1.221/30",
                "description": "Local IP Address. This is the IP address of the virtual device in CIDR format."
              },
              "remoteAsn": {
                "type": "integer",
                "format": "int64",
                "example": 10013,
                "description": "Remote ASN (autonomous system network). This is the ASN of the cloud service provider."
              },
              "remoteIpAddress": {
                "type": "string",
                "example": "100.210.1.31",
                "description": "Remote IP Address. This is the IP address of the cloud service provider."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/addBgpConfigurationUsingPOST"
      },
      "task": true
    },
    {
      "name": "getBgpConfigurationsUsingGET",
      "summary": "Get BGP Peering",
      "description": "Returns BGP configurations on the Network Edge platform. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "virtualDeviceUuid",
          "type": "string",
          "info": "Unique Id of a virtual device: string",
          "required": false,
          "schema": {
            "title": "virtualDeviceUuid",
            "type": "string"
          }
        },
        {
          "name": "connectionUuid",
          "type": "string",
          "info": "Unique Id of a connection: string",
          "required": false,
          "schema": {
            "title": "connectionUuid",
            "type": "string"
          }
        },
        {
          "name": "status",
          "type": "string",
          "info": "Provisioning status of BGP Peering: string",
          "required": false,
          "schema": {
            "title": "status",
            "type": "string"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "Unique Id of an account. A reseller querying for a customer's devices can input the accountUcmId of the customer's account.: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        },
        {
          "name": "offset",
          "type": "string",
          "info": "Specifies where to start a page. It is the starting point of the collection returned from the server.: string",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Specifies the page size.: string",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "authenticationKey": {
              "type": "string"
            },
            "connectionUuid": {
              "type": "string"
            },
            "createdBy": {
              "type": "string"
            },
            "createdByEmail": {
              "type": "string"
            },
            "createdByFullName": {
              "type": "string"
            },
            "createdDate": {
              "type": "string"
            },
            "deletedBy": {
              "type": "string"
            },
            "deletedByEmail": {
              "type": "string"
            },
            "deletedByFullName": {
              "type": "string"
            },
            "deletedDate": {
              "type": "string"
            },
            "lastUpdatedBy": {
              "type": "string"
            },
            "lastUpdatedByEmail": {
              "type": "string"
            },
            "lastUpdatedByFullName": {
              "type": "string"
            },
            "lastUpdatedDate": {
              "type": "string"
            },
            "localAsn": {
              "type": "integer",
              "format": "int64"
            },
            "localIpAddress": {
              "type": "string"
            },
            "provisioningStatus": {
              "type": "string"
            },
            "remoteAsn": {
              "type": "integer",
              "format": "int64"
            },
            "remoteIpAddress": {
              "type": "string"
            },
            "state": {
              "type": "string"
            },
            "uuid": {
              "type": "string"
            },
            "virtualDeviceUuid": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getBgpConfigurationsUsingGET"
      },
      "task": true
    },
    {
      "name": "updateBgpConfigurationUsingPUT",
      "summary": "Update BGP Peering",
      "description": "Updates an existing BGP peering configuration identified by its unique Id. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "request",
          "type": "object",
          "info": "BGP config: {\"authenticationKey\": \"string\", \"localAsn\": 123, \"localIpAddress\": \"string\", \"remoteAsn\": 123, \"remoteIpAddress\": \"string\"}",
          "required": false,
          "schema": {
            "type": "object",
            "properties": {
              "authenticationKey": {
                "type": "string",
                "example": "pass123",
                "description": "Authentication Key"
              },
              "localAsn": {
                "type": "integer",
                "format": "int64",
                "example": 10012,
                "description": "Local ASN"
              },
              "localIpAddress": {
                "type": "string",
                "example": "100.210.1.221/30",
                "description": "Local IP Address with subnet"
              },
              "remoteAsn": {
                "type": "integer",
                "format": "int64",
                "example": 10013,
                "description": "Remote ASN"
              },
              "remoteIpAddress": {
                "type": "string",
                "example": "100.210.1.31",
                "description": "Remote IP Address"
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateBgpConfigurationUsingPUT"
      },
      "task": true
    },
    {
      "name": "getBgpConfigurationUsingGET",
      "summary": "Get BGP Peering {uuid}",
      "description": "Gets a BGP peering configuration by its unique Id. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "authenticationKey": {
              "type": "string"
            },
            "connectionUuid": {
              "type": "string"
            },
            "createdBy": {
              "type": "string"
            },
            "createdByEmail": {
              "type": "string"
            },
            "createdByFullName": {
              "type": "string"
            },
            "createdDate": {
              "type": "string"
            },
            "deletedBy": {
              "type": "string"
            },
            "deletedByEmail": {
              "type": "string"
            },
            "deletedByFullName": {
              "type": "string"
            },
            "deletedDate": {
              "type": "string"
            },
            "lastUpdatedBy": {
              "type": "string"
            },
            "lastUpdatedByEmail": {
              "type": "string"
            },
            "lastUpdatedByFullName": {
              "type": "string"
            },
            "lastUpdatedDate": {
              "type": "string"
            },
            "localAsn": {
              "type": "integer",
              "format": "int64"
            },
            "localIpAddress": {
              "type": "string"
            },
            "provisioningStatus": {
              "type": "string"
            },
            "remoteAsn": {
              "type": "integer",
              "format": "int64"
            },
            "remoteIpAddress": {
              "type": "string"
            },
            "state": {
              "type": "string"
            },
            "uuid": {
              "type": "string"
            },
            "virtualDeviceUuid": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getBgpConfigurationUsingGET"
      },
      "task": true
    },
    {
      "name": "createVpnUsingPOST",
      "summary": "Create VPN Configuration",
      "description": "Creates a VPN configuration. You must have a provisioned virtual device with a registered license to create a VPN.",
      "input": [
        {
          "name": "request",
          "type": "object",
          "info": "VPN info: {\"siteName\": \"string\", \"virtualDeviceUuid\": \"string\", \"configName\": \"string\", \"peerIp\": \"string\", \"peerSharedKey\": \"string\", \"remoteAsn\": 123, \"remoteIpAddress\": \"string\", \"password\": \"string\", \"localAsn\": 123, \"tunnelIp\": \"string\", \"secondary\": {\"configName\": \"string\", \"peerIp\": \"string\", \"peerSharedKey\": \"string\", \"remoteAsn\": 123, \"remoteIpAddress\": \"string\", \"password\": \"string\", \"localAsn\": 123, \"tunnelIp\": \"string\"}}",
          "required": false,
          "schema": {
            "type": "object",
            "required": [
              "password",
              "peerIp",
              "peerSharedKey",
              "remoteAsn",
              "remoteIpAddress",
              "siteName",
              "tunnelIp",
              "virtualDeviceUuid"
            ],
            "properties": {
              "siteName": {
                "type": "string",
                "example": "Chicago"
              },
              "virtualDeviceUuid": {
                "type": "string",
                "example": "f79eead8-b837-41d3-9095-9b15c2c4996d",
                "description": "The unique Id of the primary device."
              },
              "configName": {
                "type": "string",
                "example": "Traffic from AWS cloud"
              },
              "peerIp": {
                "type": "string",
                "example": "110.11.12.222"
              },
              "peerSharedKey": {
                "type": "string",
                "example": "5bb2424e888bd"
              },
              "remoteAsn": {
                "type": "integer",
                "format": "int64",
                "example": 65413,
                "description": "Remote Customer ASN - Customer side"
              },
              "remoteIpAddress": {
                "type": "string",
                "example": "100.210.1.31",
                "description": "Remote Customer IP Address - Customer side"
              },
              "password": {
                "type": "string",
                "example": "pass123",
                "description": "BGP Password"
              },
              "localAsn": {
                "type": "integer",
                "format": "int64",
                "example": 65414,
                "description": "Local ASN - Equinix side"
              },
              "tunnelIp": {
                "type": "string",
                "example": "192.168.7.2/30",
                "description": "Local Tunnel IP Address in CIDR format"
              },
              "secondary": {
                "type": "object",
                "required": [
                  "password",
                  "peerIp",
                  "peerSharedKey",
                  "remoteAsn",
                  "remoteIpAddress",
                  "tunnelIp"
                ],
                "properties": {
                  "configName": {
                    "type": "string",
                    "example": "Traffic from AWS cloud"
                  },
                  "peerIp": {
                    "type": "string",
                    "example": "110.11.12.222"
                  },
                  "peerSharedKey": {
                    "type": "string",
                    "example": "5bb2424e888bd"
                  },
                  "remoteAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65413,
                    "description": "Remote Customer ASN - Customer side"
                  },
                  "remoteIpAddress": {
                    "type": "string",
                    "example": "100.210.1.31",
                    "description": "Remote Customer IP Address - Customer side"
                  },
                  "password": {
                    "type": "string",
                    "example": "pass123",
                    "description": "BGP Password"
                  },
                  "localAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65414,
                    "description": "Local ASN - Equinix side"
                  },
                  "tunnelIp": {
                    "type": "string",
                    "example": "192.168.7.2/30",
                    "description": "Local Tunnel IP Address in CIDR format"
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/createVpnUsingPOST"
      },
      "task": true
    },
    {
      "name": "getVpnsUsingGET",
      "summary": "Get VPN Configurations",
      "description": "Gets all VPN configurations by user name and specified parameter(s). Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "statusList",
          "type": "array",
          "info": "One or more desired status: array",
          "required": false,
          "schema": {
            "title": "statusList",
            "type": "array"
          }
        },
        {
          "name": "virtualDeviceUuid",
          "type": "string",
          "info": "Unique Id of a virtual device: string",
          "required": false,
          "schema": {
            "title": "virtualDeviceUuid",
            "type": "string"
          }
        },
        {
          "name": "offset",
          "type": "string",
          "info": "Specifies where to start a page. It is the starting point of the collection returned from the server.: string",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Specifies the page size.: string",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "pagination": {
              "type": "object",
              "properties": {
                "offset": {
                  "type": "integer",
                  "example": 0,
                  "description": "It is the starting point of the collection returned fromt the server"
                },
                "limit": {
                  "type": "integer",
                  "description": "The page size",
                  "example": 20
                },
                "total": {
                  "type": "integer",
                  "description": "The total number of results",
                  "example": 1
                }
              }
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "password",
                  "peerIp",
                  "peerSharedKey",
                  "remoteAsn",
                  "remoteIpAddress",
                  "siteName",
                  "tunnelIp",
                  "virtualDeviceUuid"
                ],
                "properties": {
                  "siteName": {
                    "type": "string",
                    "example": "Chicago"
                  },
                  "uuid": {
                    "type": "string",
                    "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
                  },
                  "virtualDeviceUuid": {
                    "type": "string",
                    "example": "f79eead8-b837-41d3-9095-9b15c2c4996d"
                  },
                  "configName": {
                    "type": "string",
                    "example": "Traffic from AWS cloud"
                  },
                  "status": {
                    "type": "string",
                    "example": "PROVISIONED"
                  },
                  "peerIp": {
                    "type": "string",
                    "example": "110.11.12.222"
                  },
                  "peerSharedKey": {
                    "type": "string",
                    "example": "5bb2424e888bd"
                  },
                  "remoteAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65413,
                    "description": "Remote Customer ASN - Customer side"
                  },
                  "remoteIpAddress": {
                    "type": "string",
                    "example": "100.210.1.31",
                    "description": "Remote Customer IP Address - Customer side"
                  },
                  "password": {
                    "type": "string",
                    "example": "pass123",
                    "description": "BGP Password"
                  },
                  "localAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65414,
                    "description": "Local ASN - Equinix side"
                  },
                  "tunnelIp": {
                    "type": "string",
                    "example": "192.168.7.2/30",
                    "description": "Local Tunnel IP Address in CIDR format"
                  },
                  "bgpState": {
                    "type": "string",
                    "example": "ESTABLISHED"
                  },
                  "inboundBytes": {
                    "type": "string",
                    "example": "8780"
                  },
                  "inboundPackets": {
                    "type": "string",
                    "example": "8780"
                  },
                  "outboundBytes": {
                    "type": "string",
                    "example": "8765"
                  },
                  "outboundPackets": {
                    "type": "string",
                    "example": "8765"
                  },
                  "tunnelStatus": {
                    "type": "string",
                    "example": "UP"
                  },
                  "custOrgId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65555
                  },
                  "createdDate": {
                    "type": "string",
                    "example": "2018-05-18 06:34:26"
                  },
                  "createdByFirstName": {
                    "type": "string",
                    "example": "John"
                  },
                  "createdByLastName": {
                    "type": "string",
                    "example": "Smith"
                  },
                  "createdByEmail": {
                    "type": "string",
                    "example": "alpha@beta.com"
                  },
                  "createdByUserKey": {
                    "type": "integer",
                    "format": "int64",
                    "example": 123
                  },
                  "createdByAccountUcmId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 456
                  },
                  "createdByUserName": {
                    "type": "string",
                    "example": "jsmith"
                  },
                  "createdByCustOrgId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 7863
                  },
                  "createdByCustOrgName": {
                    "type": "string",
                    "example": "My Awesome Org"
                  },
                  "createdByUserStatus": {
                    "type": "string",
                    "example": "ACTIVATED"
                  },
                  "createdByCompanyName": {
                    "type": "string",
                    "example": "My Awesome Company"
                  },
                  "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-07-21 05:20:20"
                  },
                  "updatedByFirstName": {
                    "type": "string",
                    "example": "John"
                  },
                  "updatedByLastName": {
                    "type": "string",
                    "example": "Smith"
                  },
                  "updatedByEmail": {
                    "type": "string",
                    "example": "alpha@beta.com"
                  },
                  "updatedByUserKey": {
                    "type": "integer",
                    "format": "int64",
                    "example": 123
                  },
                  "updatedByAccountUcmId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 456
                  },
                  "updatedByUserName": {
                    "type": "string",
                    "example": "jsmith"
                  },
                  "updatedByCustOrgId": {
                    "type": "integer",
                    "format": "int64",
                    "example": 7863
                  },
                  "updatedByCustOrgName": {
                    "type": "string",
                    "example": "My Awesome Org"
                  },
                  "updatedByUserStatus": {
                    "type": "string",
                    "example": "ACTIVATED"
                  },
                  "updatedByCompanyName": {
                    "type": "string",
                    "example": "My Awesome Company"
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getVpnsUsingGET"
      },
      "task": true
    },
    {
      "name": "getVpnByUuidUsingGET",
      "summary": "Get VPN Configuration {uuid}",
      "description": "Gets a VPN configuration by its unique Id. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "password",
            "peerIp",
            "peerSharedKey",
            "remoteAsn",
            "remoteIpAddress",
            "siteName",
            "tunnelIp",
            "virtualDeviceUuid"
          ],
          "properties": {
            "siteName": {
              "type": "string",
              "example": "Chicago"
            },
            "uuid": {
              "type": "string",
              "example": "877a3aa2-c49a-4af1-98a6-007424e737ae"
            },
            "virtualDeviceUuid": {
              "type": "string",
              "example": "f79eead8-b837-41d3-9095-9b15c2c4996d"
            },
            "configName": {
              "type": "string",
              "example": "Traffic from AWS cloud"
            },
            "status": {
              "type": "string",
              "example": "PROVISIONED"
            },
            "peerIp": {
              "type": "string",
              "example": "110.11.12.222"
            },
            "peerSharedKey": {
              "type": "string",
              "example": "5bb2424e888bd"
            },
            "remoteAsn": {
              "type": "integer",
              "format": "int64",
              "example": 65413,
              "description": "Remote Customer ASN - Customer side"
            },
            "remoteIpAddress": {
              "type": "string",
              "example": "100.210.1.31",
              "description": "Remote Customer IP Address - Customer side"
            },
            "password": {
              "type": "string",
              "example": "pass123",
              "description": "BGP Password"
            },
            "localAsn": {
              "type": "integer",
              "format": "int64",
              "example": 65414,
              "description": "Local ASN - Equinix side"
            },
            "tunnelIp": {
              "type": "string",
              "example": "192.168.7.2/30",
              "description": "Local Tunnel IP Address in CIDR format"
            },
            "bgpState": {
              "type": "string",
              "example": "ESTABLISHED"
            },
            "inboundBytes": {
              "type": "string",
              "example": "8780"
            },
            "inboundPackets": {
              "type": "string",
              "example": "8780"
            },
            "outboundBytes": {
              "type": "string",
              "example": "8765"
            },
            "outboundPackets": {
              "type": "string",
              "example": "8765"
            },
            "tunnelStatus": {
              "type": "string",
              "example": "UP"
            },
            "custOrgId": {
              "type": "integer",
              "format": "int64",
              "example": 65555
            },
            "createdDate": {
              "type": "string",
              "example": "2018-05-18 06:34:26"
            },
            "createdByFirstName": {
              "type": "string",
              "example": "John"
            },
            "createdByLastName": {
              "type": "string",
              "example": "Smith"
            },
            "createdByEmail": {
              "type": "string",
              "example": "alpha@beta.com"
            },
            "createdByUserKey": {
              "type": "integer",
              "format": "int64",
              "example": 123
            },
            "createdByAccountUcmId": {
              "type": "integer",
              "format": "int64",
              "example": 456
            },
            "createdByUserName": {
              "type": "string",
              "example": "jsmith"
            },
            "createdByCustOrgId": {
              "type": "integer",
              "format": "int64",
              "example": 7863
            },
            "createdByCustOrgName": {
              "type": "string",
              "example": "My Awesome Org"
            },
            "createdByUserStatus": {
              "type": "string",
              "example": "ACTIVATED"
            },
            "createdByCompanyName": {
              "type": "string",
              "example": "My Awesome Company"
            },
            "lastUpdatedDate": {
              "type": "string",
              "example": "2018-07-21 05:20:20"
            },
            "updatedByFirstName": {
              "type": "string",
              "example": "John"
            },
            "updatedByLastName": {
              "type": "string",
              "example": "Smith"
            },
            "updatedByEmail": {
              "type": "string",
              "example": "alpha@beta.com"
            },
            "updatedByUserKey": {
              "type": "integer",
              "format": "int64",
              "example": 123
            },
            "updatedByAccountUcmId": {
              "type": "integer",
              "format": "int64",
              "example": 456
            },
            "updatedByUserName": {
              "type": "string",
              "example": "jsmith"
            },
            "updatedByCustOrgId": {
              "type": "integer",
              "format": "int64",
              "example": 7863
            },
            "updatedByCustOrgName": {
              "type": "string",
              "example": "My Awesome Org"
            },
            "updatedByUserStatus": {
              "type": "string",
              "example": "ACTIVATED"
            },
            "updatedByCompanyName": {
              "type": "string",
              "example": "My Awesome Company"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getVpnByUuidUsingGET"
      },
      "task": true
    },
    {
      "name": "updateVpnConfigurationUsingPut",
      "summary": "Update VPN Configuration",
      "description": "Update a VPN configuration by its unique Id. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "request",
          "type": "object",
          "info": "VPN info: {\"siteName\": \"string\", \"virtualDeviceUuid\": \"string\", \"configName\": \"string\", \"peerIp\": \"string\", \"peerSharedKey\": \"string\", \"remoteAsn\": 123, \"remoteIpAddress\": \"string\", \"password\": \"string\", \"localAsn\": 123, \"tunnelIp\": \"string\", \"secondary\": {\"configName\": \"string\", \"peerIp\": \"string\", \"peerSharedKey\": \"string\", \"remoteAsn\": 123, \"remoteIpAddress\": \"string\", \"password\": \"string\", \"localAsn\": 123, \"tunnelIp\": \"string\"}}",
          "required": false,
          "schema": {
            "type": "object",
            "required": [
              "password",
              "peerIp",
              "peerSharedKey",
              "remoteAsn",
              "remoteIpAddress",
              "siteName",
              "tunnelIp",
              "virtualDeviceUuid"
            ],
            "properties": {
              "siteName": {
                "type": "string",
                "example": "Chicago"
              },
              "virtualDeviceUuid": {
                "type": "string",
                "example": "f79eead8-b837-41d3-9095-9b15c2c4996d",
                "description": "The unique Id of the primary device."
              },
              "configName": {
                "type": "string",
                "example": "Traffic from AWS cloud"
              },
              "peerIp": {
                "type": "string",
                "example": "110.11.12.222"
              },
              "peerSharedKey": {
                "type": "string",
                "example": "5bb2424e888bd"
              },
              "remoteAsn": {
                "type": "integer",
                "format": "int64",
                "example": 65413,
                "description": "Remote Customer ASN - Customer side"
              },
              "remoteIpAddress": {
                "type": "string",
                "example": "100.210.1.31",
                "description": "Remote Customer IP Address - Customer side"
              },
              "password": {
                "type": "string",
                "example": "pass123",
                "description": "BGP Password"
              },
              "localAsn": {
                "type": "integer",
                "format": "int64",
                "example": 65414,
                "description": "Local ASN - Equinix side"
              },
              "tunnelIp": {
                "type": "string",
                "example": "192.168.7.2/30",
                "description": "Local Tunnel IP Address in CIDR format"
              },
              "secondary": {
                "type": "object",
                "required": [
                  "password",
                  "peerIp",
                  "peerSharedKey",
                  "remoteAsn",
                  "remoteIpAddress",
                  "tunnelIp"
                ],
                "properties": {
                  "configName": {
                    "type": "string",
                    "example": "Traffic from AWS cloud"
                  },
                  "peerIp": {
                    "type": "string",
                    "example": "110.11.12.222"
                  },
                  "peerSharedKey": {
                    "type": "string",
                    "example": "5bb2424e888bd"
                  },
                  "remoteAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65413,
                    "description": "Remote Customer ASN - Customer side"
                  },
                  "remoteIpAddress": {
                    "type": "string",
                    "example": "100.210.1.31",
                    "description": "Remote Customer IP Address - Customer side"
                  },
                  "password": {
                    "type": "string",
                    "example": "pass123",
                    "description": "BGP Password"
                  },
                  "localAsn": {
                    "type": "integer",
                    "format": "int64",
                    "example": 65414,
                    "description": "Local ASN - Equinix side"
                  },
                  "tunnelIp": {
                    "type": "string",
                    "example": "192.168.7.2/30",
                    "description": "Local Tunnel IP Address in CIDR format"
                  }
                }
              }
            }
          }
        }
      ],
      "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": "/updateVpnConfigurationUsingPut"
      },
      "task": true
    },
    {
      "name": "removeVpnConfigurationUsingDELETE",
      "summary": "Delete VPN Configuration",
      "description": "Deletes a VPN configuration by its unique Id. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "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": "/removeVpnConfigurationUsingDELETE"
      },
      "task": true
    },
    {
      "name": "getSshUsersUsingGET",
      "summary": "Get SSH Users",
      "description": "Returns a list of all SSH Users associated with this account. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "username",
          "type": "string",
          "info": "SSH user name: string",
          "required": false,
          "schema": {
            "title": "username",
            "type": "string"
          }
        },
        {
          "name": "virtualDeviceUuid",
          "type": "string",
          "info": "Virtual Device unique Id: string",
          "required": false,
          "schema": {
            "title": "virtualDeviceUuid",
            "type": "string"
          }
        },
        {
          "name": "verbose",
          "type": "boolean",
          "info": "Is detailed info required: boolean",
          "required": false,
          "schema": {
            "title": "verbose",
            "type": "boolean"
          }
        },
        {
          "name": "accountUcmId",
          "type": "string",
          "info": "Unique ID of an account: string",
          "required": false,
          "schema": {
            "title": "accountUcmId",
            "type": "string"
          }
        },
        {
          "name": "offset",
          "type": "string",
          "info": "Specifies where to start a page. It is the starting point of the collection returned from the server.: string",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Specifies the page size.: string",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "pagination": {
              "type": "object",
              "properties": {
                "offset": {
                  "type": "integer",
                  "example": 0,
                  "description": "It is the starting point of the collection returned fromt the server"
                },
                "limit": {
                  "type": "integer",
                  "description": "The page size",
                  "example": 20
                },
                "total": {
                  "type": "integer",
                  "description": "The total number of results",
                  "example": 1
                }
              }
            },
            "data": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "uuid": {
                    "type": "string",
                    "example": "The unique Id of the ssh user."
                  },
                  "username": {
                    "type": "string",
                    "example": "The user name of the ssh user."
                  },
                  "deviceUuids": {
                    "type": "array",
                    "description": "The devices associated with this ssh user.",
                    "items": {
                      "type": "string",
                      "example": "4cfb5675-5c3f-4275-adba-0c9e3c26c96b"
                    }
                  },
                  "metroStatusMap": {
                    "type": "object",
                    "description": "Status and error messages corresponding to the metros this user exists on",
                    "additionalProperties": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "example": "ACTIVE",
                          "description": "Whether the ssh user is active, pending, or failed in the metro."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSshUsersUsingGET"
      },
      "task": true
    },
    {
      "name": "createSshUserUsingPOST",
      "summary": "Create SSH User",
      "description": "Create a new SSH user and associate the user to a virtual device. Authorization checks are performed on users of this API.",
      "input": [
        {
          "name": "request",
          "type": "object",
          "info": "SSH user info: {\"username\": \"string\", \"password\": \"string\", \"deviceUuid\": \"string\"}",
          "required": false,
          "schema": {
            "type": "object",
            "required": [
              "deviceUuid",
              "password",
              "username"
            ],
            "properties": {
              "username": {
                "type": "string",
                "example": "user1",
                "description": "At least 3 and upto a maximum of 32 alphanumeric characters. The only special characters allowed are - _"
              },
              "password": {
                "type": "string",
                "example": "pass12",
                "description": "At least 6 and upto a maximum of 12 alphanumeric characters. The only special characters allowed are - _ $ @"
              },
              "deviceUuid": {
                "type": "string",
                "example": "3da0a663-20d9-4b8f-8c5d-d5cf706840c8",
                "description": "The unique Id of a virtual device."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "example": "12828472-e6e9-4f2b-98f7-b79cf0fab4ff"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createSshUserUsingPOST"
      },
      "task": true
    },
    {
      "name": "isSshUserAvailableForCreationUsingGET",
      "summary": "SSH User Availability",
      "description": "Call this API to check whether a username is available for use. Failed response indicates that the given user name already exists or is restricted.",
      "input": [
        {
          "name": "username",
          "type": "string",
          "info": "user name: string",
          "required": true,
          "schema": {
            "title": "username",
            "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": "/isSshUserAvailableForCreationUsingGET"
      },
      "task": true
    },
    {
      "name": "getSshUserUsingGET",
      "summary": "Get SSH User {uuid}",
      "description": "Returns ssh user details by unique Id. Authorization checks are performed on the users of this API.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "example": "The unique Id of the ssh user."
            },
            "username": {
              "type": "string",
              "example": "The user name of the ssh user."
            },
            "deviceUuids": {
              "type": "array",
              "description": "The devices associated with this ssh user.",
              "items": {
                "type": "string",
                "example": "4cfb5675-5c3f-4275-adba-0c9e3c26c96b"
              }
            },
            "metroStatusMap": {
              "type": "object",
              "description": "Status and error messages corresponding to the metros this user exists on",
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "example": "ACTIVE",
                    "description": "Whether the ssh user is active, pending, or failed in the metro."
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSshUserUsingGET"
      },
      "task": true
    },
    {
      "name": "updateSshUserUsingPUT",
      "summary": "Update SSH User Password",
      "description": "Update password for an SSH user. At this time password is the only information that is available for modification.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        },
        {
          "name": "request",
          "type": "object",
          "info": "SSH user info: {\"password\": \"string\"}",
          "required": false,
          "schema": {
            "type": "object",
            "required": [
              "password"
            ],
            "properties": {
              "password": {
                "type": "string",
                "example": "pass12",
                "description": "At least 6 and upto a maximum of 12 alphanumeric characters. The only special characters allowed are - _ $ @"
              }
            }
          }
        }
      ],
      "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": "/updateSshUserUsingPUT"
      },
      "task": true
    },
    {
      "name": "dissociateDeviceUsingDELETE",
      "summary": "Delete SSH User",
      "description": "The given SSH user is dissociated from the given device. The ssh user is deleted if there are no other devices associated with this user.",
      "input": [
        {
          "name": "sshUserUuid",
          "type": "string",
          "info": "uuid: string",
          "required": true,
          "schema": {
            "title": "sshUserUuid",
            "type": "string"
          }
        },
        {
          "name": "deviceUuid",
          "type": "string",
          "info": "device unique Id: string",
          "required": true,
          "schema": {
            "title": "deviceUuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "sshUserDeleted": {
              "type": "boolean",
              "example": false,
              "description": "true = the ssh user has been deleted since there are no more devices associated to this userfalse = the ssh user has not been deleted since some associations to devices exist."
            },
            "sshUserToDeviceAssociationDeleted": {
              "type": "boolean",
              "example": true
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/dissociateDeviceUsingDELETE"
      },
      "task": true
    },
    {
      "name": "associateDeviceUsingPOST",
      "summary": "Update SSH User {uuid}",
      "description": "Call this API to associate a device to an SSH user. The ssh user should be able to log onto the device if this operation is successful.",
      "input": [
        {
          "name": "sshUserUuid",
          "type": "string",
          "info": "The id of the SSH user: string",
          "required": true,
          "schema": {
            "title": "sshUserUuid",
            "type": "string"
          }
        },
        {
          "name": "deviceUuid",
          "type": "string",
          "info": "The unique Id of the device: string",
          "required": true,
          "schema": {
            "title": "deviceUuid",
            "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": "/associateDeviceUsingPOST"
      },
      "task": true
    },
    {
      "name": "getServerVersion",
      "summary": "Get SmartKey version information",
      "description": "Returns information about the  SmartKey server version and the client API version that it supports.\n",
      "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": "/getServerVersion"
      },
      "task": true
    },
    {
      "name": "checkHealth",
      "summary": "Check whether the server is handling requests",
      "description": "Returns a 200-class status code if the server is handling requests, or a 500-class status code if the server is having problems.\n",
      "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": "/checkHealth"
      },
      "task": true
    },
    {
      "name": "authorize",
      "summary": "Create a session for a user or an app",
      "description": "Authenticate a user or an app to SmartKey to begin a session. The caller needs to provide a basic authentication token to authenticate to SmartKey. The response body contains a bearer authentication token which needs to be provided by subsequent calls for the duration of the session.\n",
      "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": "/authorize"
      },
      "task": true
    },
    {
      "name": "reAuth",
      "summary": "Create a new session for a user or an app using an existing session bearer token.",
      "description": "Authenticate a user or an app to SmartKey using existing session token, to generate a new session.  The caller needs to provide bearer authentication token of an existing valid session. The response body contains a bearer authentication token of the new session created.\n",
      "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": "/reAuth"
      },
      "task": true
    },
    {
      "name": "refresh",
      "summary": "Refreshes existing user or app session.",
      "description": "Refreshes an existing session, thus extending the expiration time of the existing bearer authentication token. The caller needs to provide bearer token of sesssion need to be refreshed.  The response body is empty. \n",
      "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": "/refresh"
      },
      "task": true
    },
    {
      "name": "terminate",
      "summary": "Terminate a session",
      "description": "Terminate an authenticated session. After this call, the provided bearer authentication token will be invalidated and cannot be used to make any further API calls.\n",
      "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": "/terminate"
      },
      "task": true
    },
    {
      "name": "selectAccount",
      "summary": "Select a user's account to work on",
      "description": "Select one of user's account to proceed. This is applicable when a user is associated with more than one account. The caller needs to provide a bearer token for the session in the request body.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Select Account Request: {\"acct_id\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "acct_id"
            ],
            "properties": {
              "acct_id": {
                "type": "string",
                "description": "Uuid format string, example - a41152ed-c26e-4c6e-a8d1-8820e36972c3"
              }
            }
          }
        }
      ],
      "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": "/selectAccount"
      },
      "task": true
    },
    {
      "name": "unlock2F",
      "summary": "Unlock two factor configuration",
      "description": "Re-authenticate to unlock two factor configuration. Two factor configuration must be unlocked to enable or disable two factor authentication, add or remove two factor devices, or regenerate recovery codes. The caller needs to provide a bearer token for the session in the request body.\n",
      "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": "/unlock2F"
      },
      "task": true
    },
    {
      "name": "getSecurityObjects",
      "summary": "Get all security objects",
      "description": "Return detailed information about the security objects stored in SmartKey.\n",
      "input": [
        {
          "name": "name",
          "type": "string",
          "info": "Only retrieve the security object with this name.: string",
          "required": false,
          "schema": {
            "title": "name",
            "type": "string"
          }
        },
        {
          "name": "groupId",
          "type": "string",
          "info": "Only retrieve security objects in the specified group.: string",
          "required": false,
          "schema": {
            "title": "groupId",
            "type": "string"
          }
        },
        {
          "name": "creator",
          "type": "string",
          "info": "Only retrieve security objects created by the user or application with the specified id.: string",
          "required": false,
          "schema": {
            "title": "creator",
            "type": "string"
          }
        },
        {
          "name": "sort",
          "type": "string",
          "info": "This specifies the property (`kid` or `name`) and order (ascending or descending) with which to sort the security objects. By default, security objects are sorted by `kid...(description truncated): string",
          "required": false,
          "schema": {
            "title": "sort",
            "type": "string"
          }
        },
        {
          "name": "compliantWithPolicies",
          "type": "boolean",
          "info": "Whether this security object is compliant with cryptographic policies or not.: boolean",
          "required": false,
          "schema": {
            "title": "compliantWithPolicies",
            "type": "boolean"
          }
        },
        {
          "name": "start",
          "type": "string",
          "info": "If provided, this must be a value of the property specified in `sort`. Returned security objects will begin just above or just below this value (for asc/desc order resp.)...(description truncated): string",
          "required": false,
          "schema": {
            "title": "start",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of security objects to return. If not provided, the limit is 100.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Number of security objects past `start` to skip.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "acct_id",
              "creator",
              "obj_type",
              "origin",
              "enabled",
              "created_at",
              "lastused_at",
              "never_exportable"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the security object."
              },
              "description": {
                "type": "string",
                "description": "Description of the security object."
              },
              "key_size": {
                "type": "integer",
                "format": "int32",
                "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
              },
              "elliptic_curve": {
                "type": "string",
                "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
                "enum": [
                  "SecP192K1",
                  "SecP224K1",
                  "SecP256K1",
                  "NistP192",
                  "NistP224",
                  "NistP256",
                  "NistP384",
                  "NistP521",
                  "Gost256A",
                  "Ed25519",
                  "X25519",
                  "X448"
                ]
              },
              "acct_id": {
                "type": "string",
                "description": "Account ID of the account this security object belongs to."
              },
              "group_id": {
                "type": "string",
                "description": "Group ID of the security group that this security object belongs to."
              },
              "creator": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "What type of entity created another entity.",
                "properties": {
                  "app": {
                    "type": "string",
                    "description": "The application ID of the application that created this entity, if this entity was created by an application."
                  },
                  "user": {
                    "type": "string",
                    "description": "The user ID of the user who created this entity, if this entity was created by a user."
                  }
                }
              },
              "kid": {
                "type": "string",
                "description": "Key ID uniquely identifying this security object."
              },
              "obj_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "key_ops": {
                "type": "array",
                "description": "Array of key operations enabled for this security object.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "origin": {
                "type": "string",
                "description": "Where this security object originated.",
                "enum": [
                  "FortanixHSM",
                  "External"
                ]
              },
              "pub_key": {
                "type": "string",
                "format": "byte",
                "description": "This field is returned only for asymmetric keys. It contains the public key."
              },
              "value": {
                "type": "string",
                "format": "byte",
                "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this security object has cryptographic operations enabled."
              },
              "compliant_with_policies": {
                "type": "boolean",
                "description": "Whether this security object is compliant with cryptographic policies or not."
              },
              "created_at": {
                "type": "string",
                "format": "dateTime",
                "description": "When this security object was created."
              },
              "lastused_at": {
                "type": "string",
                "format": "dateTime",
                "description": "When this security object was last used."
              },
              "transient_key": {
                "type": "string",
                "description": "Transient key blob."
              },
              "never_exportable": {
                "type": "boolean",
                "description": "True if this key's operations have never contained EXPORT."
              },
              "rsa": {
                "type": "object",
                "description": "RSA-specific options.",
                "properties": {
                  "key_size": {
                    "type": "integer",
                    "format": "int32",
                    "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                  },
                  "public_exponent": {
                    "format": "int32",
                    "type": "integer",
                    "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                  },
                  "encryption_policy": {
                    "type": "array",
                    "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "OAEP": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  },
                  "signature_policy": {
                    "type": "array",
                    "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "PSS": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSecurityObjects"
      },
      "task": true
    },
    {
      "name": "generateSecurityObject",
      "summary": "Generate a new security object",
      "description": "Generate a new security object (such as an RSA key pair or an AES key) of the requested size or elliptic curve.  \nBy default, all key operations except for Export that are implemented for that type of key will be enabled. These may be overridden by requesting specific operations in the key creation request.  \nObjects of type Opaque may not be generated with this API. They must be imported via the importSecurityObject API.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Request to create, update, or import security object: {\"name\": \"string\", \"description\": \"string\", \"key_size\": 123, \"pub_exponent\": 123, \"elliptic_curve\": \"Must be one of [SecP192K1, SecP224K1, SecP256K1, NistP192, NistP224, NistP256, NistP384, NistP521, Gost256A, Ed25519, X25519, X448]\", \"rsa\": {\"key_size\": 123, \"public_exponent\": 123, \"encryption_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"OAEP\": {\"mgf\": \"undefined\"}}}], \"signature_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"PSS\": {\"mgf\": \"undefined\"}}}]}, \"fpe\": {\"radix\": 123, \"min_length\": 123, \"max_length\": 123, \"preserve\": \"array\", \"mask\": \"array\", \"luhn_check\": \"boolean\", \"name\": \"string\"}, \"group_id\": \"string\", \"obj_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"key_ops\": \"array\", \"custom_metadata\": \"object\", \"value\": \"string\", \"enabled\": \"boolean\", \"transient\": \"boolean\", \"deterministic_signatures\": \"boolean\", \"deactivation_date\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "obj_type"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the security object to create or import. Security object names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the security object to create or import."
              },
              "key_size": {
                "type": "integer",
                "format": "int32",
                "description": "Size in bits (not bytes) of the security object to create or import. Required for symmetric keys. Deprecated for RSA keys, specify it in `RsaOptions` instead."
              },
              "pub_exponent": {
                "type": "integer",
                "format": "int32",
                "description": "For RSA keys only. Deprecated. Specify in `RsaOptions` instead. Public exponent to use when generating an RSA key."
              },
              "elliptic_curve": {
                "type": "string",
                "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
                "enum": [
                  "SecP192K1",
                  "SecP224K1",
                  "SecP256K1",
                  "NistP192",
                  "NistP224",
                  "NistP256",
                  "NistP384",
                  "NistP521",
                  "Gost256A",
                  "Ed25519",
                  "X25519",
                  "X448"
                ]
              },
              "rsa": {
                "type": "object",
                "description": "RSA-specific options.",
                "properties": {
                  "key_size": {
                    "type": "integer",
                    "format": "int32",
                    "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                  },
                  "public_exponent": {
                    "format": "int32",
                    "type": "integer",
                    "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                  },
                  "encryption_policy": {
                    "type": "array",
                    "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "OAEP": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  },
                  "signature_policy": {
                    "type": "array",
                    "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "PSS": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              "fpe": {
                "type": "object",
                "description": "FPE-specific options.",
                "required": [
                  "radix"
                ],
                "properties": {
                  "radix": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The base for input data."
                  },
                  "min_length": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The minimum allowed length for the input data."
                  },
                  "max_length": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The maximum allowed length for the input data."
                  },
                  "preserve": {
                    "type": "array",
                    "description": "The list of indices of characters to be preserved while performing encryption/decryption.",
                    "items": {
                      "type": "integer",
                      "format": "int32",
                      "description": "An index of character to be preserved while performing encryption/decryption."
                    }
                  },
                  "mask": {
                    "type": "array",
                    "description": "The list of indices of characters to be masked while performing masked decryption.",
                    "items": {
                      "type": "integer",
                      "format": "int32",
                      "description": "An index of character to be masked while performing masked decryption."
                    }
                  },
                  "luhn_check": {
                    "type": "boolean",
                    "description": "Whether encrypted/decrypted data should satisfy LUHN checksum formula."
                  },
                  "name": {
                    "type": "string",
                    "description": "The user-friendly name for the data type that represents the input data."
                  }
                }
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "obj_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "value": {
                "type": "string",
                "format": "byte",
                "description": "When importing a security object, this field contains the binary contents to import. When creating a security object, this field is unused. The value of an OPAQUE or CERTIFICATE object is always returned. For other objects, the value is returned only with `/crypto/v1/keys/export` API (if the object is exportable).\n"
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the new security object should be enabled. Disabled security objects may not perform cryptographic operations.\n"
              },
              "transient": {
                "type": "boolean",
                "description": "If this is true, SmartKey will create a transient key."
              },
              "deterministic_signatures": {
                "type": "boolean"
              },
              "deactivation_date": {
                "type": "string",
                "format": "dateTime",
                "description": "When this object will be deactivated."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/generateSecurityObject"
      },
      "task": true
    },
    {
      "name": "importSecurityObject",
      "summary": "Import a security object",
      "description": "Import a security object into SmartKey.   By default, all key operations except that are implemented for that type of key will be enabled. These may be overridden by requesting specific operations in the key import request.  \nFor symmetric and asymmetric keys, value is base64-encoding of the key material in DER format.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Request to create, update, or import security object: {\"name\": \"string\", \"description\": \"string\", \"key_size\": 123, \"pub_exponent\": 123, \"elliptic_curve\": \"Must be one of [SecP192K1, SecP224K1, SecP256K1, NistP192, NistP224, NistP256, NistP384, NistP521, Gost256A, Ed25519, X25519, X448]\", \"rsa\": {\"key_size\": 123, \"public_exponent\": 123, \"encryption_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"OAEP\": {\"mgf\": \"undefined\"}}}], \"signature_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"PSS\": {\"mgf\": \"undefined\"}}}]}, \"fpe\": {\"radix\": 123, \"min_length\": 123, \"max_length\": 123, \"preserve\": \"array\", \"mask\": \"array\", \"luhn_check\": \"boolean\", \"name\": \"string\"}, \"group_id\": \"string\", \"obj_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"key_ops\": \"array\", \"custom_metadata\": \"object\", \"value\": \"string\", \"enabled\": \"boolean\", \"transient\": \"boolean\", \"deterministic_signatures\": \"boolean\", \"deactivation_date\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "obj_type"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the security object to create or import. Security object names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the security object to create or import."
              },
              "key_size": {
                "type": "integer",
                "format": "int32",
                "description": "Size in bits (not bytes) of the security object to create or import. Required for symmetric keys. Deprecated for RSA keys, specify it in `RsaOptions` instead."
              },
              "pub_exponent": {
                "type": "integer",
                "format": "int32",
                "description": "For RSA keys only. Deprecated. Specify in `RsaOptions` instead. Public exponent to use when generating an RSA key."
              },
              "elliptic_curve": {
                "type": "string",
                "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
                "enum": [
                  "SecP192K1",
                  "SecP224K1",
                  "SecP256K1",
                  "NistP192",
                  "NistP224",
                  "NistP256",
                  "NistP384",
                  "NistP521",
                  "Gost256A",
                  "Ed25519",
                  "X25519",
                  "X448"
                ]
              },
              "rsa": {
                "type": "object",
                "description": "RSA-specific options.",
                "properties": {
                  "key_size": {
                    "type": "integer",
                    "format": "int32",
                    "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                  },
                  "public_exponent": {
                    "format": "int32",
                    "type": "integer",
                    "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                  },
                  "encryption_policy": {
                    "type": "array",
                    "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "OAEP": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  },
                  "signature_policy": {
                    "type": "array",
                    "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "PSS": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              "fpe": {
                "type": "object",
                "description": "FPE-specific options.",
                "required": [
                  "radix"
                ],
                "properties": {
                  "radix": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The base for input data."
                  },
                  "min_length": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The minimum allowed length for the input data."
                  },
                  "max_length": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The maximum allowed length for the input data."
                  },
                  "preserve": {
                    "type": "array",
                    "description": "The list of indices of characters to be preserved while performing encryption/decryption.",
                    "items": {
                      "type": "integer",
                      "format": "int32",
                      "description": "An index of character to be preserved while performing encryption/decryption."
                    }
                  },
                  "mask": {
                    "type": "array",
                    "description": "The list of indices of characters to be masked while performing masked decryption.",
                    "items": {
                      "type": "integer",
                      "format": "int32",
                      "description": "An index of character to be masked while performing masked decryption."
                    }
                  },
                  "luhn_check": {
                    "type": "boolean",
                    "description": "Whether encrypted/decrypted data should satisfy LUHN checksum formula."
                  },
                  "name": {
                    "type": "string",
                    "description": "The user-friendly name for the data type that represents the input data."
                  }
                }
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "obj_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "value": {
                "type": "string",
                "format": "byte",
                "description": "When importing a security object, this field contains the binary contents to import. When creating a security object, this field is unused. The value of an OPAQUE or CERTIFICATE object is always returned. For other objects, the value is returned only with `/crypto/v1/keys/export` API (if the object is exportable).\n"
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the new security object should be enabled. Disabled security objects may not perform cryptographic operations.\n"
              },
              "transient": {
                "type": "boolean",
                "description": "If this is true, SmartKey will create a transient key."
              },
              "deterministic_signatures": {
                "type": "boolean"
              },
              "deactivation_date": {
                "type": "string",
                "format": "dateTime",
                "description": "When this object will be deactivated."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/importSecurityObject"
      },
      "task": true
    },
    {
      "name": "getSecurityObject",
      "summary": "Get a specific security object",
      "description": "Get the details of a particular security object. The query parameter `?view=value` may be used to get the value of an opaque object or certificate directly as raw bytes.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSecurityObject"
      },
      "task": true
    },
    {
      "name": "deleteSecurityObject",
      "summary": "Delete a security object",
      "description": "Delete a specified security object.",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "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": "/deleteSecurityObject"
      },
      "task": true
    },
    {
      "name": "updateSecurityObject",
      "summary": "Update a security object",
      "description": "Update the properties of a security object.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Request to create, update, or import security object: {\"name\": \"string\", \"description\": \"string\", \"key_size\": 123, \"pub_exponent\": 123, \"elliptic_curve\": \"Must be one of [SecP192K1, SecP224K1, SecP256K1, NistP192, NistP224, NistP256, NistP384, NistP521, Gost256A, Ed25519, X25519, X448]\", \"rsa\": {\"key_size\": 123, \"public_exponent\": 123, \"encryption_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"OAEP\": {\"mgf\": \"undefined\"}}}], \"signature_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"PSS\": {\"mgf\": \"undefined\"}}}]}, \"fpe\": {\"radix\": 123, \"min_length\": 123, \"max_length\": 123, \"preserve\": \"array\", \"mask\": \"array\", \"luhn_check\": \"boolean\", \"name\": \"string\"}, \"group_id\": \"string\", \"obj_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"key_ops\": \"array\", \"custom_metadata\": \"object\", \"value\": \"string\", \"enabled\": \"boolean\", \"transient\": \"boolean\", \"deterministic_signatures\": \"boolean\", \"deactivation_date\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "obj_type"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the security object to create or import. Security object names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the security object to create or import."
              },
              "key_size": {
                "type": "integer",
                "format": "int32",
                "description": "Size in bits (not bytes) of the security object to create or import. Required for symmetric keys. Deprecated for RSA keys, specify it in `RsaOptions` instead."
              },
              "pub_exponent": {
                "type": "integer",
                "format": "int32",
                "description": "For RSA keys only. Deprecated. Specify in `RsaOptions` instead. Public exponent to use when generating an RSA key."
              },
              "elliptic_curve": {
                "type": "string",
                "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
                "enum": [
                  "SecP192K1",
                  "SecP224K1",
                  "SecP256K1",
                  "NistP192",
                  "NistP224",
                  "NistP256",
                  "NistP384",
                  "NistP521",
                  "Gost256A",
                  "Ed25519",
                  "X25519",
                  "X448"
                ]
              },
              "rsa": {
                "type": "object",
                "description": "RSA-specific options.",
                "properties": {
                  "key_size": {
                    "type": "integer",
                    "format": "int32",
                    "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                  },
                  "public_exponent": {
                    "format": "int32",
                    "type": "integer",
                    "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                  },
                  "encryption_policy": {
                    "type": "array",
                    "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "OAEP": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  },
                  "signature_policy": {
                    "type": "array",
                    "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "PSS": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              "fpe": {
                "type": "object",
                "description": "FPE-specific options.",
                "required": [
                  "radix"
                ],
                "properties": {
                  "radix": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The base for input data."
                  },
                  "min_length": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The minimum allowed length for the input data."
                  },
                  "max_length": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The maximum allowed length for the input data."
                  },
                  "preserve": {
                    "type": "array",
                    "description": "The list of indices of characters to be preserved while performing encryption/decryption.",
                    "items": {
                      "type": "integer",
                      "format": "int32",
                      "description": "An index of character to be preserved while performing encryption/decryption."
                    }
                  },
                  "mask": {
                    "type": "array",
                    "description": "The list of indices of characters to be masked while performing masked decryption.",
                    "items": {
                      "type": "integer",
                      "format": "int32",
                      "description": "An index of character to be masked while performing masked decryption."
                    }
                  },
                  "luhn_check": {
                    "type": "boolean",
                    "description": "Whether encrypted/decrypted data should satisfy LUHN checksum formula."
                  },
                  "name": {
                    "type": "string",
                    "description": "The user-friendly name for the data type that represents the input data."
                  }
                }
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "obj_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "value": {
                "type": "string",
                "format": "byte",
                "description": "When importing a security object, this field contains the binary contents to import. When creating a security object, this field is unused. The value of an OPAQUE or CERTIFICATE object is always returned. For other objects, the value is returned only with `/crypto/v1/keys/export` API (if the object is exportable).\n"
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the new security object should be enabled. Disabled security objects may not perform cryptographic operations.\n"
              },
              "transient": {
                "type": "boolean",
                "description": "If this is true, SmartKey will create a transient key."
              },
              "deterministic_signatures": {
                "type": "boolean"
              },
              "deactivation_date": {
                "type": "string",
                "format": "dateTime",
                "description": "When this object will be deactivated."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateSecurityObject"
      },
      "task": true
    },
    {
      "name": "persistSecurityObject",
      "summary": "Persist a transient key.",
      "description": "This API copies a transient key into a persisted security object in SmartKey. If the transient key's origin is \"FortanixHSM\", the origin of the persisted key will be \"Transient\". If the transient key's origin is \"External\", the origin of the persisted key will be \"External\".\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Persist transient key request: {\"name\": \"string\", \"description\": \"string\", \"custom_metadata\": \"object\", \"enabled\": \"boolean\", \"key_ops\": \"array\", \"group_id\": \"string\", \"transient_key\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "transient_key"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the persisted security object. Security object names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the persisted security object."
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for the persisted key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the new security object should be enabled. Disabled security objects may not perform cryptographic operations.\n"
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that the persisted security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "transient_key": {
                "type": "string",
                "description": "Transient key blob."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/persistSecurityObject"
      },
      "task": true
    },
    {
      "name": "deletePrivateKey",
      "summary": "Remove / Destroy private half of the asymmetric key",
      "description": "Removes the private portion of an asymmetric key from SmartKey. After this operation is performed, operations that require the private key, such as encryption and generating signatures, may no longer be performed.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "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": "/deletePrivateKey"
      },
      "task": true
    },
    {
      "name": "rotateSecurityObject",
      "summary": "Rotate a key.",
      "description": "Rotate an existing security object.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Request to create, update, or import security object: {\"name\": \"string\", \"description\": \"string\", \"key_size\": 123, \"pub_exponent\": 123, \"elliptic_curve\": \"Must be one of [SecP192K1, SecP224K1, SecP256K1, NistP192, NistP224, NistP256, NistP384, NistP521, Gost256A, Ed25519, X25519, X448]\", \"rsa\": {\"key_size\": 123, \"public_exponent\": 123, \"encryption_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"OAEP\": {\"mgf\": \"undefined\"}}}], \"signature_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"PSS\": {\"mgf\": \"undefined\"}}}]}, \"fpe\": {\"radix\": 123, \"min_length\": 123, \"max_length\": 123, \"preserve\": \"array\", \"mask\": \"array\", \"luhn_check\": \"boolean\", \"name\": \"string\"}, \"group_id\": \"string\", \"obj_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"key_ops\": \"array\", \"custom_metadata\": \"object\", \"value\": \"string\", \"enabled\": \"boolean\", \"transient\": \"boolean\", \"deterministic_signatures\": \"boolean\", \"deactivation_date\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "obj_type"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the security object to create or import. Security object names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the security object to create or import."
              },
              "key_size": {
                "type": "integer",
                "format": "int32",
                "description": "Size in bits (not bytes) of the security object to create or import. Required for symmetric keys. Deprecated for RSA keys, specify it in `RsaOptions` instead."
              },
              "pub_exponent": {
                "type": "integer",
                "format": "int32",
                "description": "For RSA keys only. Deprecated. Specify in `RsaOptions` instead. Public exponent to use when generating an RSA key."
              },
              "elliptic_curve": {
                "type": "string",
                "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
                "enum": [
                  "SecP192K1",
                  "SecP224K1",
                  "SecP256K1",
                  "NistP192",
                  "NistP224",
                  "NistP256",
                  "NistP384",
                  "NistP521",
                  "Gost256A",
                  "Ed25519",
                  "X25519",
                  "X448"
                ]
              },
              "rsa": {
                "type": "object",
                "description": "RSA-specific options.",
                "properties": {
                  "key_size": {
                    "type": "integer",
                    "format": "int32",
                    "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                  },
                  "public_exponent": {
                    "format": "int32",
                    "type": "integer",
                    "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                  },
                  "encryption_policy": {
                    "type": "array",
                    "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "OAEP": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  },
                  "signature_policy": {
                    "type": "array",
                    "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "PSS": {
                              "type": "object",
                              "maxProperties": 1
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              "fpe": {
                "type": "object",
                "description": "FPE-specific options.",
                "required": [
                  "radix"
                ],
                "properties": {
                  "radix": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The base for input data."
                  },
                  "min_length": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The minimum allowed length for the input data."
                  },
                  "max_length": {
                    "type": "integer",
                    "format": "int32",
                    "description": "The maximum allowed length for the input data."
                  },
                  "preserve": {
                    "type": "array",
                    "description": "The list of indices of characters to be preserved while performing encryption/decryption.",
                    "items": {
                      "type": "integer",
                      "format": "int32",
                      "description": "An index of character to be preserved while performing encryption/decryption."
                    }
                  },
                  "mask": {
                    "type": "array",
                    "description": "The list of indices of characters to be masked while performing masked decryption.",
                    "items": {
                      "type": "integer",
                      "format": "int32",
                      "description": "An index of character to be masked while performing masked decryption."
                    }
                  },
                  "luhn_check": {
                    "type": "boolean",
                    "description": "Whether encrypted/decrypted data should satisfy LUHN checksum formula."
                  },
                  "name": {
                    "type": "string",
                    "description": "The user-friendly name for the data type that represents the input data."
                  }
                }
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "obj_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "value": {
                "type": "string",
                "format": "byte",
                "description": "When importing a security object, this field contains the binary contents to import. When creating a security object, this field is unused. The value of an OPAQUE or CERTIFICATE object is always returned. For other objects, the value is returned only with `/crypto/v1/keys/export` API (if the object is exportable).\n"
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the new security object should be enabled. Disabled security objects may not perform cryptographic operations.\n"
              },
              "transient": {
                "type": "boolean",
                "description": "If this is true, SmartKey will create a transient key."
              },
              "deterministic_signatures": {
                "type": "boolean"
              },
              "deactivation_date": {
                "type": "string",
                "format": "dateTime",
                "description": "When this object will be deactivated."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/rotateSecurityObject"
      },
      "task": true
    },
    {
      "name": "getSecurityObjectValueEx",
      "summary": "Retrieve the value of an exportable security object",
      "description": "Get the details and value of a particular exportable security object.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Request to export a security object: {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "minProperties": 1,
            "maxProperties": 1,
            "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
            "properties": {
              "kid": {
                "type": "string",
                "description": "Key ID uniquely identifying this persisted security object."
              },
              "name": {
                "type": "string",
                "description": "Name of this persisted security object."
              },
              "transient_key": {
                "type": "string",
                "description": "Transient key blob."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSecurityObjectValueEx"
      },
      "task": true
    },
    {
      "name": "getSecurityObjectDigest",
      "summary": "Retrieve the digest (hash) of the value of an exportable security object",
      "description": "Retrieve the digest (hash) of the value of an exportable security object",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Object digest request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "key",
              "alg"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "digest"
          ],
          "properties": {
            "digest": {
              "type": "string",
              "format": "byte",
              "description": "Hash of the data."
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSecurityObjectDigest"
      },
      "task": true
    },
    {
      "name": "getSecurityObjectValue",
      "summary": "Retrieve the value of an exportable security object",
      "description": "Get the details and value of a particular exportable security object.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSecurityObjectValue"
      },
      "task": true
    },
    {
      "name": "activateSecurityObject",
      "summary": "Transitions immediately a security object to Active state",
      "description": "Trigger the transition of a security object to Active state.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "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": "/activateSecurityObject"
      },
      "task": true
    },
    {
      "name": "revokeSecurityObject",
      "summary": "Transitions immediately a security object to Deactivated or Compromised state",
      "description": "Trigger the transition of a security object to Deactivated or Compromised state depending on the RevocationReason Code.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Reason to revoke a security object: {\"code\": \"Must be one of [Unspecified, KeyCompromise, CACompromise, AffiliationChanged, Superseded, CessationOfOperation, PrivilegeWithdrawn]\", \"message\": \"string\", \"compromise_occurance_date\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "code"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "Reasons to revoke a security object.",
                "enum": [
                  "Unspecified",
                  "KeyCompromise",
                  "CACompromise",
                  "AffiliationChanged",
                  "Superseded",
                  "CessationOfOperation",
                  "PrivilegeWithdrawn"
                ]
              },
              "message": {
                "type": "string",
                "description": "Field that is used exclusively for audit trail/logging purposes and MAY contain additional information about why the object was revoked."
              },
              "compromise_occurance_date": {
                "type": "string",
                "format": "dateTime",
                "description": "An optional field specifying when this security object was compromised."
              }
            }
          }
        }
      ],
      "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": "/revokeSecurityObject"
      },
      "task": true
    },
    {
      "name": "deriveKey",
      "summary": "Derive a key from another key",
      "description": "This derives a key from an existing key and returns the properties of the new key. The request body contains the requested properties for the new as well as the mechanism to be used to produce the key material for the new key.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Name of security object: {\"name\": \"string\", \"group_id\": \"string\", \"key_size\": 123, \"key_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"mechanism\": {\"encrypt_data\": {\"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"plain\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\", \"tag_len\": 123}}, \"enabled\": \"boolean\", \"description\": \"string\", \"key_ops\": \"array\", \"custom_metadata\": \"object\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "key_size",
              "key_type",
              "mechanism"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the derived key. Key names must be unique within an account."
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "key_size": {
                "type": "integer",
                "format": "int32",
                "description": "Key size of the derived key in bits (not bytes)."
              },
              "key_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "mechanism": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "Encodes the mechanism to be used when deriving a new key from an existing key. Exactly one mechanism should be supplied. Currently, the only supported mechanism is encrypting data to derive the new key. Other mechanisms may be added in the future.\n",
                "properties": {
                  "encrypt_data": {
                    "type": "object",
                    "description": "A request to encrypt data using a symmetric or asymmetric key.",
                    "required": [
                      "alg",
                      "plain"
                    ],
                    "properties": {
                      "alg": {
                        "type": "string",
                        "description": "Type of security object.",
                        "default": "OPAQUE",
                        "enum": [
                          "AES",
                          "DES",
                          "DES3",
                          "RSA",
                          "EC",
                          "OPAQUE",
                          "HMAC",
                          "SECRET",
                          "CERTIFICATE",
                          "ROUND5BETA",
                          "LEDABETA"
                        ]
                      },
                      "plain": {
                        "type": "string",
                        "format": "byte",
                        "description": "The plaintext to encrypt."
                      },
                      "mode": {
                        "type": "string",
                        "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                        "enum": [
                          "ECB",
                          "CBC",
                          "CBCNOPAD",
                          "CFB",
                          "CTR",
                          "OFB",
                          "GCM",
                          "CCM",
                          "PKCS1_V15",
                          "OAEP_MGF1_SHA1",
                          "OAEP_MGF1_SHA256",
                          "OAEP_MGF1_SHA384",
                          "OAEP_MGF1_SHA512",
                          "FPE",
                          "KW",
                          "KWP"
                        ]
                      },
                      "iv": {
                        "type": "string",
                        "format": "byte",
                        "description": "For symmetric ciphers, this value will be used for the cipher initialization value. If not provided, SmartKey will generate a random iv and return it in the response. If provided, iv length must match the length required by the cipher and mode.\n"
                      },
                      "ad": {
                        "type": "string",
                        "format": "byte",
                        "description": "For symmetric ciphers with cipher mode GCM or CCM, this optionally specifies the authenticated data used by the cipher. This field must not be provided with other cipher modes.\n"
                      },
                      "tag_len": {
                        "type": "integer",
                        "format": "int32",
                        "description": "For symmetric ciphers with cipher mode GCM or CCM, this field specifies the length of the authentication tag to be produced. This field is specified in bits (not bytes). This field is required for symmetric ciphers with cipher mode GCM or CCM. It must not be specified for asymmetric ciphers and symmetric ciphers with other cipher modes."
                      }
                    }
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the derived key should have cryptographic operations enabled."
              },
              "description": {
                "type": "string",
                "description": "Description for the new key."
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deriveKey"
      },
      "task": true
    },
    {
      "name": "deriveKeyEx",
      "summary": "Derive a key from another key",
      "description": "This derives a key from an existing key and returns the properties of the new key. The request body contains the requested properties for the new as well as the mechanism to be used to produce the key material for the new key.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Name of security object: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"name\": \"string\", \"group_id\": \"string\", \"key_size\": 123, \"key_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"mechanism\": {\"encrypt_data\": {\"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"plain\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\", \"tag_len\": 123}}, \"enabled\": \"boolean\", \"description\": \"string\", \"key_ops\": \"array\", \"custom_metadata\": \"object\", \"transient\": \"boolean\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "key",
              "name",
              "key_size",
              "key_type",
              "mechanism"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "name": {
                "type": "string",
                "description": "Name of the derived key. Key names must be unique within an account."
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "key_size": {
                "type": "integer",
                "format": "int32",
                "description": "Key size of the derived key in bits (not bytes)."
              },
              "key_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "mechanism": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "Encodes the mechanism to be used when deriving a new key from an existing key. Exactly one mechanism should be supplied. Currently, the only supported mechanism is encrypting data to derive the new key. Other mechanisms may be added in the future.\n",
                "properties": {
                  "encrypt_data": {
                    "type": "object",
                    "description": "A request to encrypt data using a symmetric or asymmetric key.",
                    "required": [
                      "alg",
                      "plain"
                    ],
                    "properties": {
                      "alg": {
                        "type": "string",
                        "description": "Type of security object.",
                        "default": "OPAQUE",
                        "enum": [
                          "AES",
                          "DES",
                          "DES3",
                          "RSA",
                          "EC",
                          "OPAQUE",
                          "HMAC",
                          "SECRET",
                          "CERTIFICATE",
                          "ROUND5BETA",
                          "LEDABETA"
                        ]
                      },
                      "plain": {
                        "type": "string",
                        "format": "byte",
                        "description": "The plaintext to encrypt."
                      },
                      "mode": {
                        "type": "string",
                        "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                        "enum": [
                          "ECB",
                          "CBC",
                          "CBCNOPAD",
                          "CFB",
                          "CTR",
                          "OFB",
                          "GCM",
                          "CCM",
                          "PKCS1_V15",
                          "OAEP_MGF1_SHA1",
                          "OAEP_MGF1_SHA256",
                          "OAEP_MGF1_SHA384",
                          "OAEP_MGF1_SHA512",
                          "FPE",
                          "KW",
                          "KWP"
                        ]
                      },
                      "iv": {
                        "type": "string",
                        "format": "byte",
                        "description": "For symmetric ciphers, this value will be used for the cipher initialization value. If not provided, SmartKey will generate a random iv and return it in the response. If provided, iv length must match the length required by the cipher and mode.\n"
                      },
                      "ad": {
                        "type": "string",
                        "format": "byte",
                        "description": "For symmetric ciphers with cipher mode GCM or CCM, this optionally specifies the authenticated data used by the cipher. This field must not be provided with other cipher modes.\n"
                      },
                      "tag_len": {
                        "type": "integer",
                        "format": "int32",
                        "description": "For symmetric ciphers with cipher mode GCM or CCM, this field specifies the length of the authentication tag to be produced. This field is specified in bits (not bytes). This field is required for symmetric ciphers with cipher mode GCM or CCM. It must not be specified for asymmetric ciphers and symmetric ciphers with other cipher modes."
                      }
                    }
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the derived key should have cryptographic operations enabled."
              },
              "description": {
                "type": "string",
                "description": "Description for the new key."
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "transient": {
                "type": "boolean",
                "description": "If this is true, SmartKey will derive a transient key."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deriveKeyEx"
      },
      "task": true
    },
    {
      "name": "agreeKey",
      "summary": "Agree on a key from two other keys",
      "description": "This does a cryptographic key agreement operation between a public and private key. Both keys must have been generated from the same parameters (e.g. the same elliptic curve). Both keys must allow the AGREEKEY operation. The request body contains the requested properties for the new key as well as the mechanism (e.g. Diffie-Hellman) to be used to produce the key material for the new key.\nThe output of this API should not be used directly as a cryptographic key. The target object type should be H...(description truncated)",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Template of the agreed-upon security object: {\"private_key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"public_key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"name\": \"string\", \"group_id\": \"string\", \"key_size\": 123, \"key_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"mechanism\": \"Must be one of [diffie_hellman]\", \"enabled\": \"boolean\", \"description\": \"string\", \"key_ops\": \"array\", \"custom_metadata\": \"object\", \"transient\": \"boolean\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "private_key",
              "public_key",
              "name",
              "key_size",
              "key_type",
              "mechanism"
            ],
            "properties": {
              "private_key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "public_key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "name": {
                "type": "string",
                "description": "Name of the agreed-upon key. Key names must be unique within an account. The name is ignored for transient keys and should be the empty string."
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "key_size": {
                "type": "integer",
                "format": "int32",
                "description": "Key size of the derived key in bits (not bytes)."
              },
              "key_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "mechanism": {
                "type": "string",
                "description": "Mechanism to use for key agreement.",
                "default": "diffie_hellman",
                "enum": [
                  "diffie_hellman"
                ]
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the derived key should have cryptographic operations enabled."
              },
              "description": {
                "type": "string",
                "description": "Description for the new key."
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "transient": {
                "type": "boolean",
                "description": "If this is true, SmartKey will derive a transient key."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/agreeKey"
      },
      "task": true
    },
    {
      "name": "encrypt",
      "summary": "Encrypt data",
      "description": "Encrypt data using a symmetric or asymmetric key.  \nFor symmetric ciphers, mode (specifying the block cipher mode) is a required field.  \nFor GCM and CCM modes, tag_len is a required field.  \niv is optional for symmetric ciphers and unused for asymmetric ciphers. If provided, it will be used as the cipher initialization value. Length of iv must match the initialization value size for the cipher and mode. If not provided, SmartKey will create a random iv of the correct length for the cipher and m...(description truncated)",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Encryption request: {\"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"plain\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\", \"tag_len\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "A request to encrypt data using a symmetric or asymmetric key.",
            "required": [
              "alg",
              "plain"
            ],
            "properties": {
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "plain": {
                "type": "string",
                "format": "byte",
                "description": "The plaintext to encrypt."
              },
              "mode": {
                "type": "string",
                "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "CTR",
                  "OFB",
                  "GCM",
                  "CCM",
                  "PKCS1_V15",
                  "OAEP_MGF1_SHA1",
                  "OAEP_MGF1_SHA256",
                  "OAEP_MGF1_SHA384",
                  "OAEP_MGF1_SHA512",
                  "FPE",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers, this value will be used for the cipher initialization value. If not provided, SmartKey will generate a random iv and return it in the response. If provided, iv length must match the length required by the cipher and mode.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this optionally specifies the authenticated data used by the cipher. This field must not be provided with other cipher modes.\n"
              },
              "tag_len": {
                "type": "integer",
                "format": "int32",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this field specifies the length of the authentication tag to be produced. This field is specified in bits (not bytes). This field is required for symmetric ciphers with cipher mode GCM or CCM. It must not be specified for asymmetric ciphers and symmetric ciphers with other cipher modes."
              }
            }
          }
        }
      ],
      "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": "/encrypt"
      },
      "task": true
    },
    {
      "name": "encryptEx",
      "summary": "Encrypt data",
      "description": "Encrypt data using a symmetric or asymmetric key.  \nFor symmetric ciphers, mode (specifying the block cipher mode) is a required field.  \nFor GCM and CCM modes, tag_len is a required field.  \niv is optional for symmetric ciphers and unused for asymmetric ciphers. If provided, it will be used as the cipher initialization value. Length of iv must match the initialization value size for the cipher and mode. If not provided, SmartKey will create a random iv of the correct length for the cipher and m...(description truncated)",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Encryption request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"plain\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\", \"tag_len\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "A request to encrypt data using a symmetric or asymmetric key.",
            "required": [
              "key",
              "alg",
              "plain"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "plain": {
                "type": "string",
                "format": "byte",
                "description": "The plaintext to encrypt."
              },
              "mode": {
                "type": "string",
                "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "CTR",
                  "OFB",
                  "GCM",
                  "CCM",
                  "PKCS1_V15",
                  "OAEP_MGF1_SHA1",
                  "OAEP_MGF1_SHA256",
                  "OAEP_MGF1_SHA384",
                  "OAEP_MGF1_SHA512",
                  "FPE",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers, this value will be used for the cipher initialization value. If not provided, SmartKey will generate a random iv and return it in the response. If provided, iv length must match the length required by the cipher and mode.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this optionally specifies the authenticated data used by the cipher. This field must not be provided with other cipher modes.\n"
              },
              "tag_len": {
                "type": "integer",
                "format": "int32",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this field specifies the length of the authentication tag to be produced. This field is specified in bits (not bytes). This field is required for symmetric ciphers with cipher mode GCM or CCM. It must not be specified for asymmetric ciphers and symmetric ciphers with other cipher modes."
              }
            }
          }
        }
      ],
      "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": "/encryptEx"
      },
      "task": true
    },
    {
      "name": "batchEncrypt",
      "summary": "Batch encrypt with one or more keys",
      "description": "The data to be encrypted and the key ids to be used are provided in the request body. The encrypted cipher text is returned in the response body. The ordering of the body matches the ordering of the request. An individual status code is returned for each batch item. Maximum size of the entire batch request is 512 KB.\n",
      "input": [
        {
          "name": "body",
          "type": "array",
          "info": "Batch Encryption request: array",
          "required": true,
          "schema": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "kid",
                "request"
              ],
              "properties": {
                "kid": {
                  "type": "string",
                  "description": "Key ID (not name or description) of the key to use to encrypt request.\n"
                },
                "request": {
                  "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": "/batchEncrypt"
      },
      "task": true
    },
    {
      "name": "encryptInit",
      "summary": "Begin multi-part encryption",
      "description": "This API is used when encrypting more data than the client wishes to submit in a single request. It supports only symmetric ciphers and CBC, CBCNOPAD, CTR, and GCM modes of operation. To perform multi-part encryption, the client makes one request to the `init` resource, zero or more requests to the `update` resource, followed by one request to the `final` resource. The response to init and update requests includes a `state` field. The `state` is an opaque data blob that must be supplied unmodifi...(description truncated)",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Multi-part encryption initialization request: {\"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, OFB, CTR, GCM, CCM, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "alg is required. mode is required for symmetric algorithms.",
            "required": [
              "alg"
            ],
            "properties": {
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "mode": {
                "type": "string",
                "description": "Type of cipher mode, required for symmetric key algorithms.",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "OFB",
                  "CTR",
                  "GCM",
                  "CCM",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers, this value will be used for the cipher initialization value. If not provided, SmartKey will generate a random iv and return it in the response. If provided, iv length must match the length required by the cipher and mode.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this optionally specifies the authenticated data used by the cipher. This field must not be provided with other cipher modes.\n"
              }
            }
          }
        }
      ],
      "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": "/encryptInit"
      },
      "task": true
    },
    {
      "name": "encryptInitEx",
      "summary": "Begin multi-part encryption",
      "description": "This API is used when encrypting more data than the client wishes to submit in a single request. It supports only symmetric ciphers and CBC, CBCNOPAD, CTR, and GCM modes of operation. To perform multi-part encryption, the client makes one request to the `init` resource, zero or more requests to the `update` resource, followed by one request to the `final` resource. The response to init and update requests includes a `state` field. The `state` is an opaque data blob that must be supplied unmodifi...(description truncated)",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Multi-part encryption initialization request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, OFB, CTR, GCM, CCM, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "alg is required. mode is required for symmetric algorithms.",
            "required": [
              "key",
              "alg"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "mode": {
                "type": "string",
                "description": "Type of cipher mode, required for symmetric key algorithms.",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "OFB",
                  "CTR",
                  "GCM",
                  "CCM",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers, this value will be used for the cipher initialization value. If not provided, SmartKey will generate a random iv and return it in the response. If provided, iv length must match the length required by the cipher and mode.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this optionally specifies the authenticated data used by the cipher. This field must not be provided with other cipher modes.\n"
              }
            }
          }
        }
      ],
      "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": "/encryptInitEx"
      },
      "task": true
    },
    {
      "name": "encryptUpdate",
      "summary": "Continue multi-part encryption",
      "description": "Continue a multi-part encryption operation. See `encrypt/init` for details.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Multi-part encryption: {\"plain\": \"string\", \"state\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are required",
            "required": [
              "plain",
              "state"
            ],
            "properties": {
              "plain": {
                "type": "string",
                "format": "byte",
                "description": "Plaintext to encrypt."
              },
              "state": {
                "type": "string",
                "format": "byte"
              }
            }
          }
        }
      ],
      "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": "/encryptUpdate"
      },
      "task": true
    },
    {
      "name": "encryptUpdateEx",
      "summary": "Continue multi-part encryption",
      "description": "Continue a multi-part encryption operation. See `encrypt/init` for details.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Multi-part encryption: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"plain\": \"string\", \"state\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are required",
            "required": [
              "key",
              "plain",
              "state"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "plain": {
                "type": "string",
                "format": "byte",
                "description": "Plaintext to encrypt."
              },
              "state": {
                "type": "string",
                "format": "byte"
              }
            }
          }
        }
      ],
      "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": "/encryptUpdateEx"
      },
      "task": true
    },
    {
      "name": "encryptFinal",
      "summary": "Conclude multi-part encryption",
      "description": "Conclude a multi-part encryption operation. See `encrypt/init` for details.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Finish multi-part encryption: {\"state\": \"string\", \"tag_len\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are required",
            "required": [
              "state"
            ],
            "properties": {
              "state": {
                "type": "string",
                "format": "byte"
              },
              "tag_len": {
                "type": "integer",
                "format": "int32",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this field specifies the length of the authentication tag to be produced. This field is specified in bits (not bytes). This field is required for symmetric ciphers with cipher mode GCM or CCM. It must not be specified for asymmetric ciphers and symmetric ciphers with other cipher modes."
              }
            }
          }
        }
      ],
      "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": "/encryptFinal"
      },
      "task": true
    },
    {
      "name": "encryptFinalEx",
      "summary": "Conclude multi-part encryption",
      "description": "Conclude a multi-part encryption operation. See `encrypt/init` for details.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Finish multi-part encryption: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"state\": \"string\", \"tag_len\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are required",
            "required": [
              "key",
              "state"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "state": {
                "type": "string",
                "format": "byte"
              },
              "tag_len": {
                "type": "integer",
                "format": "int32",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this field specifies the length of the authentication tag to be produced. This field is specified in bits (not bytes). This field is required for symmetric ciphers with cipher mode GCM or CCM. It must not be specified for asymmetric ciphers and symmetric ciphers with other cipher modes."
              }
            }
          }
        }
      ],
      "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": "/encryptFinalEx"
      },
      "task": true
    },
    {
      "name": "decrypt",
      "summary": "Decrypt data",
      "description": "Decrypt data using a symmetric or asymmetric key. For symmetric ciphers, mode (specifying the block cipher mode) is a required field.  \nFor GCM and CCM modes, tag_len is a required field.  \niv is required for symmetric ciphers and unused for asymmetric ciphers. It must contain the initialization value used when the object was encrypted.  \nObjects of type opaque, EC, or HMAC may not be used for encryption or decryption.  \n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Decryption request: {\"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"cipher\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\", \"tag\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "Mode and iv are required fields for symmetric key algorithms and ad and tag are required fields for GCM or CCM modes.",
            "required": [
              "cipher"
            ],
            "properties": {
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "cipher": {
                "type": "string",
                "format": "byte",
                "description": "The ciphertext to decrypt."
              },
              "mode": {
                "type": "string",
                "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "CTR",
                  "OFB",
                  "GCM",
                  "CCM",
                  "PKCS1_V15",
                  "OAEP_MGF1_SHA1",
                  "OAEP_MGF1_SHA256",
                  "OAEP_MGF1_SHA384",
                  "OAEP_MGF1_SHA512",
                  "FPE",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "The initialization value used to encrypt this ciphertext. This field is required for symmetric ciphers, and ignored for asymmetric ciphers.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "The authenticated data used with this ciphertext and authentication tag. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              },
              "tag": {
                "type": "string",
                "format": "byte",
                "description": "The authentication tag used with this ciphertext and authenticated data. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              }
            }
          }
        }
      ],
      "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": "/decrypt"
      },
      "task": true
    },
    {
      "name": "decryptEx",
      "summary": "Decrypt data",
      "description": "Decrypt data using a symmetric or asymmetric key. For symmetric ciphers, mode (specifying the block cipher mode) is a required field.  \nFor GCM and CCM modes, tag_len is a required field.  \niv is required for symmetric ciphers and unused for asymmetric ciphers. It must contain the initialization value used when the object was encrypted.  \nObjects of type opaque, EC, or HMAC may not be used for encryption or decryption.  \n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Decryption request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"cipher\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\", \"tag\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "Mode and iv are required fields for symmetric key algorithms and ad and tag are required fields for GCM or CCM modes.",
            "required": [
              "key",
              "cipher"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "cipher": {
                "type": "string",
                "format": "byte",
                "description": "The ciphertext to decrypt."
              },
              "mode": {
                "type": "string",
                "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "CTR",
                  "OFB",
                  "GCM",
                  "CCM",
                  "PKCS1_V15",
                  "OAEP_MGF1_SHA1",
                  "OAEP_MGF1_SHA256",
                  "OAEP_MGF1_SHA384",
                  "OAEP_MGF1_SHA512",
                  "FPE",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "The initialization value used to encrypt this ciphertext. This field is required for symmetric ciphers, and ignored for asymmetric ciphers.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "The authenticated data used with this ciphertext and authentication tag. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              },
              "tag": {
                "type": "string",
                "format": "byte",
                "description": "The authentication tag used with this ciphertext and authenticated data. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              }
            }
          }
        }
      ],
      "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": "/decryptEx"
      },
      "task": true
    },
    {
      "name": "batchDecrypt",
      "summary": "Batch decrypt with one or more keys",
      "description": "The data to be decrypted and the key ids to be used are provided in the request body. The decrypted plain text is returned in the response body. The ordering of the body matches the ordering of the request. An individual status code is returned for each batch item. Maximum size of the entire batch request is 512 KB.\n",
      "input": [
        {
          "name": "body",
          "type": "array",
          "info": "Batch decryption request: array",
          "required": true,
          "schema": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "kid",
                "request"
              ],
              "properties": {
                "kid": {
                  "type": "string",
                  "description": "Key ID (not name or description) of the key to use to decrypt request.\n"
                },
                "request": {
                  "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": "/batchDecrypt"
      },
      "task": true
    },
    {
      "name": "decryptInit",
      "summary": "Begin multi-part decryption",
      "description": "This API is used when decrypting more data than the client wishes to submit in a single request. It supports only symmetric ciphers and CBC, CBCNOPAD, CTR, and GCM modes of operation. To perform multi-part decryption, the client makes one request to the `init` resource, zero or more requests to the `update` resource, followed by one request to the `final` resource. The response to init and update requests includes a `state` field. The `state` is an opaque data blob that must be supplied unmodifi...(description truncated)",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Multi-part decryption initialization request: {\"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, OFB, CTR, GCM, CCM, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are optional",
            "properties": {
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "mode": {
                "type": "string",
                "description": "Type of cipher mode, required for symmetric key algorithms.",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "OFB",
                  "CTR",
                  "GCM",
                  "CCM",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "The initialization value used to encrypt this ciphertext. This field is required for symmetric ciphers, and ignored for asymmetric ciphers.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "The authenticated data used with this ciphertext and authentication tag. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              }
            }
          }
        }
      ],
      "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": "/decryptInit"
      },
      "task": true
    },
    {
      "name": "decryptInitEx",
      "summary": "Begin multi-part decryption",
      "description": "This API is used when decrypting more data than the client wishes to submit in a single request. It supports only symmetric ciphers and CBC, CBCNOPAD, CTR, and GCM modes of operation. To perform multi-part decryption, the client makes one request to the `init` resource, zero or more requests to the `update` resource, followed by one request to the `final` resource. The response to init and update requests includes a `state` field. The `state` is an opaque data blob that must be supplied unmodifi...(description truncated)",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Multi-part decryption initialization request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, OFB, CTR, GCM, CCM, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "key"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "mode": {
                "type": "string",
                "description": "Type of cipher mode, required for symmetric key algorithms.",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "OFB",
                  "CTR",
                  "GCM",
                  "CCM",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "The initialization value used to encrypt this ciphertext. This field is required for symmetric ciphers, and ignored for asymmetric ciphers.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "The authenticated data used with this ciphertext and authentication tag. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              }
            }
          }
        }
      ],
      "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": "/decryptInitEx"
      },
      "task": true
    },
    {
      "name": "decryptUpdate",
      "summary": "Continue multi-part decryption",
      "description": "Continue a multi-part decryption operation. See `decrypt/init` for details.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Multi-part decryption: {\"cipher\": \"string\", \"state\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are required",
            "required": [
              "cipher",
              "state"
            ],
            "properties": {
              "cipher": {
                "type": "string",
                "format": "byte",
                "description": "Ciphertext to decrypt."
              },
              "state": {
                "type": "string",
                "format": "byte"
              }
            }
          }
        }
      ],
      "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": "/decryptUpdate"
      },
      "task": true
    },
    {
      "name": "decryptUpdateEx",
      "summary": "Continue multi-part decryption",
      "description": "Continue a multi-part decryption operation. See `decrypt/init` for details.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Multi-part decryption: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"cipher\": \"string\", \"state\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are required",
            "required": [
              "key",
              "cipher",
              "state"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "cipher": {
                "type": "string",
                "format": "byte",
                "description": "Ciphertext to decrypt."
              },
              "state": {
                "type": "string",
                "format": "byte"
              }
            }
          }
        }
      ],
      "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": "/decryptUpdateEx"
      },
      "task": true
    },
    {
      "name": "decryptFinal",
      "summary": "Conclude multi-part decryption",
      "description": "Conclude a multi-part decryption operation. See `decrypt/init` for details.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Finish multi-part decryption: {\"state\": \"string\", \"tag\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are required",
            "required": [
              "state"
            ],
            "properties": {
              "state": {
                "type": "string",
                "format": "byte"
              },
              "tag": {
                "type": "string",
                "format": "byte",
                "description": "The authentication tag used with this ciphertext and authenticated data. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              }
            }
          }
        }
      ],
      "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": "/decryptFinal"
      },
      "task": true
    },
    {
      "name": "decryptFinalEx",
      "summary": "Conclude multi-part decryption",
      "description": "Conclude a multi-part decryption operation. See `decrypt/init` for details.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Finish multi-part decryption: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"state\": \"string\", \"tag\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "description": "all fields are required",
            "required": [
              "key",
              "state"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "state": {
                "type": "string",
                "format": "byte"
              },
              "tag": {
                "type": "string",
                "format": "byte",
                "description": "The authentication tag used with this ciphertext and authenticated data. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              }
            }
          }
        }
      ],
      "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": "/decryptFinalEx"
      },
      "task": true
    },
    {
      "name": "sign",
      "summary": "Sign with a private key",
      "description": "Sign data with a private key. The signing key must be an asymmetric key with the private part present. The sign operation must be enabled for this key. Symmetric keys  may not be used to sign data. They can be used with the computeMac and verifyMac methods.  \nThe data must be hashed with a SHA-1 or SHA-2 family hash algorithm.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Signature request: {\"hash_alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"hash\": \"string\", \"data\": \"string\", \"mode\": \"object\", \"deterministic_signature\": \"boolean\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "hash_alg"
            ],
            "properties": {
              "hash_alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "hash": {
                "type": "string",
                "format": "byte",
                "description": "Hash of the data to be signed. Exactly one of `hash` and `data` is required.\n"
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "Data to be signed. Exactly one of `hash` and `data` is required. To reduce request size and avoid reaching the request size limit, prefer `hash`. When using Ed25519 keys, a distinction is made between providing the message directly in `data` and providing a prehashed value in `hash`. Providing a full message results in an \"Ed25519\" signature while providing `hash` results in an \"Ed25519ph\" signature, which is not compatible. See RFC 8032 for details.\n"
              },
              "mode": {
                "type": "object"
              },
              "deterministic_signature": {
                "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": "/sign"
      },
      "task": true
    },
    {
      "name": "signEx",
      "summary": "Sign with a private key",
      "description": "Sign data with a private key. The signing key must be an asymmetric key with the private part present. The sign operation must be enabled for this key. Symmetric keys  may not be used to sign data. They can be used with the computeMac and verifyMac methods.  \nThe data must be hashed with a SHA-1 or SHA-2 family hash algorithm.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Signature request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"hash_alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"hash\": \"string\", \"data\": \"string\", \"mode\": \"object\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "key",
              "hash_alg"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "hash_alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "hash": {
                "type": "string",
                "format": "byte",
                "description": "Hash of the data to be signed. Exactly one of `hash` and `data` is required.\n"
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "Data to be signed. Exactly one of `hash` and `data` is required. To reduce request size and avoid reaching the request size limit, prefer `hash`.\n"
              },
              "mode": {
                "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": "/signEx"
      },
      "task": true
    },
    {
      "name": "batchSign",
      "summary": "Batch sign with one or more private keys",
      "description": "The data to be signed and the key ids to be used are provided in the request body. The signature is returned in the response body. The ordering of the body matches the ordering of the request. An individual status code is returned for each batch item. Maximum size of the entire batch request is 512 KB.\n",
      "input": [
        {
          "name": "body",
          "type": "array",
          "info": "Batch Sign request: array",
          "required": true,
          "schema": {
            "type": "array",
            "description": "Array of Sign requests to be performed in batch\n",
            "items": {
              "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": "/batchSign"
      },
      "task": true
    },
    {
      "name": "verify",
      "summary": "Verify a signature with a key",
      "description": "Verify a signature with a public key. The verifying key must be an asymmetric key with the verify operation enabled. Symmetric keys may not be used to verify data. They can be used with the computeMac and verifyMac operations.  \nThe signature must have been created with a SHA-1 or SHA-2 family hash algorithm.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Verification request: {\"hash_alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"hash\": \"string\", \"data\": \"string\", \"signature\": \"string\", \"mode\": \"object\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "hash_alg",
              "signature"
            ],
            "properties": {
              "hash_alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "hash": {
                "type": "string",
                "format": "byte",
                "description": "The hash of the data on which the signature is being verified. Exactly one of `hash` and `data` is required.\n"
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "The data on which the signature is being verified. Exactly one of `hash` and `data` is required. To reduce request size and avoid reaching the request size limit, prefer `hash`.\n"
              },
              "signature": {
                "type": "string",
                "format": "byte",
                "description": "A signature created with the private key corresponding to this public key."
              },
              "mode": {
                "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": "/verify"
      },
      "task": true
    },
    {
      "name": "verifyEx",
      "summary": "Verify a signature with a key",
      "description": "Verify a signature with a public key. The verifying key must be an asymmetric key with the verify operation enabled. Symmetric keys may not be used to verify data. They can be used with the computeMac and verifyMac operations.  \nThe signature must have been created with a SHA-1 or SHA-2 family hash algorithm.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Verification request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"hash_alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"hash\": \"string\", \"data\": \"string\", \"signature\": \"string\", \"mode\": \"object\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "key",
              "hash_alg",
              "signature"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "hash_alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "hash": {
                "type": "string",
                "format": "byte",
                "description": "The hash of the data on which the signature is being verified. Exactly one of `hash` and `data` is required.\n"
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "The data on which the signature is being verified. Exactly one of `hash` and `data` is required. To reduce request size and avoid reaching the request size limit, prefer `hash`.\n"
              },
              "signature": {
                "type": "string",
                "format": "byte",
                "description": "A signature created with the private key corresponding to this public key."
              },
              "mode": {
                "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": "/verifyEx"
      },
      "task": true
    },
    {
      "name": "batchVerify",
      "summary": "Batch verify with one or more private keys",
      "description": "The signature to be verified and the key ids to be used are provided in the request body. The result (true of false) returned in the response body. The ordering of the body matches the ordering of the request. An individual status code is returned for each batch item. Maximum size of the entire batch request is 512 KB.\n",
      "input": [
        {
          "name": "body",
          "type": "array",
          "info": "Batch Verify request: array",
          "required": true,
          "schema": {
            "type": "array",
            "description": "Array of Verify requests to be performed in batch\n",
            "items": {
              "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": "/batchVerify"
      },
      "task": true
    },
    {
      "name": "computeDigest",
      "summary": "Compute a message digest of data",
      "description": "This returns the digest of data provided in request body using the algorithm specified in request body. Maximum size of request body supported is 512KB.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Digest request: {\"alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"data\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "alg",
              "data"
            ],
            "properties": {
              "alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "Data to be hashed."
              }
            }
          }
        }
      ],
      "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": "/computeDigest"
      },
      "task": true
    },
    {
      "name": "computeMac",
      "summary": "Compute MAC using a key",
      "description": "Compute a cryptographic Message Authentication Code on a message using a symmetric key. The key must have the MACGenerate operation enabled. Asymmetric keys may not be used to generate MACs. They can be used with the sign and verify operations.\n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "MAC generation request: {\"alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"data\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "data"
            ],
            "properties": {
              "alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "Data to compute the MAC of."
              }
            }
          }
        }
      ],
      "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": "/computeMac"
      },
      "task": true
    },
    {
      "name": "computeMacEx",
      "summary": "Compute MAC using a key",
      "description": "Compute a cryptographic Message Authentication Code on a message using a symmetric key. The key must have the MACGenerate operation enabled. Asymmetric keys may not be used to generate MACs. They can be used with the sign and verify operations.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "MAC generation request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"data\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "key",
              "data"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "Data to compute the MAC of."
              }
            }
          }
        }
      ],
      "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": "/computeMacEx"
      },
      "task": true
    },
    {
      "name": "verifyMac",
      "summary": "Verify MAC using a key",
      "description": "The data to be MACed, the algorithm, and a pre-computed MAC are provided in the request body, and the key id is provided in the URL. SmartKey computes the MAC of the data and compares it with the specified MAC, and returns the outcome of the MAC verification in the response body. Maximum size of request body supported is 512KB. Supported digest algorithms are - SHA1, SHA256, SHA384, and SHA512.            \n",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "MAC Verify request: {\"alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"data\": \"string\", \"digest\": \"string\", \"mac\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "alg",
              "data"
            ],
            "properties": {
              "alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "The data to verify the MAC of."
              },
              "digest": {
                "type": "string",
                "format": "byte",
                "description": "The MAC previously computed for the input data. NOTE - this field is deprecated. Instead you should use mac field."
              },
              "mac": {
                "type": "string",
                "format": "byte",
                "description": "The MAC previously computed for the input data."
              }
            }
          }
        }
      ],
      "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": "/verifyMac"
      },
      "task": true
    },
    {
      "name": "verifyMacEx",
      "summary": "Verify MAC using a key",
      "description": "The data to be MACed, the algorithm, and a pre-computed MAC are provided in the request body, and the key id is provided in the URL. SmartKey computes the MAC of the data and compares it with the specified MAC, and returns the outcome of the MAC verification in the response body. Maximum size of request body supported is 512KB. Supported digest algorithms are - SHA1, SHA256, SHA384, and SHA512.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "MAC Verify request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [Blake2b256, Blake2b384, Blake2b512, Blake2s256, RIPEMD160, SHA1, SHA256, SHA384, SHA512, SHA3_224, SHA3_256, SHA3_384, SHA3_512, Ssl3, Streebog256, Streebog512]\", \"data\": \"string\", \"digest\": \"string\", \"mac\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "key",
              "alg",
              "data"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Message digest algorithm.",
                "enum": [
                  "Blake2b256",
                  "Blake2b384",
                  "Blake2b512",
                  "Blake2s256",
                  "RIPEMD160",
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512",
                  "SHA3_224",
                  "SHA3_256",
                  "SHA3_384",
                  "SHA3_512",
                  "Ssl3",
                  "Streebog256",
                  "Streebog512"
                ]
              },
              "data": {
                "type": "string",
                "format": "byte",
                "description": "The data to verify the MAC of."
              },
              "digest": {
                "type": "string",
                "format": "byte",
                "description": "The MAC previously computed for the input data. NOTE - this field is deprecated. Instead you should use mac field."
              },
              "mac": {
                "type": "string",
                "format": "byte",
                "description": "The MAC previously computed for the input data."
              }
            }
          }
        }
      ],
      "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": "/verifyMacEx"
      },
      "task": true
    },
    {
      "name": "wrapKey",
      "summary": "Wrap a security object with a key\n",
      "description": "Wrap (encrypt) an existing security object with a key. This allows keys to be securely exported from SmartKey so they can be later imported into SmartKey or another key management system.  \nThe key-id parameter in the URL specifies the key that will be used to wrap the other security object. The security object being wrapped is specified inside of the request body.  \nThe alg and mode parameters specify the encryption algorithm and cipher mode being used for the wrapping key. The algorithm of the...(description truncated)",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Wrap key request: {\"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"kid\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"key_format\": \"Must be one of [Default, Pkcs8]\", \"iv\": \"string\", \"ad\": \"string\", \"tag_len\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "alg",
              "kid"
            ],
            "properties": {
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "kid": {
                "type": "string",
                "description": "The key ID (not name or description) of the key being wrapped."
              },
              "mode": {
                "type": "string",
                "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "CTR",
                  "OFB",
                  "GCM",
                  "CCM",
                  "PKCS1_V15",
                  "OAEP_MGF1_SHA1",
                  "OAEP_MGF1_SHA256",
                  "OAEP_MGF1_SHA384",
                  "OAEP_MGF1_SHA512",
                  "FPE",
                  "KW",
                  "KWP"
                ]
              },
              "key_format": {
                "type": "string",
                "description": "Desired key formatting",
                "enum": [
                  "Default",
                  "Pkcs8"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers, this value will be used for the cipher initialization value. If not provided, SmartKey will generate a random iv and return it in the response. If provided, iv length must match the length required by the cipher and mode.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this optionally specifies the authenticated data used by the cipher. This field must not be provided with other cipher modes.\n"
              },
              "tag_len": {
                "type": "integer",
                "format": "int32",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this field specifies the length of the authentication tag to be produced. This field is specified in bits (not bytes). This field is required for symmetric ciphers with cipher mode GCM or CCM. It must not be specified for asymmetric ciphers and symmetric ciphers with other cipher modes."
              }
            }
          }
        }
      ],
      "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": "/wrapKey"
      },
      "task": true
    },
    {
      "name": "wrapKeyEx",
      "summary": "Wrap a security object with a key\n",
      "description": "Wrap (encrypt) an existing security object with a key. This allows keys to be securely exported from SmartKey so they can be later imported into SmartKey or another key management system.  \nThe key-id parameter in the URL specifies the key that will be used to wrap the other security object. The security object being wrapped is specified inside of the request body.  \nThe alg and mode parameters specify the encryption algorithm and cipher mode being used for the wrapping key. The algorithm of the...(description truncated)",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Wrap key request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"subject\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"key_format\": \"Must be one of [Default, Pkcs8]\", \"iv\": \"string\", \"ad\": \"string\", \"tag_len\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "alg",
              "key",
              "subject"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "subject": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "mode": {
                "type": "string",
                "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "CTR",
                  "OFB",
                  "GCM",
                  "CCM",
                  "PKCS1_V15",
                  "OAEP_MGF1_SHA1",
                  "OAEP_MGF1_SHA256",
                  "OAEP_MGF1_SHA384",
                  "OAEP_MGF1_SHA512",
                  "FPE",
                  "KW",
                  "KWP"
                ]
              },
              "key_format": {
                "type": "string",
                "description": "Desired key formatting",
                "enum": [
                  "Default",
                  "Pkcs8"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers, this value will be used for the cipher initialization value. If not provided, SmartKey will generate a random iv and return it in the response. If provided, iv length must match the length required by the cipher and mode.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this optionally specifies the authenticated data used by the cipher. This field must not be provided with other cipher modes.\n"
              },
              "tag_len": {
                "type": "integer",
                "format": "int32",
                "description": "For symmetric ciphers with cipher mode GCM or CCM, this field specifies the length of the authentication tag to be produced. This field is specified in bits (not bytes). This field is required for symmetric ciphers with cipher mode GCM or CCM. It must not be specified for asymmetric ciphers and symmetric ciphers with other cipher modes."
              }
            }
          }
        }
      ],
      "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": "/wrapKeyEx"
      },
      "task": true
    },
    {
      "name": "unwrapKey",
      "summary": "Unwrap a security object with a key",
      "description": "Unwrap (decrypt) a wrapped key and import it into SmartKey. This allows securely importing into SmartKey security objects that were previously wrapped by SmartKey or another key management system. A new security object will be created in SmartKey with the unwrapped data.  \nThe key-id parameter in the URL specifies the key that will be used to unwrap the other security object. This key must have the unwrapkey operation enabled.  \nThe alg and mode parameters specify the encryption algorithm and ci...(description truncated)",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Unwrap key request: {\"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"group_id\": \"string\", \"obj_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"wrapped_key\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\", \"tag\": \"string\", \"name\": \"string\", \"description\": \"string\", \"key_ops\": \"array\", \"custom_metadata\": \"object\", \"enabled\": \"boolean\", \"transient\": \"boolean\", \"rsa\": {\"key_size\": 123, \"public_exponent\": 123, \"encryption_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"OAEP\": {\"mgf\": \"undefined\"}}}], \"signature_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"PSS\": {\"mgf\": \"undefined\"}}}]}}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "wrapped_key",
              "alg",
              "obj_type",
              "name"
            ],
            "properties": {
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "obj_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "wrapped_key": {
                "type": "string",
                "format": "byte",
                "description": "A Security Object previously wrapped with another key.\n"
              },
              "mode": {
                "type": "string",
                "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "CTR",
                  "OFB",
                  "GCM",
                  "CCM",
                  "PKCS1_V15",
                  "OAEP_MGF1_SHA1",
                  "OAEP_MGF1_SHA256",
                  "OAEP_MGF1_SHA384",
                  "OAEP_MGF1_SHA512",
                  "FPE",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "The initialization value used to encrypt this ciphertext. This field is required for symmetric ciphers, and ignored for asymmetric ciphers.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "The authenticated data used with this ciphertext and authentication tag. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              },
              "tag": {
                "type": "string",
                "format": "byte",
                "description": "The authentication tag used with this ciphertext and authenticated data. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              },
              "name": {
                "type": "string",
                "description": "Name of the security object to unwrap. Security object names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the Security object to unwrap."
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the new security object should be enabled. Disabled security objects may not perform cryptographic operations.\n"
              },
              "transient": {
                "type": "boolean",
                "description": "If this is true, SmartKey will unwrap a transient key."
              },
              "rsa": {
                "type": "object",
                "description": "RSA-specific options.",
                "properties": {
                  "key_size": {
                    "type": "integer",
                    "format": "int32",
                    "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                  },
                  "public_exponent": {
                    "format": "int32",
                    "type": "integer",
                    "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                  },
                  "encryption_policy": {
                    "type": "array",
                    "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "OAEP": {
                              "type": "object",
                              "maxProperties": 1,
                              "properties": {
                                "mgf": {
                                  "type": "object"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "signature_policy": {
                    "type": "array",
                    "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "PSS": {
                              "type": "object",
                              "maxProperties": 1,
                              "properties": {
                                "mgf": {
                                  "type": "object"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1,
                            "properties": {
                              "mgf": {
                                "type": "object"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1,
                            "properties": {
                              "mgf": {
                                "type": "object"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/unwrapKey"
      },
      "task": true
    },
    {
      "name": "unwrapKeyEx",
      "summary": "Unwrap a security object with a key",
      "description": "Unwrap (decrypt) a wrapped key and import it into SmartKey. This allows securely importing into SmartKey security objects that were previously wrapped by SmartKey or another key management system. A new security object will be created in SmartKey with the unwrapped data.  \nThe key-id parameter in the URL specifies the key that will be used to unwrap the other security object. This key must have the unwrapkey operation enabled.  \nThe alg and mode parameters specify the encryption algorithm and ci...(description truncated)",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Unwrap key request: {\"key\": {\"kid\": \"string\", \"name\": \"string\", \"transient_key\": \"string\"}, \"alg\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"group_id\": \"string\", \"obj_type\": \"Must be one of [AES, DES, DES3, RSA, EC, OPAQUE, HMAC, SECRET, CERTIFICATE, ROUND5BETA, LEDABETA]\", \"wrapped_key\": \"string\", \"mode\": \"Must be one of [ECB, CBC, CBCNOPAD, CFB, CTR, OFB, GCM, CCM, PKCS1_V15, OAEP_MGF1_SHA1, OAEP_MGF1_SHA256, OAEP_MGF1_SHA384, OAEP_MGF1_SHA512, FPE, KW, KWP]\", \"iv\": \"string\", \"ad\": \"string\", \"tag\": \"string\", \"name\": \"string\", \"description\": \"string\", \"key_ops\": \"array\", \"custom_metadata\": \"object\", \"enabled\": \"boolean\", \"rsa\": {\"key_size\": 123, \"public_exponent\": 123, \"encryption_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"OAEP\": {\"mgf\": \"undefined\"}}}], \"signature_policy\": [{\"padding\": {\"PKCS1_V15\": \"object\", \"PSS\": {\"mgf\": \"undefined\"}}}]}}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "key",
              "wrapped_key",
              "alg",
              "obj_type",
              "name"
            ],
            "properties": {
              "key": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "This uniquely identifies a persisted or transient sobject. Exactly one of `kid`, `name`, and `transient_key` must be present.\n",
                "properties": {
                  "kid": {
                    "type": "string",
                    "description": "Key ID uniquely identifying this persisted security object."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of this persisted security object."
                  },
                  "transient_key": {
                    "type": "string",
                    "description": "Transient key blob."
                  }
                }
              },
              "alg": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "group_id": {
                "type": "string",
                "description": "Group ID (not name) of the security group that this security object should belong to. The user or application creating this security object must be a member of this group. If no group is specified, the default group for the user or application will be used.\n"
              },
              "obj_type": {
                "type": "string",
                "description": "Type of security object.",
                "default": "OPAQUE",
                "enum": [
                  "AES",
                  "DES",
                  "DES3",
                  "RSA",
                  "EC",
                  "OPAQUE",
                  "HMAC",
                  "SECRET",
                  "CERTIFICATE",
                  "ROUND5BETA",
                  "LEDABETA"
                ]
              },
              "wrapped_key": {
                "type": "string",
                "format": "byte",
                "description": "A Security Object previously wrapped with another key.\n"
              },
              "mode": {
                "type": "string",
                "description": "`CipherMode` or `RsaEncryptionPadding`, depending on the encryption algorithm",
                "enum": [
                  "ECB",
                  "CBC",
                  "CBCNOPAD",
                  "CFB",
                  "CTR",
                  "OFB",
                  "GCM",
                  "CCM",
                  "PKCS1_V15",
                  "OAEP_MGF1_SHA1",
                  "OAEP_MGF1_SHA256",
                  "OAEP_MGF1_SHA384",
                  "OAEP_MGF1_SHA512",
                  "FPE",
                  "KW",
                  "KWP"
                ]
              },
              "iv": {
                "type": "string",
                "format": "byte",
                "description": "The initialization value used to encrypt this ciphertext. This field is required for symmetric ciphers, and ignored for asymmetric ciphers.\n"
              },
              "ad": {
                "type": "string",
                "format": "byte",
                "description": "The authenticated data used with this ciphertext and authentication tag. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              },
              "tag": {
                "type": "string",
                "format": "byte",
                "description": "The authentication tag used with this ciphertext and authenticated data. This field is required for symmetric ciphers using cipher mode GCM or CCM, and must not be specified for all other ciphers.\n"
              },
              "name": {
                "type": "string",
                "description": "Name of the security object to unwrap. Security object names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the Security object to unwrap."
              },
              "key_ops": {
                "type": "array",
                "description": "Optional array of key operations to be enabled for this security object. If this property is not provided, the SmartKey server will provide a default set of key operations. Note that if you provide an empty array, all key operations will be disabled.\n",
                "items": {
                  "type": "string",
                  "description": "Operations allowed to be performed by a given key.",
                  "enum": [
                    "SIGN",
                    "VERIFY",
                    "ENCRYPT",
                    "DECRYPT",
                    "WRAPKEY",
                    "UNWRAPKEY",
                    "DERIVEKEY",
                    "AGREEKEY",
                    "MACGENERATE",
                    "MACVERIFY",
                    "EXPORT",
                    "APPMANAGEABLE"
                  ]
                }
              },
              "custom_metadata": {
                "type": "object",
                "description": "User-defined metadata for this key. Stored as key-value pairs.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether the new security object should be enabled. Disabled security objects may not perform cryptographic operations.\n"
              },
              "rsa": {
                "type": "object",
                "description": "RSA-specific options.",
                "properties": {
                  "key_size": {
                    "type": "integer",
                    "format": "int32",
                    "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                  },
                  "public_exponent": {
                    "format": "int32",
                    "type": "integer",
                    "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                  },
                  "encryption_policy": {
                    "type": "array",
                    "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "OAEP": {
                              "type": "object",
                              "maxProperties": 1,
                              "properties": {
                                "mgf": {
                                  "type": "object"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "signature_policy": {
                    "type": "array",
                    "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                    "items": {
                      "type": "object",
                      "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                      "properties": {
                        "padding": {
                          "type": "object",
                          "maxProperties": 1,
                          "properties": {
                            "PKCS1_V15": {
                              "type": "object"
                            },
                            "PSS": {
                              "type": "object",
                              "maxProperties": 1,
                              "properties": {
                                "mgf": {
                                  "type": "object"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "creator",
            "obj_type",
            "origin",
            "enabled",
            "created_at",
            "lastused_at",
            "never_exportable"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the security object."
            },
            "description": {
              "type": "string",
              "description": "Description of the security object."
            },
            "key_size": {
              "type": "integer",
              "format": "int32",
              "description": "For objects which are not elliptic curves, this is the size in bits (not bytes) of the object. This field is not returned for elliptic curves.\n"
            },
            "elliptic_curve": {
              "type": "string",
              "description": "Identifies a standardized elliptic curve. Required for operations involving EC keys.",
              "enum": [
                "SecP192K1",
                "SecP224K1",
                "SecP256K1",
                "NistP192",
                "NistP224",
                "NistP256",
                "NistP384",
                "NistP521",
                "Gost256A",
                "Ed25519",
                "X25519",
                "X448"
              ]
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID of the account this security object belongs to."
            },
            "group_id": {
              "type": "string",
              "description": "Group ID of the security group that this security object belongs to."
            },
            "creator": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "What type of entity created another entity.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                }
              }
            },
            "kid": {
              "type": "string",
              "description": "Key ID uniquely identifying this security object."
            },
            "obj_type": {
              "type": "string",
              "description": "Type of security object.",
              "default": "OPAQUE",
              "enum": [
                "AES",
                "DES",
                "DES3",
                "RSA",
                "EC",
                "OPAQUE",
                "HMAC",
                "SECRET",
                "CERTIFICATE",
                "ROUND5BETA",
                "LEDABETA"
              ]
            },
            "key_ops": {
              "type": "array",
              "description": "Array of key operations enabled for this security object.\n",
              "items": {
                "type": "string",
                "description": "Operations allowed to be performed by a given key.",
                "enum": [
                  "SIGN",
                  "VERIFY",
                  "ENCRYPT",
                  "DECRYPT",
                  "WRAPKEY",
                  "UNWRAPKEY",
                  "DERIVEKEY",
                  "AGREEKEY",
                  "MACGENERATE",
                  "MACVERIFY",
                  "EXPORT",
                  "APPMANAGEABLE"
                ]
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "User-defined metadata for this key. Stored as key-value pairs.",
              "additionalProperties": {
                "type": "string"
              }
            },
            "origin": {
              "type": "string",
              "description": "Where this security object originated.",
              "enum": [
                "FortanixHSM",
                "External"
              ]
            },
            "pub_key": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for asymmetric keys. It contains the public key."
            },
            "value": {
              "type": "string",
              "format": "byte",
              "description": "This field is returned only for opaque and secret objects. It contains the contents of the object."
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this security object has cryptographic operations enabled."
            },
            "compliant_with_policies": {
              "type": "boolean",
              "description": "Whether this security object is compliant with cryptographic policies or not."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was created."
            },
            "lastused_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this security object was last used."
            },
            "transient_key": {
              "type": "string",
              "description": "Transient key blob."
            },
            "never_exportable": {
              "type": "boolean",
              "description": "True if this key's operations have never contained EXPORT."
            },
            "rsa": {
              "type": "object",
              "description": "RSA-specific options.",
              "properties": {
                "key_size": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Specify on Create only. Returned on Get. Size in bits (not bytes) of the RSA key."
                },
                "public_exponent": {
                  "format": "int32",
                  "type": "integer",
                  "description": "Specify on Create only. Public exponent to use for generating the RSA key."
                },
                "encryption_policy": {
                  "type": "array",
                  "description": "Encryption policy for this RSA key. When doing an encryption or key wrapping operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{\"padding\":{\"OAEP\":{}}]`. If (part of) a constraint is not specified, anything is allowed for that constraint. To impose no constraints, specify `[{}]`.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA encryption parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "OAEP": {
                            "type": "object",
                            "maxProperties": 1,
                            "properties": {
                              "mgf": {
                                "type": "object"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "signature_policy": {
                  "type": "array",
                  "description": "Signature policy for this RSA key. When doing a signature operation, the policies are evaluated against the specified parameters one by one. If one matches, the operation is allowed. If none match, including if the policy list is empty, the operation is disallowed. Missing optional parameters will have their defaults specified according to the matched policy. The default for new keys is `[{}]` (no constraints). If (part of) a constraint is not specified, anything is allowed for that constraint.\n",
                  "items": {
                    "type": "object",
                    "description": "Constraints on RSA signature parameters. In general, if a constraint is not specified, anything is allowed.",
                    "properties": {
                      "padding": {
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "PKCS1_V15": {
                            "type": "object"
                          },
                          "PSS": {
                            "type": "object",
                            "maxProperties": 1,
                            "properties": {
                              "mgf": {
                                "type": "object"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/unwrapKeyEx"
      },
      "task": true
    },
    {
      "name": "getApps",
      "summary": "Get all applications",
      "description": "Get details of all applications the current user has access to.",
      "input": [
        {
          "name": "groupId",
          "type": "string",
          "info": "Only retrieve applications in the specified group.: string",
          "required": false,
          "schema": {
            "title": "groupId",
            "type": "string"
          }
        },
        {
          "name": "sort",
          "type": "string",
          "info": "This specifies the property (`app_id` only, for now) and order (ascending or descending) with which to sort the apps. By default, apps are sorted by `app_id` in ascending...(description truncated): string",
          "required": false,
          "schema": {
            "title": "sort",
            "type": "string"
          }
        },
        {
          "name": "start",
          "type": "string",
          "info": "If provided, this must be a value of the property specified in `sort`. Returned apps will begin just above or just below this value (for asc/desc order resp.).\n: string",
          "required": false,
          "schema": {
            "title": "start",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of apps to return. If not provided, the limit is 100.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Number of apps past `start` to skip.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        }
      ],
      "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": "/getApps"
      },
      "task": true
    },
    {
      "name": "createApp",
      "summary": "Create a new application",
      "description": "Create a new application with the specified properties.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Properties of application to create: {\"name\": \"string\", \"description\": \"string\", \"add_groups\": \"object\", \"del_groups\": \"array\", \"mod_groups\": \"object\", \"default_group\": \"string\", \"enabled\": \"boolean\", \"AppOauthConfig\": {\"redirect_uris\": \"array\", \"disabled\": \"boolean\"}, \"interface\": \"string\", \"app_type\": \"string\", \"credential\": {\"secret\": \"string\", \"certificate\": \"string\", \"trustedca\": {\"subject\": \"array\", \"ca_certificate\": \"string\"}, \"googleserviceaccount\": \"object\", \"signedjwt\": {\"valid_issuers\": \"array\", \"signing_keys\": {\"kind\": \"undefined\", \"keys\": \"object\", \"url\": \"string\", \"cache_duration\": 123}}}, \"secret_size\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "add_groups",
              "default_group"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of this application. Application names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of this application."
              },
              "add_groups": {
                "type": "object",
                "description": "Map from UUIDs to group permissions",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Permissions allowed to be performed by an app.",
                    "enum": [
                      "ENCRYPT",
                      "DECRYPT",
                      "MASKDECRYPT",
                      "WRAPKEY",
                      "UNWRAPKEY",
                      "DERIVEKEY",
                      "MACGENERATE",
                      "MACVERIFY",
                      "MANAGE",
                      "SIGN",
                      "VERIFY",
                      "AGREEKEY",
                      "EXPORT"
                    ]
                  }
                }
              },
              "del_groups": {
                "type": "array",
                "description": "Array of UUID of group",
                "items": {
                  "type": "string",
                  "description": "A group ID (not name or description)."
                }
              },
              "mod_groups": {
                "type": "object",
                "description": "Map from UUIDs to group permissions",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Permissions allowed to be performed by an app.",
                    "enum": [
                      "ENCRYPT",
                      "DECRYPT",
                      "MASKDECRYPT",
                      "WRAPKEY",
                      "UNWRAPKEY",
                      "DERIVEKEY",
                      "MACGENERATE",
                      "MACVERIFY",
                      "MANAGE",
                      "SIGN",
                      "VERIFY",
                      "AGREEKEY",
                      "EXPORT"
                    ]
                  }
                }
              },
              "default_group": {
                "type": "string",
                "description": "The default group of this application. This is the group where security objects will be created by default by this application."
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this application is enabled"
              },
              "AppOauthConfig": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "Oauth configuration for this application.",
                "properties": {
                  "redirect_uris": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "list of redirect uris for oauth"
                    }
                  },
                  "disabled": {
                    "type": "boolean",
                    "description": "Whether oauth for this app is disabled"
                  }
                }
              },
              "interface": {
                "type": "string",
                "description": "Interface used with this application (PKCS11, CNG, JCE, KMIP, etc.)."
              },
              "app_type": {
                "type": "string",
                "description": "The user-defined type of this application."
              },
              "credential": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "Credential for an application.",
                "properties": {
                  "secret": {
                    "type": "string"
                  },
                  "certificate": {
                    "type": "string"
                  },
                  "trustedca": {
                    "type": "object",
                    "required": [
                      "ca_certificate"
                    ],
                    "properties": {
                      "subject": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "minItems": 2,
                          "maxItems": 2,
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "ca_certificate": {
                        "type": "string"
                      }
                    }
                  },
                  "googleserviceaccount": {
                    "type": "object"
                  },
                  "signedjwt": {
                    "type": "object",
                    "description": "Configuration for signed JWT authentication.",
                    "required": [
                      "valid_issuers",
                      "signing_keys"
                    ],
                    "properties": {
                      "valid_issuers": {
                        "type": "array",
                        "description": "An array of valid issuers. JWT presented for authentication must have one of these issuers.",
                        "items": {
                          "type": "string",
                          "description": "A valid issuer."
                        }
                      },
                      "signing_keys": {
                        "type": "object",
                        "description": "Details of signning key that will be used for signature verification.",
                        "required": [
                          "kind"
                        ],
                        "properties": {
                          "kind": {
                            "type": "object",
                            "description": "Type of signing key, fetched or stored"
                          },
                          "keys": {
                            "type": "object",
                            "description": "In case of \"stored\" kind, a map of key ids (arbitrary strings) to base64-encoded DER keys",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "url": {
                            "type": "string",
                            "description": "In case of \"fetched\" kind, URL for fetching public key for verification of JWT signature"
                          },
                          "cache_duration": {
                            "type": "integer",
                            "description": "In case of \"fetched\" kind, duration for which the public key can be cached"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "secret_size": {
                "type": "integer",
                "format": "int32",
                "description": "Size in bytes of app's secret."
              }
            }
          }
        }
      ],
      "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": "/createApp"
      },
      "task": true
    },
    {
      "name": "getApp",
      "summary": "Get a specific application",
      "description": "Look up an application by application ID.",
      "input": [
        {
          "name": "appId",
          "type": "string",
          "info": "Application Identifier: string",
          "required": true,
          "schema": {
            "title": "appId",
            "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": "/getApp"
      },
      "task": true
    },
    {
      "name": "deleteApp",
      "summary": "Delete application",
      "description": "Remove an application from SmartKey.",
      "input": [
        {
          "name": "appId",
          "type": "string",
          "info": "Application Identifier: string",
          "required": true,
          "schema": {
            "title": "appId",
            "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": "/deleteApp"
      },
      "task": true
    },
    {
      "name": "updateApp",
      "summary": "Update an application",
      "description": "Change an application's properties, such as name, description, or group membership.",
      "input": [
        {
          "name": "appId",
          "type": "string",
          "info": "Application Identifier: string",
          "required": true,
          "schema": {
            "title": "appId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Properties of application to create: {\"name\": \"string\", \"description\": \"string\", \"add_groups\": \"object\", \"del_groups\": \"array\", \"mod_groups\": \"object\", \"default_group\": \"string\", \"enabled\": \"boolean\", \"AppOauthConfig\": {\"redirect_uris\": \"array\", \"disabled\": \"boolean\"}, \"interface\": \"string\", \"app_type\": \"string\", \"credential\": {\"secret\": \"string\", \"certificate\": \"string\", \"trustedca\": {\"subject\": \"array\", \"ca_certificate\": \"string\"}, \"googleserviceaccount\": \"object\", \"signedjwt\": {\"valid_issuers\": \"array\", \"signing_keys\": {\"kind\": \"undefined\", \"keys\": \"object\", \"url\": \"string\", \"cache_duration\": 123}}}, \"secret_size\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "add_groups",
              "default_group"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of this application. Application names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of this application."
              },
              "add_groups": {
                "type": "object",
                "description": "Map from UUIDs to group permissions",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Permissions allowed to be performed by an app.",
                    "enum": [
                      "ENCRYPT",
                      "DECRYPT",
                      "MASKDECRYPT",
                      "WRAPKEY",
                      "UNWRAPKEY",
                      "DERIVEKEY",
                      "MACGENERATE",
                      "MACVERIFY",
                      "MANAGE",
                      "SIGN",
                      "VERIFY",
                      "AGREEKEY",
                      "EXPORT"
                    ]
                  }
                }
              },
              "del_groups": {
                "type": "array",
                "description": "Array of UUID of group",
                "items": {
                  "type": "string",
                  "description": "A group ID (not name or description)."
                }
              },
              "mod_groups": {
                "type": "object",
                "description": "Map from UUIDs to group permissions",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Permissions allowed to be performed by an app.",
                    "enum": [
                      "ENCRYPT",
                      "DECRYPT",
                      "MASKDECRYPT",
                      "WRAPKEY",
                      "UNWRAPKEY",
                      "DERIVEKEY",
                      "MACGENERATE",
                      "MACVERIFY",
                      "MANAGE",
                      "SIGN",
                      "VERIFY",
                      "AGREEKEY",
                      "EXPORT"
                    ]
                  }
                }
              },
              "default_group": {
                "type": "string",
                "description": "The default group of this application. This is the group where security objects will be created by default by this application."
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this application is enabled"
              },
              "AppOauthConfig": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "Oauth configuration for this application.",
                "properties": {
                  "redirect_uris": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "list of redirect uris for oauth"
                    }
                  },
                  "disabled": {
                    "type": "boolean",
                    "description": "Whether oauth for this app is disabled"
                  }
                }
              },
              "interface": {
                "type": "string",
                "description": "Interface used with this application (PKCS11, CNG, JCE, KMIP, etc.)."
              },
              "app_type": {
                "type": "string",
                "description": "The user-defined type of this application."
              },
              "credential": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "Credential for an application.",
                "properties": {
                  "secret": {
                    "type": "string"
                  },
                  "certificate": {
                    "type": "string"
                  },
                  "trustedca": {
                    "type": "object",
                    "required": [
                      "ca_certificate"
                    ],
                    "properties": {
                      "subject": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "minItems": 2,
                          "maxItems": 2,
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "ca_certificate": {
                        "type": "string"
                      }
                    }
                  },
                  "googleserviceaccount": {
                    "type": "object"
                  },
                  "signedjwt": {
                    "type": "object",
                    "description": "Configuration for signed JWT authentication.",
                    "required": [
                      "valid_issuers",
                      "signing_keys"
                    ],
                    "properties": {
                      "valid_issuers": {
                        "type": "array",
                        "description": "An array of valid issuers. JWT presented for authentication must have one of these issuers.",
                        "items": {
                          "type": "string",
                          "description": "A valid issuer."
                        }
                      },
                      "signing_keys": {
                        "type": "object",
                        "description": "Details of signning key that will be used for signature verification.",
                        "required": [
                          "kind"
                        ],
                        "properties": {
                          "kind": {
                            "type": "object",
                            "description": "Type of signing key, fetched or stored"
                          },
                          "keys": {
                            "type": "object",
                            "description": "In case of \"stored\" kind, a map of key ids (arbitrary strings) to base64-encoded DER keys",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "url": {
                            "type": "string",
                            "description": "In case of \"fetched\" kind, URL for fetching public key for verification of JWT signature"
                          },
                          "cache_duration": {
                            "type": "integer",
                            "description": "In case of \"fetched\" kind, duration for which the public key can be cached"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "secret_size": {
                "type": "integer",
                "format": "int32",
                "description": "Size in bytes of app's secret."
              }
            }
          }
        }
      ],
      "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": "/updateApp"
      },
      "task": true
    },
    {
      "name": "regenerateApiKey",
      "summary": "Regenerate API key",
      "description": "Create a new API key for an application. An application may only have one valid API key at a time, so performing this action will invalidate all old API keys. This does not invalidate existing sessions, so any applications with an existing open session will be able to continue operating with their old session until those sessions expire.\n",
      "input": [
        {
          "name": "appId",
          "type": "string",
          "info": "Application Identifier: string",
          "required": true,
          "schema": {
            "title": "appId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Decryption request: {\"secret_size\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "secret_size": {
                "type": "integer",
                "format": "int32",
                "description": "Size in bytes of app's secret."
              }
            }
          }
        }
      ],
      "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": "/regenerateApiKey"
      },
      "task": true
    },
    {
      "name": "getCredential",
      "summary": "Get a specific application's credential",
      "description": "Retrieve the authentication credential (API key or certificate) for a particular application. Only users who are an administrator of at least one of the application's groups can retrieve the credential.",
      "input": [
        {
          "name": "appId",
          "type": "string",
          "info": "Application Identifier: string",
          "required": true,
          "schema": {
            "title": "appId",
            "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": "/getCredential"
      },
      "task": true
    },
    {
      "name": "getGroups",
      "summary": "Get all groups",
      "description": "Get detailed information about all groups the authenticated User or authenticated Application belongs to.",
      "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": "/getGroups"
      },
      "task": true
    },
    {
      "name": "createGroup",
      "summary": "Create new group",
      "description": "Create a new group with the specified properties.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Name of group: {\"name\": \"string\", \"description\": \"string\", \"acct_id\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the group. Group names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the group."
              },
              "acct_id": {
                "type": "string",
                "description": "Account ID of the account the new group will belong to."
              }
            }
          }
        }
      ],
      "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": "/createGroup"
      },
      "task": true
    },
    {
      "name": "getGroup",
      "summary": "Get a specific group",
      "description": "Look up a specific group by group ID.",
      "input": [
        {
          "name": "groupId",
          "type": "string",
          "info": "Group Identifier: string",
          "required": true,
          "schema": {
            "title": "groupId",
            "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": "/getGroup"
      },
      "task": true
    },
    {
      "name": "deleteGroup",
      "summary": "Delete group",
      "description": "Remove a group from SmartKey.",
      "input": [
        {
          "name": "groupId",
          "type": "string",
          "info": "Group Identifier: string",
          "required": true,
          "schema": {
            "title": "groupId",
            "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": "/deleteGroup"
      },
      "task": true
    },
    {
      "name": "updateGroup",
      "summary": "Update group",
      "description": "Change a group's properties.",
      "input": [
        {
          "name": "groupId",
          "type": "string",
          "info": "Group Identifier: string",
          "required": true,
          "schema": {
            "title": "groupId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Name of group: {\"name\": \"string\", \"description\": \"string\", \"acct_id\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the group. Group names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of the group."
              },
              "acct_id": {
                "type": "string",
                "description": "Account ID of the account the new group will belong to."
              }
            }
          }
        }
      ],
      "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": "/updateGroup"
      },
      "task": true
    },
    {
      "name": "getAccounts",
      "summary": "Get all accounts",
      "description": "Get detailed information on all accounts the current user has access to.",
      "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": "/getAccounts"
      },
      "task": true
    },
    {
      "name": "createAccount",
      "summary": "Create a new account",
      "description": "Create a new account with the specified properties.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Properties to assign to Account.: {\"name\": \"string\", \"description\": \"string\", \"organization\": \"string\", \"country\": \"string\", \"phone\": \"string\", \"notification_pref\": \"Must be one of [None, Email, Phone, Both]\", \"auth_config\": {\"password\": {\"require_2fa\": \"boolean\", \"administrators_only\": \"boolean\"}, \"saml\": \"string\", \"signed_jwt\": {\"valid_issuers\": \"array\", \"signing_keys\": {\"kind\": \"undefined\", \"keys\": \"object\", \"url\": \"string\", \"cache_duration\": 123}}}, \"add_logging_configs\": [{\"splunk\": {\"host\": \"string\", \"port\": 123, \"index\": \"string\", \"token\": \"string\", \"tls\": {\"mode\": \"object\", \"validate_hostname\": \"boolean\", \"ca\": \"object\"}, \"enabled\": \"boolean\"}, \"stackdriver\": {\"log_id\": \"string\", \"service_account_key\": {\"type\": \"string\", \"project_id\": \"string\", \"private_key_id\": \"string\", \"private_key\": \"string\", \"client_email\": \"string\"}, \"enabled\": \"boolean\"}}], \"mod_logging_configs\": \"object\", \"del_logging_configs\": \"array\", \"pending_subscription_change_request\": {\"subscription\": \"object\", \"contact\": \"string\", \"comment\": \"string\"}, \"enabled\": \"boolean\", \"subscription\": \"object\", \"custom_metadata\": \"object\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the account. Accounts must be unique within an SmartKey instance."
              },
              "description": {
                "type": "string",
                "description": "Account ID uniquely identifying this account."
              },
              "organization": {
                "type": "string",
                "description": "Organization (e.g. company name) that owns this account"
              },
              "country": {
                "type": "string",
                "description": "Main country associated with this account"
              },
              "phone": {
                "type": "string",
                "description": "Contact phone number associated with this account"
              },
              "notification_pref": {
                "type": "string",
                "description": "Type of notification preference.",
                "enum": [
                  "None",
                  "Email",
                  "Phone",
                  "Both"
                ]
              },
              "auth_config": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "object",
                    "description": "Configuration for password-based authentication.",
                    "required": [
                      "require_2fa",
                      "administrators_only"
                    ],
                    "properties": {
                      "require_2fa": {
                        "type": "boolean",
                        "description": "Reserved for future use, must be false."
                      },
                      "administrators_only": {
                        "type": "boolean",
                        "description": "Reserved for future use, must be false."
                      }
                    }
                  },
                  "saml": {
                    "type": "string",
                    "description": "XML metadata for a SAML 2.0 Identity Provider (IdP)."
                  },
                  "signed_jwt": {
                    "type": "object",
                    "description": "Configuration for signed JWT authentication.",
                    "required": [
                      "valid_issuers",
                      "signing_keys"
                    ],
                    "properties": {
                      "valid_issuers": {
                        "type": "array",
                        "description": "An array of valid issuers. JWT presented for authentication must have one of these issuers.",
                        "items": {
                          "type": "string",
                          "description": "A valid issuer."
                        }
                      },
                      "signing_keys": {
                        "type": "object",
                        "description": "Details of signning key that will be used for signature verification.",
                        "required": [
                          "kind"
                        ],
                        "properties": {
                          "kind": {
                            "type": "object",
                            "description": "Type of signing key, fetched or stored"
                          },
                          "keys": {
                            "type": "object",
                            "description": "In case of \"stored\" kind, a map of key ids (arbitrary strings) to base64-encoded DER keys",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "url": {
                            "type": "string",
                            "description": "In case of \"fetched\" kind, URL for fetching public key for verification of JWT signature"
                          },
                          "cache_duration": {
                            "type": "integer",
                            "description": "In case of \"fetched\" kind, duration for which the public key can be cached"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "add_logging_configs": {
                "type": "array",
                "items": {
                  "type": "object",
                  "minProperties": 1,
                  "maxProperties": 1,
                  "properties": {
                    "splunk": {
                      "type": "object",
                      "properties": {
                        "host": {
                          "type": "string"
                        },
                        "port": {
                          "type": "integer"
                        },
                        "index": {
                          "type": "string",
                          "description": "The Splunk index that will receive log items"
                        },
                        "token": {
                          "type": "string",
                          "description": "The Splunk authentication token"
                        },
                        "tls": {
                          "type": "object",
                          "required": [
                            "mode"
                          ],
                          "properties": {
                            "mode": {
                              "type": "object",
                              "description": ""
                            },
                            "validate_hostname": {
                              "type": "boolean"
                            },
                            "ca": {
                              "type": "object",
                              "description": ""
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "stackdriver": {
                      "type": "object",
                      "properties": {
                        "log_id": {
                          "type": "string",
                          "description": "The log ID that will recieve the log items (see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)."
                        },
                        "service_account_key": {
                          "type": "object",
                          "required": [
                            "type",
                            "project_id",
                            "private_key_id",
                            "client_email"
                          ],
                          "description": "A Google service account key object. See https://cloud.google.com/video-intelligence/docs/common/auth.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "Must be \"service_account\""
                            },
                            "project_id": {
                              "type": "string"
                            },
                            "private_key_id": {
                              "type": "string"
                            },
                            "private_key": {
                              "type": "string"
                            },
                            "client_email": {
                              "type": "string"
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              },
              "mod_logging_configs": {
                "type": "object",
                "description": "Map from UUIDs to LoggingConfigRequest objects",
                "additionalProperties": {
                  "type": "object",
                  "minProperties": 1,
                  "maxProperties": 1,
                  "properties": {
                    "splunk": {
                      "type": "object",
                      "properties": {
                        "host": {
                          "type": "string"
                        },
                        "port": {
                          "type": "integer"
                        },
                        "index": {
                          "type": "string",
                          "description": "The Splunk index that will receive log items"
                        },
                        "token": {
                          "type": "string",
                          "description": "The Splunk authentication token"
                        },
                        "tls": {
                          "type": "object",
                          "required": [
                            "mode"
                          ],
                          "properties": {
                            "mode": {
                              "type": "object",
                              "description": ""
                            },
                            "validate_hostname": {
                              "type": "boolean"
                            },
                            "ca": {
                              "type": "object",
                              "description": ""
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "stackdriver": {
                      "type": "object",
                      "properties": {
                        "log_id": {
                          "type": "string",
                          "description": "The log ID that will recieve the log items (see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)."
                        },
                        "service_account_key": {
                          "type": "object",
                          "required": [
                            "type",
                            "project_id",
                            "private_key_id",
                            "client_email"
                          ],
                          "description": "A Google service account key object. See https://cloud.google.com/video-intelligence/docs/common/auth.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "Must be \"service_account\""
                            },
                            "project_id": {
                              "type": "string"
                            },
                            "private_key_id": {
                              "type": "string"
                            },
                            "private_key": {
                              "type": "string"
                            },
                            "client_email": {
                              "type": "string"
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              },
              "del_logging_configs": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Uuid format string, example - a41152ed-c26e-4c6e-a8d1-8820e36972c3"
                }
              },
              "pending_subscription_change_request": {
                "type": "object",
                "description": "Describes a request to update subscription.",
                "required": [
                  "subscription"
                ],
                "properties": {
                  "subscription": {
                    "type": "object",
                    "description": "Type of Subscription."
                  },
                  "contact": {
                    "type": "string",
                    "description": "contact information, e.g. phone number"
                  },
                  "comment": {
                    "type": "string",
                    "description": "additional comments"
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this account is enabled. This may only be changed by sysadmins."
              },
              "subscription": {
                "type": "object",
                "description": "Type of Subscription."
              },
              "custom_metadata": {
                "type": "object",
                "description": "Sysadmin-defined metadata for this account. Stored as key-value pairs. This field may only be used by sysadmin users.\n",
                "additionalProperties": {
                  "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": "/createAccount"
      },
      "task": true
    },
    {
      "name": "getAccount",
      "summary": "Get a specific account",
      "description": "Look up an account by account ID.",
      "input": [
        {
          "name": "accountId",
          "type": "string",
          "info": "Account Identifier: string",
          "required": true,
          "schema": {
            "title": "accountId",
            "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": "/getAccount"
      },
      "task": true
    },
    {
      "name": "deleteAccount",
      "summary": "Delete account",
      "description": "Remove an account from SmartKey.",
      "input": [
        {
          "name": "accountId",
          "type": "string",
          "info": "Account Identifier: string",
          "required": true,
          "schema": {
            "title": "accountId",
            "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": "/deleteAccount"
      },
      "task": true
    },
    {
      "name": "updateAccount",
      "summary": "Update account",
      "description": "Update the properties of an account. Only certain properties may be changed with this API.\n",
      "input": [
        {
          "name": "accountId",
          "type": "string",
          "info": "Account Identifier: string",
          "required": true,
          "schema": {
            "title": "accountId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Properties to assign to Account.: {\"name\": \"string\", \"description\": \"string\", \"organization\": \"string\", \"country\": \"string\", \"phone\": \"string\", \"notification_pref\": \"Must be one of [None, Email, Phone, Both]\", \"auth_config\": {\"password\": {\"require_2fa\": \"boolean\", \"administrators_only\": \"boolean\"}, \"saml\": \"string\", \"signed_jwt\": {\"valid_issuers\": \"array\", \"signing_keys\": {\"kind\": \"undefined\", \"keys\": \"object\", \"url\": \"string\", \"cache_duration\": 123}}}, \"add_logging_configs\": [{\"splunk\": {\"host\": \"string\", \"port\": 123, \"index\": \"string\", \"token\": \"string\", \"tls\": {\"mode\": \"object\", \"validate_hostname\": \"boolean\", \"ca\": \"object\"}, \"enabled\": \"boolean\"}, \"stackdriver\": {\"log_id\": \"string\", \"service_account_key\": {\"type\": \"string\", \"project_id\": \"string\", \"private_key_id\": \"string\", \"private_key\": \"string\", \"client_email\": \"string\"}, \"enabled\": \"boolean\"}}], \"mod_logging_configs\": \"object\", \"del_logging_configs\": \"array\", \"pending_subscription_change_request\": {\"subscription\": \"object\", \"contact\": \"string\", \"comment\": \"string\"}, \"enabled\": \"boolean\", \"subscription\": \"object\", \"custom_metadata\": \"object\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the account. Accounts must be unique within an SmartKey instance."
              },
              "description": {
                "type": "string",
                "description": "Account ID uniquely identifying this account."
              },
              "organization": {
                "type": "string",
                "description": "Organization (e.g. company name) that owns this account"
              },
              "country": {
                "type": "string",
                "description": "Main country associated with this account"
              },
              "phone": {
                "type": "string",
                "description": "Contact phone number associated with this account"
              },
              "notification_pref": {
                "type": "string",
                "description": "Type of notification preference.",
                "enum": [
                  "None",
                  "Email",
                  "Phone",
                  "Both"
                ]
              },
              "auth_config": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "object",
                    "description": "Configuration for password-based authentication.",
                    "required": [
                      "require_2fa",
                      "administrators_only"
                    ],
                    "properties": {
                      "require_2fa": {
                        "type": "boolean",
                        "description": "Reserved for future use, must be false."
                      },
                      "administrators_only": {
                        "type": "boolean",
                        "description": "Reserved for future use, must be false."
                      }
                    }
                  },
                  "saml": {
                    "type": "string",
                    "description": "XML metadata for a SAML 2.0 Identity Provider (IdP)."
                  },
                  "signed_jwt": {
                    "type": "object",
                    "description": "Configuration for signed JWT authentication.",
                    "required": [
                      "valid_issuers",
                      "signing_keys"
                    ],
                    "properties": {
                      "valid_issuers": {
                        "type": "array",
                        "description": "An array of valid issuers. JWT presented for authentication must have one of these issuers.",
                        "items": {
                          "type": "string",
                          "description": "A valid issuer."
                        }
                      },
                      "signing_keys": {
                        "type": "object",
                        "description": "Details of signning key that will be used for signature verification.",
                        "required": [
                          "kind"
                        ],
                        "properties": {
                          "kind": {
                            "type": "object",
                            "description": "Type of signing key, fetched or stored"
                          },
                          "keys": {
                            "type": "object",
                            "description": "In case of \"stored\" kind, a map of key ids (arbitrary strings) to base64-encoded DER keys",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "url": {
                            "type": "string",
                            "description": "In case of \"fetched\" kind, URL for fetching public key for verification of JWT signature"
                          },
                          "cache_duration": {
                            "type": "integer",
                            "description": "In case of \"fetched\" kind, duration for which the public key can be cached"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "add_logging_configs": {
                "type": "array",
                "items": {
                  "type": "object",
                  "minProperties": 1,
                  "maxProperties": 1,
                  "properties": {
                    "splunk": {
                      "type": "object",
                      "properties": {
                        "host": {
                          "type": "string"
                        },
                        "port": {
                          "type": "integer"
                        },
                        "index": {
                          "type": "string",
                          "description": "The Splunk index that will receive log items"
                        },
                        "token": {
                          "type": "string",
                          "description": "The Splunk authentication token"
                        },
                        "tls": {
                          "type": "object",
                          "required": [
                            "mode"
                          ],
                          "properties": {
                            "mode": {
                              "type": "object",
                              "description": ""
                            },
                            "validate_hostname": {
                              "type": "boolean"
                            },
                            "ca": {
                              "type": "object",
                              "description": ""
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "stackdriver": {
                      "type": "object",
                      "properties": {
                        "log_id": {
                          "type": "string",
                          "description": "The log ID that will recieve the log items (see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)."
                        },
                        "service_account_key": {
                          "type": "object",
                          "required": [
                            "type",
                            "project_id",
                            "private_key_id",
                            "client_email"
                          ],
                          "description": "A Google service account key object. See https://cloud.google.com/video-intelligence/docs/common/auth.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "Must be \"service_account\""
                            },
                            "project_id": {
                              "type": "string"
                            },
                            "private_key_id": {
                              "type": "string"
                            },
                            "private_key": {
                              "type": "string"
                            },
                            "client_email": {
                              "type": "string"
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              },
              "mod_logging_configs": {
                "type": "object",
                "description": "Map from UUIDs to LoggingConfigRequest objects",
                "additionalProperties": {
                  "type": "object",
                  "minProperties": 1,
                  "maxProperties": 1,
                  "properties": {
                    "splunk": {
                      "type": "object",
                      "properties": {
                        "host": {
                          "type": "string"
                        },
                        "port": {
                          "type": "integer"
                        },
                        "index": {
                          "type": "string",
                          "description": "The Splunk index that will receive log items"
                        },
                        "token": {
                          "type": "string",
                          "description": "The Splunk authentication token"
                        },
                        "tls": {
                          "type": "object",
                          "required": [
                            "mode"
                          ],
                          "properties": {
                            "mode": {
                              "type": "object",
                              "description": ""
                            },
                            "validate_hostname": {
                              "type": "boolean"
                            },
                            "ca": {
                              "type": "object",
                              "description": ""
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "stackdriver": {
                      "type": "object",
                      "properties": {
                        "log_id": {
                          "type": "string",
                          "description": "The log ID that will recieve the log items (see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)."
                        },
                        "service_account_key": {
                          "type": "object",
                          "required": [
                            "type",
                            "project_id",
                            "private_key_id",
                            "client_email"
                          ],
                          "description": "A Google service account key object. See https://cloud.google.com/video-intelligence/docs/common/auth.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "Must be \"service_account\""
                            },
                            "project_id": {
                              "type": "string"
                            },
                            "private_key_id": {
                              "type": "string"
                            },
                            "private_key": {
                              "type": "string"
                            },
                            "client_email": {
                              "type": "string"
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              },
              "del_logging_configs": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Uuid format string, example - a41152ed-c26e-4c6e-a8d1-8820e36972c3"
                }
              },
              "pending_subscription_change_request": {
                "type": "object",
                "description": "Describes a request to update subscription.",
                "required": [
                  "subscription"
                ],
                "properties": {
                  "subscription": {
                    "type": "object",
                    "description": "Type of Subscription."
                  },
                  "contact": {
                    "type": "string",
                    "description": "contact information, e.g. phone number"
                  },
                  "comment": {
                    "type": "string",
                    "description": "additional comments"
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this account is enabled. This may only be changed by sysadmins."
              },
              "subscription": {
                "type": "object",
                "description": "Type of Subscription."
              },
              "custom_metadata": {
                "type": "object",
                "description": "Sysadmin-defined metadata for this account. Stored as key-value pairs. This field may only be used by sysadmin users.\n",
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "name",
            "acct_id",
            "subscription",
            "state",
            "auth_type"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the account. Account names must be unique within an SmartKey instance."
            },
            "acct_id": {
              "type": "string",
              "description": "Account ID uniquely identifying this account."
            },
            "description": {
              "type": "string",
              "description": "Description of this account."
            },
            "organization": {
              "type": "string",
              "description": "Organization (e.g. company name) that owns this account"
            },
            "country": {
              "type": "string",
              "description": "Main country associated with this account"
            },
            "phone": {
              "type": "string",
              "description": "Contact phone number associated with this account"
            },
            "notification_pref": {
              "type": "string",
              "description": "Type of notification preference.",
              "enum": [
                "None",
                "Email",
                "Phone",
                "Both"
              ]
            },
            "auth_config": {
              "type": "object",
              "properties": {
                "password": {
                  "type": "object",
                  "description": "Configuration for password-based authentication.",
                  "required": [
                    "require_2fa",
                    "administrators_only"
                  ],
                  "properties": {
                    "require_2fa": {
                      "type": "boolean",
                      "description": "Reserved for future use, must be false."
                    },
                    "administrators_only": {
                      "type": "boolean",
                      "description": "Reserved for future use, must be false."
                    }
                  }
                },
                "saml": {
                  "type": "string",
                  "description": "XML metadata for a SAML 2.0 Identity Provider (IdP)."
                },
                "signed_jwt": {
                  "type": "object",
                  "description": "Configuration for signed JWT authentication.",
                  "required": [
                    "valid_issuers",
                    "signing_keys"
                  ],
                  "properties": {
                    "valid_issuers": {
                      "type": "array",
                      "description": "An array of valid issuers. JWT presented for authentication must have one of these issuers.",
                      "items": {
                        "type": "string",
                        "description": "A valid issuer."
                      }
                    },
                    "signing_keys": {
                      "type": "object",
                      "description": "Details of signning key that will be used for signature verification.",
                      "required": [
                        "kind"
                      ],
                      "properties": {
                        "kind": {
                          "type": "object",
                          "description": "Type of signing key, fetched or stored"
                        },
                        "keys": {
                          "type": "object",
                          "description": "In case of \"stored\" kind, a map of key ids (arbitrary strings) to base64-encoded DER keys",
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "url": {
                          "type": "string",
                          "description": "In case of \"fetched\" kind, URL for fetching public key for verification of JWT signature"
                        },
                        "cache_duration": {
                          "type": "integer",
                          "description": "In case of \"fetched\" kind, duration for which the public key can be cached"
                        }
                      }
                    }
                  }
                }
              }
            },
            "subscription": {
              "type": "object",
              "description": "Type of Subscription."
            },
            "state": {
              "type": "string",
              "description": "State of account.",
              "enum": [
                "PendingConfirmation",
                "Activated",
                "Disabled"
              ]
            },
            "auth_type": {
              "type": "string",
              "description": "Type of authentication.",
              "enum": [
                "Fortanix",
                "FortanixMFA",
                "External"
              ]
            },
            "logging_configs": {
              "type": "object",
              "description": "Map from UUIDs to LoggingConfig objects",
              "additionalProperties": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "properties": {
                  "splunk": {
                    "type": "object",
                    "required": [
                      "host",
                      "port",
                      "index",
                      "tls",
                      "enabled"
                    ],
                    "properties": {
                      "host": {
                        "type": "string"
                      },
                      "port": {
                        "type": "integer"
                      },
                      "index": {
                        "type": "string",
                        "description": "The Splunk index that will receive log items"
                      },
                      "tls": {
                        "type": "object",
                        "required": [
                          "mode"
                        ],
                        "properties": {
                          "mode": {
                            "type": "object",
                            "description": ""
                          },
                          "validate_hostname": {
                            "type": "boolean"
                          },
                          "ca": {
                            "type": "object",
                            "description": ""
                          }
                        }
                      },
                      "enabled": {
                        "type": "boolean"
                      }
                    }
                  },
                  "stackdriver": {
                    "type": "object",
                    "required": [
                      "log_id",
                      "service_account_key",
                      "enabled"
                    ],
                    "properties": {
                      "log_id": {
                        "type": "string",
                        "description": "The log ID that will recieve the log items (see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)."
                      },
                      "service_account_key": {
                        "type": "object",
                        "required": [
                          "type",
                          "project_id",
                          "private_key_id",
                          "client_email"
                        ],
                        "description": "A Google service account key object. See https://cloud.google.com/video-intelligence/docs/common/auth.",
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "Must be \"service_account\""
                          },
                          "project_id": {
                            "type": "string"
                          },
                          "private_key_id": {
                            "type": "string"
                          },
                          "private_key": {
                            "type": "string"
                          },
                          "client_email": {
                            "type": "string"
                          }
                        }
                      },
                      "enabled": {
                        "type": "boolean"
                      }
                    }
                  }
                }
              }
            },
            "enabled": {
              "type": "boolean",
              "description": "Whether this account is enabled. This may only be changed by sysadmins."
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this account was created."
            },
            "initial_purchase_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this accout was upgraded a paid subscription."
            },
            "pending_subscription_change_request": {
              "type": "object",
              "description": "Describes a request to update subscription.",
              "required": [
                "subscription"
              ],
              "properties": {
                "subscription": {
                  "type": "object",
                  "description": "Type of Subscription."
                },
                "contact": {
                  "type": "string",
                  "description": "contact information, e.g. phone number"
                },
                "comment": {
                  "type": "string",
                  "description": "additional comments"
                }
              }
            },
            "custom_metadata": {
              "type": "object",
              "description": "Sysadmin-defined metadata for this account. Stored as key-value pairs. This field is only visible to sysadmin users.\n",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateAccount"
      },
      "task": true
    },
    {
      "name": "createChildAccount",
      "summary": "Create a new child account",
      "description": "Create a new child account with the specified properties.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Properties to assign to Account.: {\"name\": \"string\", \"description\": \"string\", \"organization\": \"string\", \"country\": \"string\", \"phone\": \"string\", \"notification_pref\": \"Must be one of [None, Email, Phone, Both]\", \"auth_config\": {\"password\": {\"require_2fa\": \"boolean\", \"administrators_only\": \"boolean\"}, \"saml\": \"string\", \"signed_jwt\": {\"valid_issuers\": \"array\", \"signing_keys\": {\"kind\": \"undefined\", \"keys\": \"object\", \"url\": \"string\", \"cache_duration\": 123}}}, \"add_logging_configs\": [{\"splunk\": {\"host\": \"string\", \"port\": 123, \"index\": \"string\", \"token\": \"string\", \"tls\": {\"mode\": \"object\", \"validate_hostname\": \"boolean\", \"ca\": \"object\"}, \"enabled\": \"boolean\"}, \"stackdriver\": {\"log_id\": \"string\", \"service_account_key\": {\"type\": \"string\", \"project_id\": \"string\", \"private_key_id\": \"string\", \"private_key\": \"string\", \"client_email\": \"string\"}, \"enabled\": \"boolean\"}}], \"mod_logging_configs\": \"object\", \"del_logging_configs\": \"array\", \"pending_subscription_change_request\": {\"subscription\": \"object\", \"contact\": \"string\", \"comment\": \"string\"}, \"enabled\": \"boolean\", \"subscription\": \"object\", \"custom_metadata\": \"object\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the account. Accounts must be unique within an SmartKey instance."
              },
              "description": {
                "type": "string",
                "description": "Account ID uniquely identifying this account."
              },
              "organization": {
                "type": "string",
                "description": "Organization (e.g. company name) that owns this account"
              },
              "country": {
                "type": "string",
                "description": "Main country associated with this account"
              },
              "phone": {
                "type": "string",
                "description": "Contact phone number associated with this account"
              },
              "notification_pref": {
                "type": "string",
                "description": "Type of notification preference.",
                "enum": [
                  "None",
                  "Email",
                  "Phone",
                  "Both"
                ]
              },
              "auth_config": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "object",
                    "description": "Configuration for password-based authentication.",
                    "required": [
                      "require_2fa",
                      "administrators_only"
                    ],
                    "properties": {
                      "require_2fa": {
                        "type": "boolean",
                        "description": "Reserved for future use, must be false."
                      },
                      "administrators_only": {
                        "type": "boolean",
                        "description": "Reserved for future use, must be false."
                      }
                    }
                  },
                  "saml": {
                    "type": "string",
                    "description": "XML metadata for a SAML 2.0 Identity Provider (IdP)."
                  },
                  "signed_jwt": {
                    "type": "object",
                    "description": "Configuration for signed JWT authentication.",
                    "required": [
                      "valid_issuers",
                      "signing_keys"
                    ],
                    "properties": {
                      "valid_issuers": {
                        "type": "array",
                        "description": "An array of valid issuers. JWT presented for authentication must have one of these issuers.",
                        "items": {
                          "type": "string",
                          "description": "A valid issuer."
                        }
                      },
                      "signing_keys": {
                        "type": "object",
                        "description": "Details of signning key that will be used for signature verification.",
                        "required": [
                          "kind"
                        ],
                        "properties": {
                          "kind": {
                            "type": "object",
                            "description": "Type of signing key, fetched or stored"
                          },
                          "keys": {
                            "type": "object",
                            "description": "In case of \"stored\" kind, a map of key ids (arbitrary strings) to base64-encoded DER keys",
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "url": {
                            "type": "string",
                            "description": "In case of \"fetched\" kind, URL for fetching public key for verification of JWT signature"
                          },
                          "cache_duration": {
                            "type": "integer",
                            "description": "In case of \"fetched\" kind, duration for which the public key can be cached"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "add_logging_configs": {
                "type": "array",
                "items": {
                  "type": "object",
                  "minProperties": 1,
                  "maxProperties": 1,
                  "properties": {
                    "splunk": {
                      "type": "object",
                      "properties": {
                        "host": {
                          "type": "string"
                        },
                        "port": {
                          "type": "integer"
                        },
                        "index": {
                          "type": "string",
                          "description": "The Splunk index that will receive log items"
                        },
                        "token": {
                          "type": "string",
                          "description": "The Splunk authentication token"
                        },
                        "tls": {
                          "type": "object",
                          "required": [
                            "mode"
                          ],
                          "properties": {
                            "mode": {
                              "type": "object",
                              "description": ""
                            },
                            "validate_hostname": {
                              "type": "boolean"
                            },
                            "ca": {
                              "type": "object",
                              "description": ""
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "stackdriver": {
                      "type": "object",
                      "properties": {
                        "log_id": {
                          "type": "string",
                          "description": "The log ID that will recieve the log items (see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)."
                        },
                        "service_account_key": {
                          "type": "object",
                          "required": [
                            "type",
                            "project_id",
                            "private_key_id",
                            "client_email"
                          ],
                          "description": "A Google service account key object. See https://cloud.google.com/video-intelligence/docs/common/auth.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "Must be \"service_account\""
                            },
                            "project_id": {
                              "type": "string"
                            },
                            "private_key_id": {
                              "type": "string"
                            },
                            "private_key": {
                              "type": "string"
                            },
                            "client_email": {
                              "type": "string"
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              },
              "mod_logging_configs": {
                "type": "object",
                "description": "Map from UUIDs to LoggingConfigRequest objects",
                "additionalProperties": {
                  "type": "object",
                  "minProperties": 1,
                  "maxProperties": 1,
                  "properties": {
                    "splunk": {
                      "type": "object",
                      "properties": {
                        "host": {
                          "type": "string"
                        },
                        "port": {
                          "type": "integer"
                        },
                        "index": {
                          "type": "string",
                          "description": "The Splunk index that will receive log items"
                        },
                        "token": {
                          "type": "string",
                          "description": "The Splunk authentication token"
                        },
                        "tls": {
                          "type": "object",
                          "required": [
                            "mode"
                          ],
                          "properties": {
                            "mode": {
                              "type": "object",
                              "description": ""
                            },
                            "validate_hostname": {
                              "type": "boolean"
                            },
                            "ca": {
                              "type": "object",
                              "description": ""
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    },
                    "stackdriver": {
                      "type": "object",
                      "properties": {
                        "log_id": {
                          "type": "string",
                          "description": "The log ID that will recieve the log items (see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)."
                        },
                        "service_account_key": {
                          "type": "object",
                          "required": [
                            "type",
                            "project_id",
                            "private_key_id",
                            "client_email"
                          ],
                          "description": "A Google service account key object. See https://cloud.google.com/video-intelligence/docs/common/auth.",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "Must be \"service_account\""
                            },
                            "project_id": {
                              "type": "string"
                            },
                            "private_key_id": {
                              "type": "string"
                            },
                            "private_key": {
                              "type": "string"
                            },
                            "client_email": {
                              "type": "string"
                            }
                          }
                        },
                        "enabled": {
                          "type": "boolean"
                        }
                      }
                    }
                  }
                }
              },
              "del_logging_configs": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Uuid format string, example - a41152ed-c26e-4c6e-a8d1-8820e36972c3"
                }
              },
              "pending_subscription_change_request": {
                "type": "object",
                "description": "Describes a request to update subscription.",
                "required": [
                  "subscription"
                ],
                "properties": {
                  "subscription": {
                    "type": "object",
                    "description": "Type of Subscription."
                  },
                  "contact": {
                    "type": "string",
                    "description": "contact information, e.g. phone number"
                  },
                  "comment": {
                    "type": "string",
                    "description": "additional comments"
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this account is enabled. This may only be changed by sysadmins."
              },
              "subscription": {
                "type": "object",
                "description": "Type of Subscription."
              },
              "custom_metadata": {
                "type": "object",
                "description": "Sysadmin-defined metadata for this account. Stored as key-value pairs. This field may only be used by sysadmin users.\n",
                "additionalProperties": {
                  "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": "/createChildAccount"
      },
      "task": true
    },
    {
      "name": "getChildAccounts",
      "summary": "Get all child accounts of the given account",
      "description": "Get all child accounts of the given account.",
      "input": [
        {
          "name": "accountId",
          "type": "string",
          "info": "Account Identifier: string",
          "required": true,
          "schema": {
            "title": "accountId",
            "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": "/getChildAccounts"
      },
      "task": true
    },
    {
      "name": "getUsers",
      "summary": "Get all users",
      "description": "Get all users",
      "input": [
        {
          "name": "groupId",
          "type": "string",
          "info": "Only retrieve users in the specified group.: string",
          "required": false,
          "schema": {
            "title": "groupId",
            "type": "string"
          }
        },
        {
          "name": "sort",
          "type": "string",
          "info": "This specifies the property (`user_id` only, for now) and order (ascending or descending) with which to sort the users. By default, users are sorted by `user_id` in ascen...(description truncated): string",
          "required": false,
          "schema": {
            "title": "sort",
            "type": "string"
          }
        },
        {
          "name": "start",
          "type": "string",
          "info": "If provided, this must be a value of the property specified in `sort`. Returned users will begin just above or just below this value (for asc/desc order resp.).\n: string",
          "required": false,
          "schema": {
            "title": "start",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of users to return. If not provided, the limit is 100.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Number of users past `start` to skip.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        }
      ],
      "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": "/getUsers"
      },
      "task": true
    },
    {
      "name": "deleteUserAccount",
      "summary": "Completely delete a user profile from system",
      "description": "Completely deletes the currently logged in user 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": "GET",
        "path": "/deleteUserAccount"
      },
      "task": true
    },
    {
      "name": "createUser",
      "summary": "Create a new user",
      "description": "Signs up a new user.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Email address of user: {\"user_email\": \"string\", \"user_password\": \"string\", \"first_name\": \"string\", \"last_name\": \"string\", \"recaptcha_response\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "user_email",
              "user_password",
              "recaptcha_response"
            ],
            "properties": {
              "user_email": {
                "type": "string",
                "description": "User's email address."
              },
              "user_password": {
                "type": "string",
                "description": "The password to assign to this user in SmartKey."
              },
              "first_name": {
                "type": "string"
              },
              "last_name": {
                "type": "string"
              },
              "recaptcha_response": {
                "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": "/createUser"
      },
      "task": true
    },
    {
      "name": "inviteUser",
      "summary": "Invite a user",
      "description": "Invite an existing user or new user to join an existing account. Only user email is required for invite API\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Name of user: {\"user_email\": \"string\", \"user_password\": \"string\", \"account_role\": \"array\", \"add_groups\": \"object\", \"del_groups\": \"object\", \"mod_groups\": \"object\", \"enabled\": \"boolean\", \"add_u2f_devices\": [{\"name\": \"string\", \"registrationData\": \"string\", \"clientData\": \"string\", \"version\": \"string\"}], \"del_u2f_devices\": [{\"name\": \"string\"}], \"rename_u2f_devices\": [{\"old_name\": \"string\", \"new_name\": \"string\"}]}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "user_email",
              "user_password"
            ],
            "properties": {
              "user_email": {
                "type": "string",
                "description": "User's email address."
              },
              "user_password": {
                "type": "string",
                "description": "The password to assign to this user in SmartKey."
              },
              "account_role": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Flags for users roles and state for an account.",
                  "enum": [
                    "AccountAdministrator",
                    "AccountMember",
                    "AccountAuditor",
                    "StateEnabled",
                    "PendingInvite"
                  ]
                }
              },
              "add_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "del_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "mod_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this application is enabled."
              },
              "add_u2f_devices": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Description of a U2F device to add for two factor authentication.",
                  "required": [
                    "name",
                    "registrationData",
                    "clientData",
                    "version"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "registrationData": {
                      "type": "string"
                    },
                    "clientData": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              },
              "del_u2f_devices": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Request to delete a U2F device.",
                  "required": [
                    "name"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  }
                }
              },
              "rename_u2f_devices": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Request to rename a U2F device.",
                  "required": [
                    "old_name",
                    "new_name"
                  ],
                  "properties": {
                    "old_name": {
                      "type": "string"
                    },
                    "new_name": {
                      "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": "/inviteUser"
      },
      "task": true
    },
    {
      "name": "getUser",
      "summary": "Get a specific user",
      "description": "Get a specific user",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "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": "/getUser"
      },
      "task": true
    },
    {
      "name": "updateUser",
      "summary": "Update user",
      "description": "Change a user's properties.",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Name of user: {\"user_email\": \"string\", \"user_password\": \"string\", \"account_role\": \"array\", \"add_groups\": \"object\", \"del_groups\": \"object\", \"mod_groups\": \"object\", \"enabled\": \"boolean\", \"add_u2f_devices\": [{\"name\": \"string\", \"registrationData\": \"string\", \"clientData\": \"string\", \"version\": \"string\"}], \"del_u2f_devices\": [{\"name\": \"string\"}], \"rename_u2f_devices\": [{\"old_name\": \"string\", \"new_name\": \"string\"}]}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "user_email",
              "user_password"
            ],
            "properties": {
              "user_email": {
                "type": "string",
                "description": "User's email address."
              },
              "user_password": {
                "type": "string",
                "description": "The password to assign to this user in SmartKey."
              },
              "account_role": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Flags for users roles and state for an account.",
                  "enum": [
                    "AccountAdministrator",
                    "AccountMember",
                    "AccountAuditor",
                    "StateEnabled",
                    "PendingInvite"
                  ]
                }
              },
              "add_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "del_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "mod_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this application is enabled."
              },
              "add_u2f_devices": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Description of a U2F device to add for two factor authentication.",
                  "required": [
                    "name",
                    "registrationData",
                    "clientData",
                    "version"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "registrationData": {
                      "type": "string"
                    },
                    "clientData": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              },
              "del_u2f_devices": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Request to delete a U2F device.",
                  "required": [
                    "name"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  }
                }
              },
              "rename_u2f_devices": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "Request to rename a U2F device.",
                  "required": [
                    "old_name",
                    "new_name"
                  ],
                  "properties": {
                    "old_name": {
                      "type": "string"
                    },
                    "new_name": {
                      "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": "/updateUser"
      },
      "task": true
    },
    {
      "name": "changePassword",
      "summary": "Change user password",
      "description": "Change user password",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Password change request: {\"current_password\": \"string\", \"new_password\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "current_password",
              "new_password"
            ],
            "properties": {
              "current_password": {
                "type": "string"
              },
              "new_password": {
                "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": "/changePassword"
      },
      "task": true
    },
    {
      "name": "getUserAccount",
      "summary": "Get account information for the user",
      "description": "Obtain the current user's account information.",
      "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": "/getUserAccount"
      },
      "task": true
    },
    {
      "name": "forgotPassword",
      "summary": "Initiate password reset sequence for a user",
      "description": "Initiate password reset sequence for a user",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Initiate forgot password sequrence: {\"user_email\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "user_email"
            ],
            "properties": {
              "user_email": {
                "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": "/forgotPassword"
      },
      "task": true
    },
    {
      "name": "resetPassword",
      "summary": "Reset a user's password",
      "description": "Resetting a user's password. User must have a valid reset token from forgot password step.",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Reset password: {\"reset_token\": \"string\", \"new_password\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "reset_token",
              "new_password"
            ],
            "properties": {
              "reset_token": {
                "type": "string"
              },
              "new_password": {
                "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": "/resetPassword"
      },
      "task": true
    },
    {
      "name": "processInvitations",
      "summary": "Process a user's pending account invitations",
      "description": "Process a user's pending invitations. It does both accepts and rejects.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Process account invitation (both accepts and rejects): {\"accepts\": \"array\", \"rejects\": \"array\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "accepts": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "ID of an invitation to accept."
                }
              },
              "rejects": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "ID of an invitation to reject."
                }
              }
            }
          }
        }
      ],
      "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": "/processInvitations"
      },
      "task": true
    },
    {
      "name": "resendInvitation",
      "summary": "Resend invite to the user to join a specific account",
      "description": "Resend invite to the user to join a specific account",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "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": "/resendInvitation"
      },
      "task": true
    },
    {
      "name": "deleteUser",
      "summary": "Removed user's association with an account",
      "description": "Removed user's association with an account",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "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": "/deleteUser"
      },
      "task": true
    },
    {
      "name": "validatePasswordResetToken",
      "summary": "Validates password reset token for the user",
      "description": "Validates password reset token for the user",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Validate token: {\"reset_token\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "reset_token"
            ],
            "properties": {
              "reset_token": {
                "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": "/validatePasswordResetToken"
      },
      "task": true
    },
    {
      "name": "confirmEmail",
      "summary": "Confirms user's email address",
      "description": "Confirms user's email address",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Validate user's email: {\"confirm_token\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "confirm_token"
            ],
            "properties": {
              "confirm_token": {
                "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": "/confirmEmail"
      },
      "task": true
    },
    {
      "name": "resendConfirmEmail",
      "summary": "Resend email with link to confirm user's email address",
      "description": "Resend email with link to confirm user's email address",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "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": "/resendConfirmEmail"
      },
      "task": true
    },
    {
      "name": "createChildAccountUser",
      "summary": "Create a new user user in a child account",
      "description": "Create a new user user in a child account.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "User in child account: {\"child_acct_id\": \"string\", \"user_email\": \"string\", \"account_role\": \"array\", \"add_groups\": \"object\", \"del_groups\": \"object\", \"mod_groups\": \"object\", \"enabled\": \"boolean\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "user_email",
              "child_acct_id"
            ],
            "properties": {
              "child_acct_id": {
                "type": "string",
                "description": "Account id of child account"
              },
              "user_email": {
                "type": "string",
                "description": "User's email address."
              },
              "account_role": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Flags for users roles and state for an account.",
                  "enum": [
                    "AccountAdministrator",
                    "AccountMember",
                    "AccountAuditor",
                    "StateEnabled",
                    "PendingInvite"
                  ]
                }
              },
              "add_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "del_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "mod_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this application is enabled."
              }
            }
          }
        }
      ],
      "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": "/createChildAccountUser"
      },
      "task": true
    },
    {
      "name": "getChildAccountUser",
      "summary": "Get a specific child account user",
      "description": "Get a specific child account user",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "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": "/getChildAccountUser"
      },
      "task": true
    },
    {
      "name": "updateChildAccountUser",
      "summary": "Update a child account user",
      "description": "Change a child account user's properties.",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "User in child account: {\"child_acct_id\": \"string\", \"user_email\": \"string\", \"account_role\": \"array\", \"add_groups\": \"object\", \"del_groups\": \"object\", \"mod_groups\": \"object\", \"enabled\": \"boolean\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "user_email",
              "child_acct_id"
            ],
            "properties": {
              "child_acct_id": {
                "type": "string",
                "description": "Account id of child account"
              },
              "user_email": {
                "type": "string",
                "description": "User's email address."
              },
              "account_role": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Flags for users roles and state for an account.",
                  "enum": [
                    "AccountAdministrator",
                    "AccountMember",
                    "AccountAuditor",
                    "StateEnabled",
                    "PendingInvite"
                  ]
                }
              },
              "add_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "del_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "mod_groups": {
                "description": "A UserGroupMap has keys which are the UUIDs of the groups that the user belongs to. The value for each key is an array of UserGroupFlags representing the group properties.\n",
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Flags for users role for a group.",
                    "enum": [
                      "GroupAdministrator",
                      "GroupAuditor"
                    ]
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this application is enabled."
              }
            }
          }
        }
      ],
      "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": "/updateChildAccountUser"
      },
      "task": true
    },
    {
      "name": "deleteChildAccountUser",
      "summary": "Completely delete a user in child account",
      "description": "Completely delete a user in child account.",
      "input": [
        {
          "name": "userId",
          "type": "string",
          "info": "User Identifier: string",
          "required": true,
          "schema": {
            "title": "userId",
            "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": "/deleteChildAccountUser"
      },
      "task": true
    },
    {
      "name": "getAllChildAccountUsers",
      "summary": "Get all users in a child account",
      "description": "Get all users in a child account",
      "input": [
        {
          "name": "accountId",
          "type": "string",
          "info": "Account Identifier: string",
          "required": true,
          "schema": {
            "title": "accountId",
            "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": "/getAllChildAccountUsers"
      },
      "task": true
    },
    {
      "name": "getAuditLogs",
      "summary": "Get audit logs",
      "description": "Get audit log entries matching the requested filters.",
      "input": [
        {
          "name": "size",
          "type": "number",
          "info": "Maximum number of entries to return: 123",
          "required": false,
          "schema": {
            "title": "size",
            "type": "number"
          }
        },
        {
          "name": "from",
          "type": "number",
          "info": "For pagination, starting offset: 123",
          "required": false,
          "schema": {
            "title": "from",
            "type": "number"
          }
        },
        {
          "name": "actionType",
          "type": "string",
          "info": "Event action type: Must be one of [Apps, Users]",
          "required": false,
          "schema": {
            "title": "actionType",
            "type": "string"
          }
        },
        {
          "name": "actorType",
          "type": "string",
          "info": "Event actor type: Must be one of [Administrative, Auth, CryptoOperation]",
          "required": false,
          "schema": {
            "title": "actorType",
            "type": "string"
          }
        },
        {
          "name": "actorId",
          "type": "string",
          "info": "Actor (User or App) Identifier: string",
          "required": false,
          "schema": {
            "title": "actorId",
            "type": "string"
          }
        },
        {
          "name": "objectId",
          "type": "string",
          "info": "Object (User or App) Identifier for event: string",
          "required": false,
          "schema": {
            "title": "objectId",
            "type": "string"
          }
        },
        {
          "name": "severity",
          "type": "string",
          "info": "Event severity type: Must be one of [Info, Warning, Error, Critical]",
          "required": false,
          "schema": {
            "title": "severity",
            "type": "string"
          }
        },
        {
          "name": "rangeFrom",
          "type": "number",
          "info": "Starting time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeFrom",
            "type": "number"
          }
        },
        {
          "name": "rangeTo",
          "type": "number",
          "info": "Ending time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeTo",
            "type": "number"
          }
        }
      ],
      "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": "/getAuditLogs"
      },
      "task": true
    },
    {
      "name": "getGroupsStats",
      "summary": "Get group aggregate transaction statistics",
      "description": "This is for obtaining group level aggregate transaction statistics to find top groups by transaction. API supports query parameters for fetchings stats for specific time period, for maximum top count and with number of data points desired.",
      "input": [
        {
          "name": "rangeFrom",
          "type": "number",
          "info": "Starting time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeFrom",
            "type": "number"
          }
        },
        {
          "name": "rangeTo",
          "type": "number",
          "info": "Ending time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeTo",
            "type": "number"
          }
        },
        {
          "name": "topCount",
          "type": "number",
          "info": "Maximum top count for statistics query: 123",
          "required": false,
          "schema": {
            "title": "topCount",
            "type": "number"
          }
        },
        {
          "name": "numPoints",
          "type": "number",
          "info": "Number of data points desired: 123",
          "required": false,
          "schema": {
            "title": "numPoints",
            "type": "number"
          }
        }
      ],
      "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": "/getGroupsStats"
      },
      "task": true
    },
    {
      "name": "getAppsStats",
      "summary": "Get app aggregate transaction statistics",
      "description": "This is for obtaining app level aggregate transaction statistics to find top apps by transaction. API supports query parameters for fetchings stats for specific time period, for maximum top count and with number of data points desired.",
      "input": [
        {
          "name": "rangeFrom",
          "type": "number",
          "info": "Starting time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeFrom",
            "type": "number"
          }
        },
        {
          "name": "rangeTo",
          "type": "number",
          "info": "Ending time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeTo",
            "type": "number"
          }
        },
        {
          "name": "topCount",
          "type": "number",
          "info": "Maximum top count for statistics query: 123",
          "required": false,
          "schema": {
            "title": "topCount",
            "type": "number"
          }
        },
        {
          "name": "numPoints",
          "type": "number",
          "info": "Number of data points desired: 123",
          "required": false,
          "schema": {
            "title": "numPoints",
            "type": "number"
          }
        }
      ],
      "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": "/getAppsStats"
      },
      "task": true
    },
    {
      "name": "getAppStats",
      "summary": "Get transaction statistics for a specific application",
      "description": "This API is for obtaining transaction statistics for a specific application. API supports query parameters for fetchings stats for specific time period and with number of data points desired.",
      "input": [
        {
          "name": "appId",
          "type": "string",
          "info": "Application Identifier: string",
          "required": true,
          "schema": {
            "title": "appId",
            "type": "string"
          }
        },
        {
          "name": "rangeFrom",
          "type": "number",
          "info": "Starting time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeFrom",
            "type": "number"
          }
        },
        {
          "name": "rangeTo",
          "type": "number",
          "info": "Ending time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeTo",
            "type": "number"
          }
        },
        {
          "name": "numPoints",
          "type": "number",
          "info": "Number of data points desired: 123",
          "required": false,
          "schema": {
            "title": "numPoints",
            "type": "number"
          }
        }
      ],
      "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": "/getAppStats"
      },
      "task": true
    },
    {
      "name": "getGroupStats",
      "summary": "Get transaction statistics for a specific group",
      "description": "This API is for obtaining transaction statistics for a specific group. API supports query parameters for fetchings stats for specific time period and with number of data points desired.",
      "input": [
        {
          "name": "groupId",
          "type": "string",
          "info": "Group Identifier: string",
          "required": true,
          "schema": {
            "title": "groupId",
            "type": "string"
          }
        },
        {
          "name": "rangeFrom",
          "type": "number",
          "info": "Starting time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeFrom",
            "type": "number"
          }
        },
        {
          "name": "rangeTo",
          "type": "number",
          "info": "Ending time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeTo",
            "type": "number"
          }
        },
        {
          "name": "numPoints",
          "type": "number",
          "info": "Number of data points desired: 123",
          "required": false,
          "schema": {
            "title": "numPoints",
            "type": "number"
          }
        }
      ],
      "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": "/getGroupStats"
      },
      "task": true
    },
    {
      "name": "getSecurityObjectStats",
      "summary": "Get transaction statistics for a specific security object",
      "description": "This API is for obtaining transaction statistics for a specific security object. API supports query parameters for fetchings stats for specific time period and with number of data points desired.",
      "input": [
        {
          "name": "keyId",
          "type": "string",
          "info": "kid of security object: string",
          "required": true,
          "schema": {
            "title": "keyId",
            "type": "string"
          }
        },
        {
          "name": "rangeFrom",
          "type": "number",
          "info": "Starting time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeFrom",
            "type": "number"
          }
        },
        {
          "name": "rangeTo",
          "type": "number",
          "info": "Ending time for search , this is EPOCH value: 123",
          "required": false,
          "schema": {
            "title": "rangeTo",
            "type": "number"
          }
        },
        {
          "name": "numPoints",
          "type": "number",
          "info": "Number of data points desired: 123",
          "required": false,
          "schema": {
            "title": "numPoints",
            "type": "number"
          }
        }
      ],
      "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": "/getSecurityObjectStats"
      },
      "task": true
    },
    {
      "name": "authorizeU2F",
      "summary": "Use a U2F key to complete authentication",
      "description": "Complete two factor authentication with a U2F authentication token to authenticate to SmartKey. The response body contains a bearer authentication token which needs to be provided by subsequent calls for the duration of the session.\n",
      "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": "/authorizeU2F"
      },
      "task": true
    },
    {
      "name": "authorizeRecoveryCode",
      "summary": "Use a backup recovery code to complete authentication",
      "description": "Complete two factor authentication with a backup recovery code. The caller needs to provide a bearer token for the session in the request body. Each recovery code may only be used once, so users should update their two factor configuration after using this API.\n",
      "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": "/authorizeRecoveryCode"
      },
      "task": true
    },
    {
      "name": "generateU2FChallenge",
      "summary": "Generate a new challenge for registering a U2F devices",
      "description": "Generate a new challenge that may be used to register U2F devices. The caller needs to provide a bearer token for the session in the request body.\n",
      "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": "/generateU2FChallenge"
      },
      "task": true
    },
    {
      "name": "lock2F",
      "summary": "Lock two factor configuration",
      "description": "Lock two factor configuration after completing two factor reconfiguration. The caller needs to provide a bearer token for the session in the request body. If this API is not called, two factor configuration will be locked automatically after ten minutes.\n",
      "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": "/lock2F"
      },
      "task": true
    },
    {
      "name": "generateRecoveryCodes",
      "summary": "Generate backup recovery codes for the current user",
      "description": "Generate backup recovery codes that may be used to complete complete two factor authentication. The caller needs to provide a bearer token for the session in the request body. Two factor configuration must be unlocked to use this API.\n",
      "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": "/generateRecoveryCodes"
      },
      "task": true
    },
    {
      "name": "getPlugins",
      "summary": "Get all plugins",
      "description": "Get details of all plugins the current user has access to.",
      "input": [
        {
          "name": "groupId",
          "type": "string",
          "info": "Only retrieve plugins in the specified group.: string",
          "required": false,
          "schema": {
            "title": "groupId",
            "type": "string"
          }
        },
        {
          "name": "sort",
          "type": "string",
          "info": "This specifies the property (`plugin_id` only, for now) and order (ascending or descending) with which to sort the apps. By default, plugins are sorted by `plugin_id` in ...(description truncated): string",
          "required": false,
          "schema": {
            "title": "sort",
            "type": "string"
          }
        },
        {
          "name": "start",
          "type": "string",
          "info": "If provided, this must be a value of the property specified in `sort`. Returned apps will begin just above or just below this value (for asc/desc order resp.).\n: string",
          "required": false,
          "schema": {
            "title": "start",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of apps to return. If not provided, the limit is 100.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Number of apps past `start` to skip.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        }
      ],
      "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": "/getPlugins"
      },
      "task": true
    },
    {
      "name": "createPlugin",
      "summary": "Create a new plugin",
      "description": "Create a new plugin with the specified properties.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Properties of plugin to create: {\"name\": \"string\", \"description\": \"string\", \"add_groups\": \"array\", \"del_groups\": \"array\", \"default_group\": \"string\", \"source\": {\"language\": \"Must be one of [Lua]\", \"code\": \"string\"}, \"enabled\": \"boolean\", \"plugin_type\": \"Must be one of [Standard, Impersonating, CustomAlgorithm]\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "add_groups",
              "default_group",
              "source"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the plugin. Plugin names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of this plugin."
              },
              "add_groups": {
                "type": "array",
                "description": "An array of Security Group IDs to add to this plugin.",
                "items": {
                  "type": "string",
                  "description": "A group ID (not name or description)."
                }
              },
              "del_groups": {
                "type": "array",
                "description": "An array of security group IDs to remove from this plugin.",
                "items": {
                  "type": "string",
                  "description": "A group ID (not name or description)."
                }
              },
              "default_group": {
                "type": "string",
                "description": "The default group of this plugin. This is the group where security objects will be created by default by this plugin."
              },
              "source": {
                "type": "object",
                "description": "Plugin code that will be executed in SmartKey.",
                "required": [
                  "language",
                  "code"
                ],
                "properties": {
                  "language": {
                    "type": "string",
                    "description": "Language for plugin code.",
                    "enum": [
                      "Lua"
                    ]
                  },
                  "code": {
                    "type": "string"
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this plugin is enabled."
              },
              "plugin_type": {
                "type": "string",
                "description": "Type of this plugin.",
                "enum": [
                  "Standard",
                  "Impersonating",
                  "CustomAlgorithm"
                ]
              }
            }
          }
        }
      ],
      "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": "/createPlugin"
      },
      "task": true
    },
    {
      "name": "getPlugin",
      "summary": "Get a specific plugin",
      "description": "Look up plugin by plugin ID.",
      "input": [
        {
          "name": "pluginId",
          "type": "string",
          "info": "Plugin Identifier: string",
          "required": true,
          "schema": {
            "title": "pluginId",
            "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": "/getPlugin"
      },
      "task": true
    },
    {
      "name": "deletePlugin",
      "summary": "Delete plugin",
      "description": "Remove a plugin from SmartKey.",
      "input": [
        {
          "name": "pluginId",
          "type": "string",
          "info": "Plugin Identifier: string",
          "required": true,
          "schema": {
            "title": "pluginId",
            "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": "/deletePlugin"
      },
      "task": true
    },
    {
      "name": "updatePlugin",
      "summary": "Update a plugin",
      "description": "Change a plugin's properties, such as name, description, code, or group membership.",
      "input": [
        {
          "name": "pluginId",
          "type": "string",
          "info": "Plugin Identifier: string",
          "required": true,
          "schema": {
            "title": "pluginId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Properties of plugin to create: {\"name\": \"string\", \"description\": \"string\", \"add_groups\": \"array\", \"del_groups\": \"array\", \"default_group\": \"string\", \"source\": {\"language\": \"Must be one of [Lua]\", \"code\": \"string\"}, \"enabled\": \"boolean\", \"plugin_type\": \"Must be one of [Standard, Impersonating, CustomAlgorithm]\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "name",
              "add_groups",
              "default_group",
              "source"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the plugin. Plugin names must be unique within an account."
              },
              "description": {
                "type": "string",
                "description": "Description of this plugin."
              },
              "add_groups": {
                "type": "array",
                "description": "An array of Security Group IDs to add to this plugin.",
                "items": {
                  "type": "string",
                  "description": "A group ID (not name or description)."
                }
              },
              "del_groups": {
                "type": "array",
                "description": "An array of security group IDs to remove from this plugin.",
                "items": {
                  "type": "string",
                  "description": "A group ID (not name or description)."
                }
              },
              "default_group": {
                "type": "string",
                "description": "The default group of this plugin. This is the group where security objects will be created by default by this plugin."
              },
              "source": {
                "type": "object",
                "description": "Plugin code that will be executed in SmartKey.",
                "required": [
                  "language",
                  "code"
                ],
                "properties": {
                  "language": {
                    "type": "string",
                    "description": "Language for plugin code.",
                    "enum": [
                      "Lua"
                    ]
                  },
                  "code": {
                    "type": "string"
                  }
                }
              },
              "enabled": {
                "type": "boolean",
                "description": "Whether this plugin is enabled."
              },
              "plugin_type": {
                "type": "string",
                "description": "Type of this plugin.",
                "enum": [
                  "Standard",
                  "Impersonating",
                  "CustomAlgorithm"
                ]
              }
            }
          }
        }
      ],
      "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": "/updatePlugin"
      },
      "task": true
    },
    {
      "name": "invokePlugin",
      "summary": "Invoke a plugin",
      "description": "Invokes a plugin execution with the provided request body as input to the plugin.",
      "input": [
        {
          "name": "pluginId",
          "type": "string",
          "info": "Plugin Identifier: string",
          "required": true,
          "schema": {
            "title": "pluginId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Object to be passed to plugin as input: object",
          "required": true,
          "schema": {
            "type": "object",
            "x-arbitrary-model": true
          }
        }
      ],
      "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": "/invokePlugin"
      },
      "task": true
    },
    {
      "name": "getSysV1PluginsInvokePluginId",
      "summary": "Invoke a plugin using GET.",
      "description": "Invokes a plugin with empty input.",
      "input": [
        {
          "name": "pluginId",
          "type": "string",
          "info": "Plugin Identifier: string",
          "required": true,
          "schema": {
            "title": "pluginId",
            "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": "/getSysV1PluginsInvokePluginId"
      },
      "task": true
    },
    {
      "name": "getApprovalRequests",
      "summary": "Get all approval requests",
      "description": "Get all approval requests",
      "input": [
        {
          "name": "requester",
          "type": "string",
          "info": "Only retrieve approval requests with the specified requester ID: string",
          "required": false,
          "schema": {
            "title": "requester",
            "type": "string"
          }
        },
        {
          "name": "reviewer",
          "type": "string",
          "info": "Only retrieve approval requests with the specified reviewer ID: string",
          "required": false,
          "schema": {
            "title": "reviewer",
            "type": "string"
          }
        },
        {
          "name": "subject",
          "type": "string",
          "info": "Only retrieve approval requests with the specified subject ID: string",
          "required": false,
          "schema": {
            "title": "subject",
            "type": "string"
          }
        },
        {
          "name": "status",
          "type": "string",
          "info": "Only retrieve approval requests with the specified approval status: Must be one of [PENDING, APPROVED, DENIED, FAILED]",
          "required": false,
          "schema": {
            "title": "status",
            "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": "/getApprovalRequests"
      },
      "task": true
    },
    {
      "name": "createApprovalRequest",
      "summary": "Create approval request",
      "description": "Create approval request",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "Request to create an approval request.: {\"operation\": \"string\", \"method\": \"string\", \"body\": \"object\", \"description\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "required": [
              "operation"
            ],
            "properties": {
              "operation": {
                "type": "string",
                "description": "Operation URL path, e.g. `/crypto/v1/keys`, `/crypto/v1/groups/<id>`."
              },
              "method": {
                "type": "string",
                "description": "Method for the operation: POST, PATCH, PUT, DELETE, or GET. Default is POST.\n"
              },
              "body": {
                "type": "object",
                "x-arbitrary-model": true
              },
              "description": {
                "type": "string",
                "description": "Optional comment about the approval request for the reviewer."
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "request_id",
            "requester",
            "created_at",
            "acct_id",
            "operation",
            "method",
            "body",
            "approvers",
            "denier",
            "status",
            "reviewers",
            "subjects",
            "expiry"
          ],
          "properties": {
            "request_id": {
              "type": "string",
              "description": "UUID uniquely identifying this approval request."
            },
            "requester": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "An app, user, or plugin ID.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                },
                "plugin": {
                  "type": "string",
                  "description": "The plugin ID of the user who created this entity, if this entity was created by a plugin."
                }
              }
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this approval request was created."
            },
            "acct_id": {
              "type": "string",
              "description": "The account ID of the account that this approval request belongs to."
            },
            "operation": {
              "type": "string",
              "description": "Operation URL path, e.g. `/crypto/v1/keys`, `/crypto/v1/groups/<id>`."
            },
            "method": {
              "type": "string",
              "description": "Method for the operation: POST, PATCH, PUT, DELETE, or GET. Default is POST.\n"
            },
            "body": {
              "type": "object",
              "x-arbitrary-model": true
            },
            "approvers": {
              "type": "array",
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "An app, user, or plugin ID.",
                "properties": {
                  "app": {
                    "type": "string",
                    "description": "The application ID of the application that created this entity, if this entity was created by an application."
                  },
                  "user": {
                    "type": "string",
                    "description": "The user ID of the user who created this entity, if this entity was created by a user."
                  },
                  "plugin": {
                    "type": "string",
                    "description": "The plugin ID of the user who created this entity, if this entity was created by a plugin."
                  }
                }
              }
            },
            "denier": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "An app, user, or plugin ID.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                },
                "plugin": {
                  "type": "string",
                  "description": "The plugin ID of the user who created this entity, if this entity was created by a plugin."
                }
              }
            },
            "status": {
              "type": "string",
              "description": "Approval request status.",
              "enum": [
                "PENDING",
                "APPROVED",
                "DENIED",
                "FAILED"
              ]
            },
            "reviewers": {
              "type": "array",
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "An app, user, or plugin ID.",
                "properties": {
                  "app": {
                    "type": "string",
                    "description": "The application ID of the application that created this entity, if this entity was created by an application."
                  },
                  "user": {
                    "type": "string",
                    "description": "The user ID of the user who created this entity, if this entity was created by a user."
                  },
                  "plugin": {
                    "type": "string",
                    "description": "The plugin ID of the user who created this entity, if this entity was created by a plugin."
                  }
                }
              }
            },
            "subjects": {
              "type": "array",
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "Identifies an object acted upon by an approval request.",
                "properties": {
                  "group": {
                    "type": "string",
                    "description": "The ID of the group being acted upon, if the subject is a group."
                  },
                  "sobject": {
                    "type": "string",
                    "description": "The ID of the security object being acted upon, if the subject is a security object."
                  },
                  "app": {
                    "type": "string",
                    "description": "The ID of the app being acted upon, if the subject is a app."
                  },
                  "plugin": {
                    "type": "string",
                    "description": "The ID of the plugin being acted upon, if the subject is a app."
                  }
                }
              }
            },
            "description": {
              "type": "string",
              "description": "Optional comment about the approval request for the reviewer."
            },
            "expiry": {
              "type": "string",
              "format": "dateTime",
              "description": "When this approval request expires."
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createApprovalRequest"
      },
      "task": true
    },
    {
      "name": "getApprovalRequest",
      "summary": "Get an approval request.",
      "description": "Get the details and status of a particular approval request.",
      "input": [
        {
          "name": "requestId",
          "type": "string",
          "info": "Approval Request Identifier: string",
          "required": true,
          "schema": {
            "title": "requestId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "request_id",
            "requester",
            "created_at",
            "acct_id",
            "operation",
            "method",
            "body",
            "approvers",
            "denier",
            "status",
            "reviewers",
            "subjects",
            "expiry"
          ],
          "properties": {
            "request_id": {
              "type": "string",
              "description": "UUID uniquely identifying this approval request."
            },
            "requester": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "An app, user, or plugin ID.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                },
                "plugin": {
                  "type": "string",
                  "description": "The plugin ID of the user who created this entity, if this entity was created by a plugin."
                }
              }
            },
            "created_at": {
              "type": "string",
              "format": "dateTime",
              "description": "When this approval request was created."
            },
            "acct_id": {
              "type": "string",
              "description": "The account ID of the account that this approval request belongs to."
            },
            "operation": {
              "type": "string",
              "description": "Operation URL path, e.g. `/crypto/v1/keys`, `/crypto/v1/groups/<id>`."
            },
            "method": {
              "type": "string",
              "description": "Method for the operation: POST, PATCH, PUT, DELETE, or GET. Default is POST.\n"
            },
            "body": {
              "type": "object",
              "x-arbitrary-model": true
            },
            "approvers": {
              "type": "array",
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "An app, user, or plugin ID.",
                "properties": {
                  "app": {
                    "type": "string",
                    "description": "The application ID of the application that created this entity, if this entity was created by an application."
                  },
                  "user": {
                    "type": "string",
                    "description": "The user ID of the user who created this entity, if this entity was created by a user."
                  },
                  "plugin": {
                    "type": "string",
                    "description": "The plugin ID of the user who created this entity, if this entity was created by a plugin."
                  }
                }
              }
            },
            "denier": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 1,
              "description": "An app, user, or plugin ID.",
              "properties": {
                "app": {
                  "type": "string",
                  "description": "The application ID of the application that created this entity, if this entity was created by an application."
                },
                "user": {
                  "type": "string",
                  "description": "The user ID of the user who created this entity, if this entity was created by a user."
                },
                "plugin": {
                  "type": "string",
                  "description": "The plugin ID of the user who created this entity, if this entity was created by a plugin."
                }
              }
            },
            "status": {
              "type": "string",
              "description": "Approval request status.",
              "enum": [
                "PENDING",
                "APPROVED",
                "DENIED",
                "FAILED"
              ]
            },
            "reviewers": {
              "type": "array",
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "An app, user, or plugin ID.",
                "properties": {
                  "app": {
                    "type": "string",
                    "description": "The application ID of the application that created this entity, if this entity was created by an application."
                  },
                  "user": {
                    "type": "string",
                    "description": "The user ID of the user who created this entity, if this entity was created by a user."
                  },
                  "plugin": {
                    "type": "string",
                    "description": "The plugin ID of the user who created this entity, if this entity was created by a plugin."
                  }
                }
              }
            },
            "subjects": {
              "type": "array",
              "items": {
                "type": "object",
                "minProperties": 1,
                "maxProperties": 1,
                "description": "Identifies an object acted upon by an approval request.",
                "properties": {
                  "group": {
                    "type": "string",
                    "description": "The ID of the group being acted upon, if the subject is a group."
                  },
                  "sobject": {
                    "type": "string",
                    "description": "The ID of the security object being acted upon, if the subject is a security object."
                  },
                  "app": {
                    "type": "string",
                    "description": "The ID of the app being acted upon, if the subject is a app."
                  },
                  "plugin": {
                    "type": "string",
                    "description": "The ID of the plugin being acted upon, if the subject is a app."
                  }
                }
              }
            },
            "description": {
              "type": "string",
              "description": "Optional comment about the approval request for the reviewer."
            },
            "expiry": {
              "type": "string",
              "format": "dateTime",
              "description": "When this approval request expires."
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getApprovalRequest"
      },
      "task": true
    },
    {
      "name": "deleteApprovalRequest",
      "summary": "Delete an approval request.",
      "description": "Delete an approval request.",
      "input": [
        {
          "name": "requestId",
          "type": "string",
          "info": "Approval Request Identifier: string",
          "required": true,
          "schema": {
            "title": "requestId",
            "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": "/deleteApprovalRequest"
      },
      "task": true
    },
    {
      "name": "approve",
      "summary": "Approve a request.",
      "description": "Approve a request.",
      "input": [
        {
          "name": "requestId",
          "type": "string",
          "info": "Approval Request Identifier: string",
          "required": true,
          "schema": {
            "title": "requestId",
            "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": "/approve"
      },
      "task": true
    },
    {
      "name": "deny",
      "summary": "Deny a request.",
      "description": "Deny a request.",
      "input": [
        {
          "name": "requestId",
          "type": "string",
          "info": "Approval Request Identifier: string",
          "required": true,
          "schema": {
            "title": "requestId",
            "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": "/deny"
      },
      "task": true
    },
    {
      "name": "getResult",
      "summary": "Get the result for an approved or failed request.",
      "description": "Get the result for an approved or failed request.",
      "input": [
        {
          "name": "requestId",
          "type": "string",
          "info": "Approval Request Identifier: string",
          "required": true,
          "schema": {
            "title": "requestId",
            "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": "/getResult"
      },
      "task": true
    },
    {
      "name": "getPortInfoUsingGET2",
      "summary": "Fetch List of Virtual Ports.",
      "description": "Get a list of all Ports. Details include encapsulation, Dot1Q or QinQ, the metro and the region where the ports are located, port size bandwidth etc.",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
              },
              "name": {
                "type": "string",
                "example": "TEST-DC9-EX-TEST5"
              },
              "provisionStatus": {
                "type": "string",
                "example": "ADDED"
              },
              "region": {
                "type": "string",
                "example": "AMER"
              },
              "device": {
                "type": "string",
                "example": "XXXX"
              },
              "totalBandwidth": {
                "type": "integer",
                "example": 10000000000
              },
              "accountUcmId": {
                "type": "string",
                "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
              },
              "accountName": {
                "type": "string",
                "example": "Sandbox User"
              },
              "buyout": {
                "type": "boolean",
                "example": false
              },
              "custOrgId": {
                "type": "string",
                "example": 7033
              },
              "ibx": {
                "type": "string",
                "example": "SV5"
              },
              "metroCode": {
                "type": "string",
                "example": "SV"
              },
              "metroDescription": {
                "type": "string",
                "example": "Sillicon Valley"
              },
              "deviceGroup": {
                "type": "string",
                "example": 1
              },
              "devicePriority": {
                "type": "string",
                "example": "Primary"
              },
              "encapsulation": {
                "type": "string",
                "example": "Dot1q"
              },
              "viewPortPermission": {
                "type": "boolean",
                "example": true
              },
              "placeVcOrderPermission": {
                "type": "boolean",
                "example": true
              },
              "createdDate": {
                "type": "string",
                "example": "2017-02-21T22:01:58.000Z"
              },
              "lastUpdatedDate": {
                "type": "string",
                "example": "2017-02-24T19:12:44.000Z"
              },
              "layer3Enabled": {
                "type": "boolean",
                "example": false
              },
              "lag": {
                "type": "boolean",
                "example": false
              },
              "userPorts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "bandwidth": {
                      "type": "integer",
                      "example": 10000000000
                    },
                    "crossConnectId": {
                      "type": "string",
                      "example": 20461234
                    },
                    "cabinetNumber": {
                      "type": "string",
                      "example": 64
                    },
                    "cageNumber": {
                      "type": "string",
                      "example": "SV1:01:005019"
                    },
                    "patchPanelName": {
                      "type": "string",
                      "example": "CP:0101:1200182"
                    },
                    "patchPanelPorts": {
                      "type": "string",
                      "example": "1,2"
                    },
                    "portProvisionStatus": {
                      "type": "string",
                      "example": "PROVISIONED"
                    },
                    "tagProtocolId": {
                      "type": "string",
                      "example": 33024
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getPortInfoUsingGET2"
      },
      "task": true
    },
    {
      "name": "getPostStatUsingGET",
      "summary": "Get port utilization stats",
      "description": "This API retrieves the inbound and outbound traffic utilization statistics of a given port for a specified time.",
      "input": [
        {
          "name": "portUUID",
          "type": "string",
          "info": "Port UUID: string",
          "required": true,
          "schema": {
            "title": "portUUID",
            "type": "string"
          }
        },
        {
          "name": "startDate",
          "type": "string",
          "info": "Start date in UTC: string",
          "required": false,
          "schema": {
            "title": "startDate",
            "type": "string"
          }
        },
        {
          "name": "endDate",
          "type": "string",
          "info": "End date in UTC: string",
          "required": false,
          "schema": {
            "title": "endDate",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "capacity": {
              "type": "number",
              "format": "long",
              "example": 1000000000
            },
            "inboundMax": {
              "type": "number",
              "format": "double",
              "example": 0.002355751
            },
            "outboundMax": {
              "type": "number",
              "format": "double",
              "example": 0.0006338511
            },
            "outboundAvg": {
              "type": "number",
              "format": "double",
              "example": 0.00033159385
            },
            "inboundLastPolled": {
              "type": "number",
              "format": "double",
              "example": 0.0011289178
            },
            "outboundLastPolled": {
              "type": "number",
              "format": "double",
              "example": 0.00030398
            },
            "inboundStats": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "time": {
                    "type": "string",
                    "example": "2019-07-24T05:00:00Z"
                  },
                  "max": {
                    "type": "number",
                    "format": "double",
                    "example": 0.0009884178
                  },
                  "mean": {
                    "type": "number",
                    "format": "double",
                    "example": 0.0009884178
                  }
                }
              }
            },
            "outboundStats": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "time": {
                    "type": "string",
                    "example": "2019-07-24T05:00:00Z"
                  },
                  "max": {
                    "type": "number",
                    "format": "double",
                    "example": 0.0009884178
                  },
                  "mean": {
                    "type": "number",
                    "format": "double",
                    "example": 0.0009884178
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getPostStatUsingGET"
      },
      "task": true
    },
    {
      "name": "getAllBuyerConnectionsUsingGET",
      "summary": "Get all my connections",
      "description": "Get all Layer 2 connections. This API returns all connections on the ECX participant’s ports and to which service profiles (AWS/Azure or others) the connection has been made. This is useful to monitor the number of connections on existing ports and the amount of bandwidth consumed by these connections.",
      "input": [
        {
          "name": "authorizationKey",
          "type": "string",
          "info": "Could be AWS Account ID or Azure Service Key or Google Pairing Key or Oracle connection Id or any other authorization key used to create Layer 2 connection: string",
          "required": false,
          "schema": {
            "title": "authorizationKey",
            "type": "string"
          }
        },
        {
          "name": "status",
          "type": "array",
          "info": "connection status: array",
          "required": false,
          "schema": {
            "title": "status",
            "type": "array"
          }
        },
        {
          "name": "metroCode",
          "type": "string",
          "info": "Buyer metro code: string",
          "required": false,
          "schema": {
            "title": "metroCode",
            "type": "string"
          }
        },
        {
          "name": "buyerPortName",
          "type": "string",
          "info": "Buyer port name. Buyer must have permission for that port: string",
          "required": false,
          "schema": {
            "title": "buyerPortName",
            "type": "string"
          }
        },
        {
          "name": "buyerPortUUID",
          "type": "string",
          "info": "Buyer port uuid. Buyer must have permission for that port: string",
          "required": false,
          "schema": {
            "title": "buyerPortUUID",
            "type": "string"
          }
        },
        {
          "name": "searchType",
          "type": "string",
          "info": "AND or OR Value: Must be one of [AND, OR]",
          "required": false,
          "schema": {
            "title": "searchType",
            "type": "string"
          }
        },
        {
          "name": "subAccount",
          "type": "string",
          "info": "Applicable only to Resellers to fetch connections of their Sub-Account customers: string",
          "required": false,
          "schema": {
            "title": "subAccount",
            "type": "string"
          }
        },
        {
          "name": "pageNumber",
          "type": "number",
          "info": "page number: 123",
          "required": false,
          "schema": {
            "title": "pageNumber",
            "type": "number"
          }
        },
        {
          "name": "pageSize",
          "type": "number",
          "info": "total number of records: 123",
          "required": false,
          "schema": {
            "title": "pageSize",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "pageSize": {
              "type": "integer",
              "example": 10000
            },
            "content": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "asideEncapsulation": {
                    "type": "string",
                    "example": "dot1q"
                  },
                  "zsideEncapsulation": {
                    "type": "string",
                    "example": "dot1q"
                  },
                  "authorizationKey": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "billingTier": {
                    "type": "string",
                    "example": "Up to 50 MB"
                  },
                  "buyerOrganizationName": {
                    "type": "string",
                    "example": "Sandbox User"
                  },
                  "createdBy": {
                    "type": "string",
                    "example": "Sandbox User"
                  },
                  "createdByEmail": {
                    "type": "string",
                    "example": "sandboxuser@example-company.com"
                  },
                  "createdByFullName": {
                    "type": "string",
                    "example": "Sandbox USER"
                  },
                  "createdDate": {
                    "type": "string",
                    "example": "2018-04-12T18:05:24.167Z"
                  },
                  "lastUpdatedBy": {
                    "type": "string",
                    "example": "Sandbox User"
                  },
                  "lastUpdatedByEmail": {
                    "type": "string",
                    "example": "sandboxuser@example-company.com"
                  },
                  "lastUpdatedByFullName": {
                    "type": "string",
                    "example": "Sandbox User"
                  },
                  "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-04-12T17:13:53.031Z"
                  },
                  "metroCode": {
                    "type": "string",
                    "example": "CH"
                  },
                  "metroDescription": {
                    "type": "string",
                    "example": "Chicago"
                  },
                  "name": {
                    "type": "string",
                    "example": "Sandbox 001S"
                  },
                  "namedTag": {
                    "type": "string"
                  },
                  "notifications": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "sandboxuser@example-company.com"
                    }
                  },
                  "portName": {
                    "type": "string",
                    "example": "sit-001-CX-TES-L-Dot1q-BO-PRI-95-1G"
                  },
                  "portUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "private": {
                    "type": "boolean",
                    "example": false
                  },
                  "purchaseOrderNumber": {
                    "type": "string",
                    "example": "111"
                  },
                  "redundancyGroup": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "redundancyType": {
                    "type": "string",
                    "example": "secondary"
                  },
                  "redundantUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "remote": {
                    "type": "boolean",
                    "example": true
                  },
                  "self": {
                    "type": "boolean",
                    "example": false
                  },
                  "sellerMetroCode": {
                    "type": "string",
                    "example": "Sv"
                  },
                  "sellerMetroDescription": {
                    "type": "string",
                    "example": "Silicon Valley"
                  },
                  "sellerOrganizationName": {
                    "type": "string",
                    "example": "sit-001"
                  },
                  "sellerServiceName": {
                    "type": "string",
                    "example": "Azure Express Route"
                  },
                  "sellerServiceUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "speed": {
                    "type": "integer",
                    "example": 50
                  },
                  "speedUnit": {
                    "type": "string",
                    "example": "MB"
                  },
                  "sellerRegion": {
                    "type": "string",
                    "example": "us-west-1"
                  },
                  "sellerApprovedBandwidth": {
                    "type": "boolean",
                    "example": false
                  },
                  "updateInProgress": {
                    "type": "boolean",
                    "example": false
                  },
                  "providerStatus": {
                    "type": "string",
                    "example": "PROVISIONED"
                  },
                  "status": {
                    "type": "string",
                    "example": "PROVISIONED"
                  },
                  "uuid": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "vlanSTag": {
                    "type": "integer",
                    "example": 11
                  },
                  "zSidePortName": {
                    "type": "string",
                    "example": "SJC-TEST-TEST-06TES-CIS-5-TES-A"
                  },
                  "zSidePortUUID": {
                    "type": "string",
                    "example": "xxxxx191-xx70-xxxx-xx04-xxxxxxxa37xx"
                  },
                  "zSideVlanCTag": {
                    "type": "integer",
                    "example": 201
                  },
                  "zSideVlanSTag": {
                    "type": "integer",
                    "example": 11
                  },
                  "actionDetails": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "actionType": {
                          "type": "string",
                          "example": "EQUINIX_EXECUTE_ACTION"
                        },
                        "operationId": {
                          "type": "string",
                          "example": "CONFIRM_CONNECTION"
                        },
                        "actionMessage": {
                          "type": "string",
                          "example": "Please provide the following credentials so that we can confirm the connection on your behalf."
                        },
                        "actionRequiredData": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string",
                                "example": "secretKey"
                              },
                              "label": {
                                "type": "string",
                                "example": "Secret Key"
                              },
                              "value": {
                                "type": "string",
                                "example": "xxxx-xxxxxxxx"
                              },
                              "editable": {
                                "type": "boolean",
                                "example": false
                              },
                              "validationPattern": {
                                "type": "string",
                                "example": {
                                  "RegexForString10chars": null
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "isFirstPage": {
              "type": "boolean",
              "example": true
            },
            "isLastPage": {
              "type": "boolean",
              "example": true
            },
            "pageNumber": {
              "type": "integer",
              "example": 0
            },
            "totalCount": {
              "type": "integer",
              "example": 9
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAllBuyerConnectionsUsingGET"
      },
      "task": true
    },
    {
      "name": "getL2PricesUsingGET",
      "summary": "Get Layer 2 connection pricing",
      "description": "This API is used to get the pricing details for Layer 2 local and remote connections.",
      "input": [
        {
          "name": "destinationMetro",
          "type": "string",
          "info": "destinationMetro: string",
          "required": true,
          "schema": {
            "title": "destinationMetro",
            "type": "string"
          }
        },
        {
          "name": "customSpeeds",
          "type": "array",
          "info": "customSpeeds: array",
          "required": false,
          "schema": {
            "title": "customSpeeds",
            "type": "array"
          }
        },
        {
          "name": "portUUID",
          "type": "string",
          "info": "portUUID: string",
          "required": true,
          "schema": {
            "title": "portUUID",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "example": "USD"
            },
            "destinationMetro": {
              "type": "string",
              "example": "SV"
            },
            "originMetro": {
              "type": "string",
              "example": "SV"
            },
            "priceList": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "connectionType": {
                    "type": "string",
                    "example": "localConnection"
                  },
                  "prices": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "price": {
                          "type": "string",
                          "example": "150.0"
                        },
                        "unit": {
                          "type": "string",
                          "example": "Mbps"
                        },
                        "speedBillingTier": {
                          "type": "string",
                          "example": "500"
                        }
                      },
                      "title": "Price"
                    }
                  },
                  "productName": {
                    "type": "string",
                    "example": "ECX Fabric Service Provider Product"
                  }
                },
                "title": "BillingTier"
              }
            }
          },
          "title": "OrderPrice"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getL2PricesUsingGET"
      },
      "task": true
    },
    {
      "name": "getBuyerPreferenceUsingGET",
      "summary": "Get bandwidth alert preference",
      "description": "Get preferences such as the email address on which notifications related to port utilization are received.",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "emails": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "sandboxuser@example-company.com"
              }
            },
            "portThreshold": {
              "type": "integer",
              "format": "int32",
              "example": 20
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getBuyerPreferenceUsingGET"
      },
      "task": true
    },
    {
      "name": "saveBuyerPreferenceUsingPOST",
      "summary": "Create bandwidth alert preference",
      "description": "Create preferences such as the email address on which notifications related to port utilization are received.",
      "input": [
        {
          "name": "request",
          "type": "object",
          "info": "request: {\"emails\": \"array\", \"portThreshold\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "emails": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "sandboxuser@example-company.com"
                }
              },
              "portThreshold": {
                "type": "integer",
                "format": "int32",
                "example": 20
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "emails": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "sandboxuser@example-company.com"
              }
            },
            "portThreshold": {
              "type": "integer",
              "format": "int32",
              "example": 20
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/saveBuyerPreferenceUsingPOST"
      },
      "task": true
    },
    {
      "name": "updateBuyerPreferenceUsingPUT",
      "summary": "Update bandwidth alert preference",
      "description": "Update preferences such as the email address on which notifications related to port utilization are received.",
      "input": [
        {
          "name": "request",
          "type": "object",
          "info": "request: {\"emails\": \"array\", \"portThreshold\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "emails": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "sandboxuser@example-company.com"
                }
              },
              "portThreshold": {
                "type": "integer",
                "format": "int32",
                "example": 20
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "emails": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "sandboxuser@example-company.com"
              }
            },
            "portThreshold": {
              "type": "integer",
              "format": "int32",
              "example": 20
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateBuyerPreferenceUsingPUT"
      },
      "task": true
    },
    {
      "name": "deleteBuyerPreferenceUsingDELETE",
      "summary": "Delete bandwidth alert preference",
      "description": "Delete preferences such as the email address on which notifications related to port utilization are received.",
      "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": "/deleteBuyerPreferenceUsingDELETE"
      },
      "task": true
    },
    {
      "name": "getAllSellerProfileUsingGET",
      "summary": "Get all service profiles",
      "description": "Get all service profiles with details. Profiles can be filtered by - pending approval, approved, rejected or deleted. The details include the ports associated with each of these profiles.",
      "input": [
        {
          "name": "pageNumber",
          "type": "number",
          "info": "page number: 123",
          "required": false,
          "schema": {
            "title": "pageNumber",
            "type": "number"
          }
        },
        {
          "name": "pageSize",
          "type": "number",
          "info": "total number of records: 123",
          "required": false,
          "schema": {
            "title": "pageSize",
            "type": "number"
          }
        },
        {
          "name": "state",
          "type": "array",
          "info": "state of the profile requested: array",
          "required": false,
          "schema": {
            "title": "state",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "pageSize": {
              "type": "integer",
              "example": 20
            },
            "content": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "uuid": {
                    "type": "string",
                    "example": "xxxxxxxx-cdaa-44e7-bd36-xxxxxxxxxxxx"
                  },
                  "name": {
                    "type": "string",
                    "example": "Oracle Cloud Infrastructure -OCI- FastConnect"
                  },
                  "requiredRedundancy": {
                    "type": "boolean",
                    "example": false
                  },
                  "authKeyLabel": {
                    "type": "string",
                    "example": "Virtual Circuit OCID"
                  },
                  "connectionNameLabel": {
                    "type": "string",
                    "example": "Example company Virtual Circuit"
                  },
                  "equinixManagedPortAndVlan": {
                    "type": "boolean",
                    "example": true
                  },
                  "integrationId": {
                    "type": "string",
                    "example": "Example-company-CrossConnect-01"
                  },
                  "apiAvailable": {
                    "type": "boolean",
                    "example": true
                  },
                  "allowOverSubscription": {
                    "type": "boolean",
                    "example": true
                  },
                  "overSubscription": {
                    "type": "string",
                    "example": "5x"
                  },
                  "vlanSameAsPrimary": {
                    "type": "boolean",
                    "example": false
                  },
                  "tagType": {
                    "type": "string",
                    "example": "CTAGED"
                  },
                  "enableAutoGenerateServiceKey": {
                    "type": "boolean",
                    "example": false
                  },
                  "ctagLabel": {
                    "type": "string",
                    "example": "Seller-Side C-Tag"
                  },
                  "namedTags": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "-Microsoft -Public -Private"
                    }
                  },
                  "alertPercentage": {
                    "type": "integer",
                    "example": 50
                  },
                  "onProfileApprovalRejectNotification": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "sandboxuser@examplecompany.com, sandboxuser1@examplecompany.com"
                    }
                  },
                  "onBandwidthThresholdNotification": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "sandboxuser@examplecompany.com, sandboxuser1@examplecompany.com"
                    }
                  },
                  "onVcApprovalRejectionNotification": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "sandboxuser@examplecompany.com, sandboxuser1@examplecompany.com"
                    }
                  },
                  "ports": {
                    "type": "object",
                    "properties": {
                      "crossConnectId": {
                        "type": "string",
                        "example": "xyz:crossConnect:ws36onof3dbxv4bfywjy52u"
                      },
                      "id": {
                        "type": "string",
                        "example": "5E89B4A3FxxxxxxxxxxxxACC88C08A35"
                      },
                      "inTrail": {
                        "type": "boolean",
                        "example": false
                      },
                      "metroCode": {
                        "type": "string",
                        "example": "SV"
                      },
                      "sellerRegion": {
                        "type": "string",
                        "example": "us-east-1"
                      },
                      "sellerRegionDescription": {
                        "type": "string",
                        "example": "Added for AWS"
                      },
                      "xa": {
                        "type": "object"
                      }
                    }
                  },
                  "allowCustomSpeed": {
                    "type": "boolean",
                    "example": false
                  },
                  "speedFromAPI": {
                    "type": "boolean",
                    "example": true
                  },
                  "connectionAccessibility": {
                    "type": "string",
                    "example": "HYBRID"
                  },
                  "speedBands": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "speed": {
                          "type": "number",
                          "format": "double",
                          "example": 0
                        },
                        "unit": {
                          "type": "string",
                          "example": "MB"
                        }
                      }
                    }
                  },
                  "description": {
                    "type": "string",
                    "example": "<p>12</p>"
                  },
                  "authorizationKey": {
                    "type": "string",
                    "example": ""
                  },
                  "state": {
                    "type": "string",
                    "example": "APPROVED"
                  },
                  "createdDate": {
                    "type": "string",
                    "example": "2017-05-09T08:28:02Z"
                  },
                  "createdBy": {
                    "type": "string",
                    "example": "sandboxuser@examplecompany.com"
                  },
                  "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-04-03T20:28:43.911Z"
                  },
                  "lastUpdatedBy": {
                    "type": "string",
                    "example": "sandboxuser2@examplecompany.com2"
                  },
                  "custOrgId": {
                    "type": "number",
                    "format": "long",
                    "example": 12345
                  },
                  "metadata": {
                    "type": "object",
                    "properties": {
                      "is_release_vlan": {
                        "type": "boolean",
                        "example": false
                      },
                      "globalOrganization": {
                        "type": "string",
                        "example": "Example provider"
                      },
                      "limit_auth_key_conn": {
                        "type": "boolean",
                        "example": true
                      }
                    }
                  },
                  "createdByFullName": {
                    "type": "string",
                    "example": "sandboxuser"
                  },
                  "lastUpdatedByFullName": {
                    "type": "string",
                    "example": "sandboxuser"
                  },
                  "createdByEmail": {
                    "type": "string",
                    "example": "sandboxuser2@examplecompany.com"
                  },
                  "updatedByEmail": {
                    "type": "string",
                    "example": "sandboxuser2@examplecompany.com"
                  },
                  "globalOrganization": {
                    "type": "string",
                    "example": "Example provider"
                  },
                  "organizationName": {
                    "type": "string",
                    "example": "oracle Public Cloud Group "
                  },
                  "private": {
                    "type": "boolean",
                    "example": true
                  },
                  "allowHighAvailability": {
                    "type": "boolean",
                    "example": true
                  },
                  "allowAuthorizationKeyReUse": {
                    "type": "boolean",
                    "example": false
                  },
                  "allowSecondaryLocation": {
                    "type": "boolean",
                    "example": true
                  },
                  "features": {
                    "type": "object",
                    "properties": {
                      "cloudReach": {
                        "type": "boolean",
                        "example": true
                      },
                      "testProfile": {
                        "type": "boolean",
                        "example": false
                      }
                    }
                  }
                }
              }
            },
            "pageNumber": {
              "type": "integer",
              "example": 0
            },
            "isLastPage": {
              "type": "boolean",
              "example": true
            },
            "totalCount": {
              "type": "integer",
              "example": 2
            },
            "isFirstPage": {
              "type": "boolean",
              "example": true
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAllSellerProfileUsingGET"
      },
      "task": true
    },
    {
      "name": "createServiceProfileUsingPOST",
      "summary": "Create Layer 2 Service profile",
      "description": "Create a service profile to offer services on the ECX Fabric platform. The parameters including bandwidths, information to request from customers wishing to connect, the type of service (private/public) and other information about how an ECX participant may want to offer their services.",
      "input": [
        {
          "name": "profileModel",
          "type": "object",
          "info": "profileModel: {\"additionalBuyerInfo\": [{\"captureInEmail\": \"boolean\", \"datatype\": \"Must be one of [INTEGER, BOOLEAN, LONG, FLOAT, DOUBLE, STRING]\", \"description\": \"string\", \"mandatory\": \"boolean\", \"name\": \"string\"}], \"alertPercentage\": 123, \"allowCustomSpeed\": \"boolean\", \"apiAvailable\": \"boolean\", \"authKeyLabel\": \"string\", \"connectionAccessibility\": \"Must be one of [PUBLIC, PRIVATE, HYBRID]\", \"connectionNameLabel\": \"string\", \"ctagLabel\": \"string\", \"description\": \"string\", \"equinixManagedPortAndVlan\": \"boolean\", \"features\": {\"cloudReach\": \"boolean\", \"testProfile\": \"boolean\"}, \"integrationId\": \"string\", \"namedTags\": \"array\", \"ports\": [{\"crossConnectId\": \"string\", \"id\": \"string\", \"inTrail\": \"boolean\", \"metroCode\": \"string\", \"sellerRegion\": \"string\", \"sellerRegionDescription\": \"string\", \"xa\": \"object\"}], \"private\": \"boolean\", \"requiredRedundancy\": \"boolean\", \"speedBands\": [{\"speed\": 123, \"unit\": \"string\"}], \"speedFromAPI\": \"boolean\", \"tagType\": \"Must be one of [CTAGED, BOTH, NAMED]\", \"uuid\": \"string\", \"status\": \"string\", \"vlanSameAsPrimary\": \"boolean\", \"name\": \"string\", \"onBandwidthThresholdNotification\": \"array\", \"onProfileApprovalRejectNotification\": \"array\", \"onVcApprovalRejectionNotification\": \"array\", \"privateUserEmails\": \"array\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "additionalBuyerInfo": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "captureInEmail": {
                      "type": "boolean",
                      "example": true
                    },
                    "datatype": {
                      "type": "string",
                      "example": "STRING",
                      "enum": [
                        "INTEGER",
                        "BOOLEAN",
                        "LONG",
                        "FLOAT",
                        "DOUBLE",
                        "STRING"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "example": "custBGPAssn description"
                    },
                    "mandatory": {
                      "type": "boolean",
                      "example": true
                    },
                    "name": {
                      "type": "string",
                      "example": "custBGPAssn"
                    }
                  }
                }
              },
              "alertPercentage": {
                "type": "number",
                "format": "double",
                "example": 10
              },
              "allowCustomSpeed": {
                "type": "boolean",
                "example": false
              },
              "apiAvailable": {
                "type": "boolean",
                "example": true
              },
              "authKeyLabel": {
                "type": "string",
                "example": "Authorization Key",
                "description": "specify the authenticaion key label that will be shown while creating connection"
              },
              "connectionAccessibility": {
                "type": "string",
                "example": "HYBRID",
                "enum": [
                  "PUBLIC",
                  "PRIVATE",
                  "HYBRID"
                ]
              },
              "connectionNameLabel": {
                "type": "string",
                "example": "Connection Names",
                "description": "specify the aConnection Names label that will be shown while creating connection"
              },
              "ctagLabel": {
                "type": "string",
                "example": "C-Tag"
              },
              "description": {
                "type": "string",
                "example": "this profile is test profile example"
              },
              "equinixManagedPortAndVlan": {
                "type": "boolean",
                "example": true,
                "description": "specify if profile is equinix managed or not"
              },
              "features": {
                "type": "object",
                "properties": {
                  "cloudReach": {
                    "type": "boolean",
                    "example": true
                  },
                  "testProfile": {
                    "type": "boolean",
                    "example": true
                  }
                }
              },
              "integrationId": {
                "type": "string",
                "example": "34254"
              },
              "namedTags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "ports": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "crossConnectId": {
                      "type": "string",
                      "example": "xyz:crossConnect:ws36onof3dbxv4bfywjy52u"
                    },
                    "id": {
                      "type": "string",
                      "example": "5E89B4A3FxxxxxxxxxxxxACC88C08A35"
                    },
                    "inTrail": {
                      "type": "boolean",
                      "example": false
                    },
                    "metroCode": {
                      "type": "string",
                      "example": "SV"
                    },
                    "sellerRegion": {
                      "type": "string",
                      "example": "us-east-1"
                    },
                    "sellerRegionDescription": {
                      "type": "string",
                      "example": "Added for AWS"
                    },
                    "xa": {
                      "type": "object"
                    }
                  }
                }
              },
              "private": {
                "type": "boolean",
                "example": true
              },
              "requiredRedundancy": {
                "type": "boolean",
                "example": false,
                "description": "spacify if the redundancy of the connection required or not"
              },
              "speedBands": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "speed": {
                      "type": "number",
                      "format": "double",
                      "example": 0
                    },
                    "unit": {
                      "type": "string",
                      "example": "MB"
                    }
                  }
                }
              },
              "speedFromAPI": {
                "type": "boolean",
                "example": false
              },
              "tagType": {
                "type": "string",
                "example": "BOTH",
                "enum": [
                  "CTAGED",
                  "BOTH",
                  "NAMED"
                ]
              },
              "uuid": {
                "type": "string",
                "example": "xxxxx02e-c2f9-xxxx-xxxx-9fba9e7xxxxx",
                "description": "need only in case of update"
              },
              "status": {
                "type": "string"
              },
              "vlanSameAsPrimary": {
                "type": "boolean",
                "example": false,
                "description": "specify if vlan is same as primary or not"
              },
              "name": {
                "type": "string",
                "example": "ServiceProfileNoDuplicateName",
                "description": "name of service profile"
              },
              "onBandwidthThresholdNotification": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "sandboxuser@examplecompany.com"
                  ]
                }
              },
              "onProfileApprovalRejectNotification": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "sandboxuser@examplecompany.com"
                  ]
                }
              },
              "onVcApprovalRejectionNotification": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "test@test.com"
                  ]
                }
              },
              "privateUserEmails": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "sandboxuser@examplecompany.com"
                  ]
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createServiceProfileUsingPOST"
      },
      "task": true
    },
    {
      "name": "updateL2ServiceProfileUsingPUT",
      "summary": "Update Layer 2 Service profile",
      "description": "Update existing Layer 2 service profile. For example, participants have the ability to set a threshold percentage in their service profile for which they will be notified if the allocated/purchased bandwidth on their ports that are associated with that profile exceeds the threshold.",
      "input": [
        {
          "name": "profileModel",
          "type": "object",
          "info": "profileModel: {\"additionalBuyerInfo\": [{\"captureInEmail\": \"boolean\", \"datatype\": \"Must be one of [INTEGER, BOOLEAN, LONG, FLOAT, DOUBLE, STRING]\", \"description\": \"string\", \"mandatory\": \"boolean\", \"name\": \"string\"}], \"alertPercentage\": 123, \"allowCustomSpeed\": \"boolean\", \"apiAvailable\": \"boolean\", \"authKeyLabel\": \"string\", \"connectionAccessibility\": \"Must be one of [PUBLIC, PRIVATE, HYBRID]\", \"connectionNameLabel\": \"string\", \"ctagLabel\": \"string\", \"description\": \"string\", \"equinixManagedPortAndVlan\": \"boolean\", \"features\": {\"cloudReach\": \"boolean\", \"testProfile\": \"boolean\"}, \"integrationId\": \"string\", \"namedTags\": \"array\", \"ports\": [{\"crossConnectId\": \"string\", \"id\": \"string\", \"inTrail\": \"boolean\", \"metroCode\": \"string\", \"sellerRegion\": \"string\", \"sellerRegionDescription\": \"string\", \"xa\": \"object\"}], \"private\": \"boolean\", \"requiredRedundancy\": \"boolean\", \"speedBands\": [{\"speed\": 123, \"unit\": \"string\"}], \"speedFromAPI\": \"boolean\", \"tagType\": \"Must be one of [CTAGED, BOTH, NAMED]\", \"uuid\": \"string\", \"status\": \"string\", \"vlanSameAsPrimary\": \"boolean\", \"name\": \"string\", \"onBandwidthThresholdNotification\": \"array\", \"onProfileApprovalRejectNotification\": \"array\", \"onVcApprovalRejectionNotification\": \"array\", \"privateUserEmails\": \"array\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "additionalBuyerInfo": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "captureInEmail": {
                      "type": "boolean",
                      "example": true
                    },
                    "datatype": {
                      "type": "string",
                      "example": "STRING",
                      "enum": [
                        "INTEGER",
                        "BOOLEAN",
                        "LONG",
                        "FLOAT",
                        "DOUBLE",
                        "STRING"
                      ]
                    },
                    "description": {
                      "type": "string",
                      "example": "custBGPAssn description"
                    },
                    "mandatory": {
                      "type": "boolean",
                      "example": true
                    },
                    "name": {
                      "type": "string",
                      "example": "custBGPAssn"
                    }
                  }
                }
              },
              "alertPercentage": {
                "type": "number",
                "format": "double",
                "example": 10
              },
              "allowCustomSpeed": {
                "type": "boolean",
                "example": false
              },
              "apiAvailable": {
                "type": "boolean",
                "example": true
              },
              "authKeyLabel": {
                "type": "string",
                "example": "Authorization Key",
                "description": "specify the authenticaion key label that will be shown while creating connection"
              },
              "connectionAccessibility": {
                "type": "string",
                "example": "HYBRID",
                "enum": [
                  "PUBLIC",
                  "PRIVATE",
                  "HYBRID"
                ]
              },
              "connectionNameLabel": {
                "type": "string",
                "example": "Connection Names",
                "description": "specify the aConnection Names label that will be shown while creating connection"
              },
              "ctagLabel": {
                "type": "string",
                "example": "C-Tag"
              },
              "description": {
                "type": "string",
                "example": "this profile is test profile example"
              },
              "equinixManagedPortAndVlan": {
                "type": "boolean",
                "example": true,
                "description": "specify if profile is equinix managed or not"
              },
              "features": {
                "type": "object",
                "properties": {
                  "cloudReach": {
                    "type": "boolean",
                    "example": true
                  },
                  "testProfile": {
                    "type": "boolean",
                    "example": true
                  }
                }
              },
              "integrationId": {
                "type": "string",
                "example": "34254"
              },
              "namedTags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "ports": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "crossConnectId": {
                      "type": "string",
                      "example": "xyz:crossConnect:ws36onof3dbxv4bfywjy52u"
                    },
                    "id": {
                      "type": "string",
                      "example": "5E89B4A3FxxxxxxxxxxxxACC88C08A35"
                    },
                    "inTrail": {
                      "type": "boolean",
                      "example": false
                    },
                    "metroCode": {
                      "type": "string",
                      "example": "SV"
                    },
                    "sellerRegion": {
                      "type": "string",
                      "example": "us-east-1"
                    },
                    "sellerRegionDescription": {
                      "type": "string",
                      "example": "Added for AWS"
                    },
                    "xa": {
                      "type": "object"
                    }
                  }
                }
              },
              "private": {
                "type": "boolean",
                "example": true
              },
              "requiredRedundancy": {
                "type": "boolean",
                "example": false,
                "description": "spacify if the redundancy of the connection required or not"
              },
              "speedBands": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "speed": {
                      "type": "number",
                      "format": "double",
                      "example": 0
                    },
                    "unit": {
                      "type": "string",
                      "example": "MB"
                    }
                  }
                }
              },
              "speedFromAPI": {
                "type": "boolean",
                "example": false
              },
              "tagType": {
                "type": "string",
                "example": "BOTH",
                "enum": [
                  "CTAGED",
                  "BOTH",
                  "NAMED"
                ]
              },
              "uuid": {
                "type": "string",
                "example": "xxxxx02e-c2f9-xxxx-xxxx-9fba9e7xxxxx",
                "description": "need only in case of update"
              },
              "status": {
                "type": "string"
              },
              "vlanSameAsPrimary": {
                "type": "boolean",
                "example": false,
                "description": "specify if vlan is same as primary or not"
              },
              "name": {
                "type": "string",
                "example": "ServiceProfileNoDuplicateName",
                "description": "name of service profile"
              },
              "onBandwidthThresholdNotification": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "sandboxuser@examplecompany.com"
                  ]
                }
              },
              "onProfileApprovalRejectNotification": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "sandboxuser@examplecompany.com"
                  ]
                }
              },
              "onVcApprovalRejectionNotification": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "test@test.com"
                  ]
                }
              },
              "privateUserEmails": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "sandboxuser@examplecompany.com"
                  ]
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "example": "ecf3b154-xxxx-4b30-xxxx-219xxxx400a0"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateL2ServiceProfileUsingPUT"
      },
      "task": true
    },
    {
      "name": "validateIntegrationIdUsingGET",
      "summary": "Validate integration id",
      "description": "Some destinations on the ECX Fabric platform have been integrated with the ECX APIs (ex. AWS and Azure). This API is used to validate an integration id and returns all the regions that are associated with that destination (Ex. AWS East Region 1, etc.).",
      "input": [
        {
          "name": "integrationId",
          "type": "string",
          "info": "integrationId: string",
          "required": true,
          "schema": {
            "title": "integrationId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "example": "Example company API integration"
            },
            "metadata": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "example": "crossconnect"
                  },
                  "value": {
                    "type": "string",
                    "example": "true"
                  }
                }
              }
            },
            "redundancy": {
              "type": "string",
              "example": "SINGLE"
            },
            "sellerRegions": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "interconnectionRegion": {
                    "type": "string"
                  },
                  "regionData": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "example": "Phoenix region obmc"
                        },
                        "key": {
                          "type": "string",
                          "example": "us-phoenix-1"
                        }
                      }
                    }
                  }
                }
              }
            },
            "state": {
              "type": "string",
              "example": "VALID"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/validateIntegrationIdUsingGET"
      },
      "task": true
    },
    {
      "name": "deleteProfileByProfileNameOrUUIDUsingDELETE",
      "summary": "Delete service profile by uuid",
      "description": "Delete a service profile specified by its name or uuid. The expected response would be that the deletion was successful.",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "uuids: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "message": {
              "type": "string",
              "example": "[698e6100-xxxx-48ee-xxxx-xxxxxxxxxxxxx] successfully deleted"
            },
            "status": {
              "type": "string",
              "example": "SUCCESS"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteProfileByProfileNameOrUUIDUsingDELETE"
      },
      "task": true
    },
    {
      "name": "getProfileByIdOrNameUsingGET",
      "summary": "Get service profiles",
      "description": "Get details about all service profiles that meet a particular search criterion which can be either the profile name or the uuid (the unique identifier associated with a service).",
      "input": [
        {
          "name": "uuid",
          "type": "string",
          "info": "service profile uuid: string",
          "required": true,
          "schema": {
            "title": "uuid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "uuid": {
              "type": "string",
              "example": "xxxxxxxx-cdaa-44e7-bd36-xxxxxxxxxxxx"
            },
            "name": {
              "type": "string",
              "example": "Oracle Cloud Infrastructure -OCI- FastConnect"
            },
            "requiredRedundancy": {
              "type": "boolean",
              "example": false
            },
            "authKeyLabel": {
              "type": "string",
              "example": "Virtual Circuit OCID"
            },
            "connectionNameLabel": {
              "type": "string",
              "example": "Example company Virtual Circuit"
            },
            "equinixManagedPortAndVlan": {
              "type": "boolean",
              "example": true
            },
            "integrationId": {
              "type": "string",
              "example": "Example-company-CrossConnect-01"
            },
            "apiAvailable": {
              "type": "boolean",
              "example": true
            },
            "allowOverSubscription": {
              "type": "boolean",
              "example": true
            },
            "overSubscription": {
              "type": "string",
              "example": "5x"
            },
            "vlanSameAsPrimary": {
              "type": "boolean",
              "example": false
            },
            "tagType": {
              "type": "string",
              "example": "CTAGED"
            },
            "enableAutoGenerateServiceKey": {
              "type": "boolean",
              "example": false
            },
            "ctagLabel": {
              "type": "string",
              "example": "Seller-Side C-Tag"
            },
            "namedTags": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "-Microsoft -Public -Private"
              }
            },
            "alertPercentage": {
              "type": "integer",
              "example": 50
            },
            "onProfileApprovalRejectNotification": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "sandboxuser@examplecompany.com, sandboxuser1@examplecompany.com"
              }
            },
            "onBandwidthThresholdNotification": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "sandboxuser@examplecompany.com, sandboxuser1@examplecompany.com"
              }
            },
            "onVcApprovalRejectionNotification": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "sandboxuser@examplecompany.com, sandboxuser1@examplecompany.com"
              }
            },
            "ports": {
              "type": "object",
              "properties": {
                "crossConnectId": {
                  "type": "string",
                  "example": "xyz:crossConnect:ws36onof3dbxv4bfywjy52u"
                },
                "id": {
                  "type": "string",
                  "example": "5E89B4A3FxxxxxxxxxxxxACC88C08A35"
                },
                "inTrail": {
                  "type": "boolean",
                  "example": false
                },
                "metroCode": {
                  "type": "string",
                  "example": "SV"
                },
                "sellerRegion": {
                  "type": "string",
                  "example": "us-east-1"
                },
                "sellerRegionDescription": {
                  "type": "string",
                  "example": "Added for AWS"
                },
                "xa": {
                  "type": "object"
                }
              }
            },
            "allowCustomSpeed": {
              "type": "boolean",
              "example": false
            },
            "speedFromAPI": {
              "type": "boolean",
              "example": true
            },
            "connectionAccessibility": {
              "type": "string",
              "example": "HYBRID"
            },
            "speedBands": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "speed": {
                    "type": "number",
                    "format": "double",
                    "example": 0
                  },
                  "unit": {
                    "type": "string",
                    "example": "MB"
                  }
                }
              }
            },
            "description": {
              "type": "string",
              "example": "<p>12</p>"
            },
            "authorizationKey": {
              "type": "string",
              "example": ""
            },
            "state": {
              "type": "string",
              "example": "APPROVED"
            },
            "createdDate": {
              "type": "string",
              "example": "2017-05-09T08:28:02Z"
            },
            "createdBy": {
              "type": "string",
              "example": "sandboxuser@examplecompany.com"
            },
            "lastUpdatedDate": {
              "type": "string",
              "example": "2018-04-03T20:28:43.911Z"
            },
            "lastUpdatedBy": {
              "type": "string",
              "example": "sandboxuser2@examplecompany.com2"
            },
            "custOrgId": {
              "type": "number",
              "format": "long",
              "example": 12345
            },
            "metadata": {
              "type": "object",
              "properties": {
                "is_release_vlan": {
                  "type": "boolean",
                  "example": false
                },
                "globalOrganization": {
                  "type": "string",
                  "example": "Example provider"
                },
                "limit_auth_key_conn": {
                  "type": "boolean",
                  "example": true
                }
              }
            },
            "createdByFullName": {
              "type": "string",
              "example": "sandboxuser"
            },
            "lastUpdatedByFullName": {
              "type": "string",
              "example": "sandboxuser"
            },
            "createdByEmail": {
              "type": "string",
              "example": "sandboxuser2@examplecompany.com"
            },
            "updatedByEmail": {
              "type": "string",
              "example": "sandboxuser2@examplecompany.com"
            },
            "globalOrganization": {
              "type": "string",
              "example": "Example provider"
            },
            "organizationName": {
              "type": "string",
              "example": "oracle Public Cloud Group "
            },
            "private": {
              "type": "boolean",
              "example": true
            },
            "allowHighAvailability": {
              "type": "boolean",
              "example": true
            },
            "allowAuthorizationKeyReUse": {
              "type": "boolean",
              "example": false
            },
            "allowSecondaryLocation": {
              "type": "boolean",
              "example": true
            },
            "features": {
              "type": "object",
              "properties": {
                "cloudReach": {
                  "type": "boolean",
                  "example": true
                },
                "testProfile": {
                  "type": "boolean",
                  "example": false
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getProfileByIdOrNameUsingGET"
      },
      "task": true
    },
    {
      "name": "getSellerConnectionsUsingGET",
      "summary": "Get all of my connections",
      "description": "Get all connections where the specified service profile is a destination on the ECX platform. This API is useful to monitor the number of connections on existing ports and the amount of bandwidth consumed by these connections.",
      "input": [
        {
          "name": "status",
          "type": "array",
          "info": "connection status: array",
          "required": false,
          "schema": {
            "title": "status",
            "type": "array"
          }
        },
        {
          "name": "metroCode",
          "type": "string",
          "info": "Seller metro code: string",
          "required": false,
          "schema": {
            "title": "metroCode",
            "type": "string"
          }
        },
        {
          "name": "portName",
          "type": "string",
          "info": "Seller port name: string",
          "required": false,
          "schema": {
            "title": "portName",
            "type": "string"
          }
        },
        {
          "name": "state",
          "type": "string",
          "info": "Seller connection status: string",
          "required": false,
          "schema": {
            "title": "state",
            "type": "string"
          }
        },
        {
          "name": "profileId",
          "type": "string",
          "info": "Seller service profile id: string",
          "required": false,
          "schema": {
            "title": "profileId",
            "type": "string"
          }
        },
        {
          "name": "pageNumber",
          "type": "number",
          "info": "page number: 123",
          "required": false,
          "schema": {
            "title": "pageNumber",
            "type": "number"
          }
        },
        {
          "name": "pageSize",
          "type": "number",
          "info": "total number of records: 123",
          "required": false,
          "schema": {
            "title": "pageSize",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "content": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "asideEncapsulation": {
                    "type": "string",
                    "example": "qinq"
                  },
                  "authorizationKey": {
                    "type": "string",
                    "example": "xxxxxxxx-xxxx-43a0-xxxx-xxxxxxxxxxxx"
                  },
                  "billingTier": {
                    "type": "string",
                    "example": "Up to 50 MB"
                  },
                  "buyerOrganizationName": {
                    "type": "string",
                    "example": "Example Organisation"
                  },
                  "createdBy": {
                    "type": "string",
                    "example": "sandboxuser@examplecompany.com"
                  },
                  "createdByEmail": {
                    "type": "string",
                    "example": "sandboxuser@examplecompany.com"
                  },
                  "createdByFullName": {
                    "type": "string",
                    "example": "sandbox user"
                  },
                  "createdDate": {
                    "type": "string",
                    "example": "2018-04-03T14:53:42.603Z"
                  },
                  "deletedBy": {
                    "type": "string",
                    "example": "sandboxuser@examplecompany.com"
                  },
                  "deletedByEmail": {
                    "type": "string",
                    "example": "sandboxuser@examplecompany.com"
                  },
                  "deletedDate": {
                    "type": "string",
                    "example": "2018-04-03T14:54:16.185Z"
                  },
                  "lastUpdatedBy": {
                    "type": "string",
                    "example": "sandboxuser@examplecompany.com"
                  },
                  "lastUpdatedByEmail": {
                    "type": "string",
                    "example": "sandboxuser@examplecompany.com"
                  },
                  "lastUpdatedByFullName": {
                    "type": "string",
                    "example": "sandbox user"
                  },
                  "lastUpdatedDate": {
                    "type": "string",
                    "example": "2018-04-03T14:53:42.603Z"
                  },
                  "metadata": {
                    "type": "object",
                    "properties": {
                      "notification_emails": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "example": "sandboxuser@examplecompany.com"
                        }
                      }
                    }
                  },
                  "metroCode": {
                    "type": "string",
                    "example": "LD"
                  },
                  "metroDescription": {
                    "type": "string",
                    "example": "London"
                  },
                  "name": {
                    "type": "string",
                    "example": "TEST"
                  },
                  "notifications": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "sandboxuser@examplecompany.com"
                    }
                  },
                  "portName": {
                    "type": "string",
                    "example": "EXAMPLECOMPANY-XXXX-CX-PRI-01"
                  },
                  "portUUID": {
                    "type": "string",
                    "example": "66284add-xxxx-1150-xxxx-xxxxxxxxxxxx"
                  },
                  "private": {
                    "type": "boolean",
                    "example": false
                  },
                  "purchaseOrderNumber": {
                    "type": "string",
                    "example": "Test"
                  },
                  "redundancyType": {
                    "type": "string",
                    "example": "primary"
                  },
                  "remote": {
                    "type": "boolean",
                    "example": false
                  },
                  "self": {
                    "type": "boolean",
                    "example": true
                  },
                  "sellerMetroCode": {
                    "type": "string",
                    "example": "LD"
                  },
                  "sellerOrganizationName": {
                    "type": "string",
                    "example": "EXAMPLE-COMPANY-ECP-IXP-ETHERNET"
                  },
                  "sellerServiceName": {
                    "type": "string",
                    "example": "Managed Services"
                  },
                  "sellerServiceUUID": {
                    "type": "string",
                    "example": "53c4b828-xxxx-440b-xxxx-c74973d7c0dd"
                  },
                  "speed": {
                    "type": "integer",
                    "example": 50
                  },
                  "speedUnit": {
                    "type": "string",
                    "example": "MB"
                  },
                  "state": {
                    "type": "string",
                    "example": "NOT_AVAILABLE"
                  },
                  "status": {
                    "type": "string",
                    "example": "DELETED"
                  },
                  "uuid": {
                    "type": "string",
                    "example": "52b8e097-xxxx-4a27-xxxx-xxxxxxxxxxxxx"
                  },
                  "vlanCTag": {
                    "type": "integer",
                    "format": "int32",
                    "example": 196
                  },
                  "vlanSTag": {
                    "type": "integer",
                    "format": "int32",
                    "example": 198
                  },
                  "redundantUUID": {
                    "type": "string",
                    "example": "ce7ac5f9-d8b9-xxxx-xxxxx-xxxxxxxxxxxxx"
                  }
                }
              }
            },
            "isFirstPage": {
              "type": "boolean",
              "example": true
            },
            "isLastPage": {
              "type": "boolean",
              "example": false
            },
            "pageNumber": {
              "type": "integer",
              "example": 0
            },
            "totalCount": {
              "type": "integer",
              "example": 210
            },
            "pageSize": {
              "type": "integer",
              "example": 20
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSellerConnectionsUsingGET"
      },
      "task": true
    },
    {
      "name": "getAlarmV1SmartviewAlarms",
      "summary": "Find all the active alarms.",
      "description": "Retrieves all the alarms, now known as system alerts, based on the input account number.",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "the value will be used for checking the entitlements, possible values \"all, or account numbers\".: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Describes number of records to be fetched: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Describes the starting record number: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "groupByIBX",
          "type": "boolean",
          "info": "Alarms are grouped by IBX: boolean",
          "required": false,
          "schema": {
            "title": "groupByIBX",
            "type": "boolean"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "alarms": {
              "items": {
                "properties": {
                  "accountNo": {
                    "type": "string",
                    "example": "373834",
                    "description": "Customer account number"
                  },
                  "assetId": {
                    "type": "string",
                    "example": "SV4.Environmental.Rack.02610 0207-CTop.Rack Top",
                    "description": "User Equinix Asset, it could be any physical asset user own"
                  },
                  "assetType": {
                    "type": "string",
                    "example": "PDU",
                    "description": "The type of the asset"
                  },
                  "assetClassification": {
                    "type": "string",
                    "example": "Environmental",
                    "description": " The group in which the this asset belogs to."
                  },
                  "conditionName": {
                    "type": "string",
                    "example": "High",
                    "description": " The name given to this alarm condition "
                  },
                  "ibx": {
                    "type": "string",
                    "example": "SV2",
                    "description": " The IBX at which the alarm notified"
                  },
                  "status": {
                    "type": "boolean",
                    "example": "true",
                    "description": " Alarm status "
                  },
                  "tagId": {
                    "type": "string",
                    "example": "SV4.Environmental.Rack.02610 0207-CTop.Rack Top:temperature",
                    "description": " The tag for which the alarm is related to "
                  },
                  "timeProcessed": {
                    "type": "string",
                    "example": "Aug 11, 2017 4:17:18 PM",
                    "description": " Time at which alarm processed at the IBX "
                  },
                  "timeNormalProcessed": {
                    "type": "string",
                    "example": "Aug 11, 2017 4:17:18 PM",
                    "description": " when the alarm condition returned to normal state "
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "groupedAlarms": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "SV2",
                    "description": " The ibx by which the alarms are grouped "
                  },
                  "alarmGroups": {
                    "items": {
                      "properties": {
                        "accountNo": {
                          "type": "string",
                          "example": "373834",
                          "description": "Customer account number"
                        },
                        "assetId": {
                          "type": "string",
                          "example": "SV4.Environmental.Rack.02610 0207-CTop.Rack Top",
                          "description": "User Equinix Asset, it could be any physical asset user own"
                        },
                        "assetType": {
                          "type": "string",
                          "example": "PDU",
                          "description": "The type of the asset"
                        },
                        "assetClassification": {
                          "type": "string",
                          "example": "Environmental",
                          "description": " The group in which the this asset belogs to."
                        },
                        "conditionName": {
                          "type": "string",
                          "example": "High",
                          "description": " The name given to this alarm condition "
                        },
                        "ibx": {
                          "type": "string",
                          "example": "SV2",
                          "description": " The IBX at which the alarm notified"
                        },
                        "status": {
                          "type": "boolean",
                          "example": "true",
                          "description": " Alarm status "
                        },
                        "tagId": {
                          "type": "string",
                          "example": "SV4.Environmental.Rack.02610 0207-CTop.Rack Top:temperature",
                          "description": " The tag for which the alarm is related to "
                        },
                        "timeProcessed": {
                          "type": "string",
                          "example": "Aug 11, 2017 4:17:18 PM",
                          "description": " Time at which alarm processed at the IBX "
                        },
                        "timeNormalProcessed": {
                          "type": "string",
                          "example": "Aug 11, 2017 4:17:18 PM",
                          "description": " when the alarm condition returned to normal state "
                        }
                      },
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "groupCount": {
                    "type": "integer",
                    "example": "4",
                    "description": " Number of alarms in the group ",
                    "format": "int64"
                  }
                }
              }
            },
            "totalCount": {
              "type": "integer",
              "example": "343",
              "description": " Total number of alarms ",
              "format": "int64"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAlarmV1SmartviewAlarms"
      },
      "task": true
    },
    {
      "name": "getAlerts",
      "summary": "obtain active SmartView alerts.",
      "description": "The get alert endpoint returns alert info for inputs (ibx,category,event type,account number,page number,limit, order by, sort by).\n",
      "input": [
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX: string",
          "required": false,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "category",
          "type": "string",
          "info": "Category: string",
          "required": false,
          "schema": {
            "title": "category",
            "type": "string"
          }
        },
        {
          "name": "eventType",
          "type": "string",
          "info": "Event Type.: string",
          "required": false,
          "schema": {
            "title": "eventType",
            "type": "string"
          }
        },
        {
          "name": "accountNo",
          "type": "string",
          "info": "Account Number: string",
          "required": false,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "pageNum",
          "type": "string",
          "info": "Page Number: string",
          "required": true,
          "schema": {
            "title": "pageNum",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Limit: string",
          "required": true,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        },
        {
          "name": "orderBy",
          "type": "string",
          "info": "order by ascending or descending\n: string",
          "required": false,
          "schema": {
            "title": "orderBy",
            "type": "string"
          }
        },
        {
          "name": "sortBy",
          "type": "string",
          "info": "sortBy value\n: string",
          "required": false,
          "schema": {
            "title": "sortBy",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "alerts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": 15476966877480.828
                        },
                        "ibx": {
                          "type": "string",
                          "example": "CH1"
                        },
                        "alertType": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "cageDrawExceeds"
                            },
                            "type": {
                              "type": "string",
                              "example": "value"
                            },
                            "value": {
                              "type": "string",
                              "example": "Cage Draw kVA to Contractual kVA% Exceeds"
                            },
                            "unit": {
                              "type": "string",
                              "example": "percentage"
                            },
                            "tagId": {
                              "type": "string",
                              "example": "258"
                            },
                            "defaultValue": {
                              "type": "string",
                              "example": "258"
                            },
                            "eventType": {
                              "type": "string",
                              "example": "Exceeds"
                            }
                          }
                        },
                        "section": {
                          "type": "string",
                          "example": "electrical"
                        },
                        "customerAssets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string",
                                "example": "cage"
                              },
                              "assets": {
                                "type": "array",
                                "items": {
                                  "example": "1069"
                                }
                              },
                              "assetsName": {
                                "type": "array",
                                "items": {
                                  "example": "SG1:03:A20011"
                                }
                              }
                            }
                          }
                        },
                        "infraAssets": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string",
                                "example": "cage"
                              },
                              "assets": {
                                "type": "array",
                                "items": {
                                  "example": "1069"
                                }
                              },
                              "assetsName": {
                                "type": "array",
                                "items": {
                                  "example": "SG1:03:A20011"
                                }
                              }
                            }
                          }
                        },
                        "heartbeatType": {
                          "type": "string",
                          "example": "off"
                        },
                        "recipients": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "firstName": {
                                "type": "string",
                                "example": "test"
                              },
                              "lastName": {
                                "type": "string",
                                "example": "test"
                              },
                              "email_address": {
                                "type": "string",
                                "example": "test"
                              },
                              "mobilePhoneCode": {
                                "type": "string",
                                "example": "test"
                              },
                              "mobilePhoneNumber": {
                                "type": "string",
                                "example": "test"
                              },
                              "self": {
                                "type": "boolean",
                                "example": true
                              },
                              "sms": {
                                "type": "boolean",
                                "example": true
                              },
                              "voice": {
                                "type": "boolean",
                                "example": true
                              },
                              "email": {
                                "type": "boolean",
                                "example": true
                              }
                            }
                          }
                        },
                        "conditionalAlert": {
                          "type": "string",
                          "example": "test"
                        },
                        "thresholdUnit": {
                          "type": "string",
                          "example": "%"
                        },
                        "thresholdValueMin": {
                          "type": "string",
                          "example": "12"
                        },
                        "thresholdValueMax": {
                          "type": "string",
                          "example": "12"
                        },
                        "thresholdValue": {
                          "type": "string",
                          "example": "12"
                        },
                        "createdBy": {
                          "type": "string",
                          "example": "test"
                        },
                        "createdOn": {
                          "type": "number",
                          "example": 1547696687748,
                          "description": "createdOn",
                          "pattern": "^[0-9]{4}$"
                        },
                        "modifiedOn": {
                          "type": "number",
                          "example": 1547696687748,
                          "description": "modifiedOn",
                          "pattern": "^[0-9]{4}$"
                        },
                        "lastTriggeredOn": {
                          "type": "number",
                          "example": 1547696687748,
                          "description": "lastTriggeredOn",
                          "pattern": "^[0-9]{4}$"
                        },
                        "formatedSection": {
                          "type": "string",
                          "example": "Power Draw"
                        },
                        "enabledAction": {
                          "type": "string",
                          "example": "Enabled"
                        },
                        "isDuplicate": {
                          "type": "boolean",
                          "example": false
                        },
                        "userId": {
                          "type": "string",
                          "example": "userId"
                        },
                        "ucmid": {
                          "type": "string",
                          "example": "ucmid"
                        },
                        "accountNo": {
                          "type": "string",
                          "example": 3213213
                        },
                        "uom": {
                          "type": "string",
                          "example": "STANDARD"
                        },
                        "status": {
                          "type": "string",
                          "example": "status"
                        },
                        "region": {
                          "type": "string",
                          "example": "APAC"
                        },
                        "country": {
                          "type": "string",
                          "example": "SG"
                        },
                        "metro": {
                          "type": "string",
                          "example": "SG"
                        },
                        "alertPaused": {
                          "type": "boolean",
                          "example": true,
                          "description": "isAlertPaused"
                        }
                      }
                    }
                  },
                  "totalCount": {
                    "type": "number",
                    "example": "1000",
                    "description": "totalCount",
                    "pattern": "^[0-9]{4}$"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "cause": {
                  "type": "string",
                  "description": "root cause for error",
                  "example": null
                },
                "info": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "number",
                      "example": "1000",
                      "description": "[1000|3001|3002|3003|4000] are the possible status codes",
                      "pattern": "^[0-9]{4}$",
                      "minimum": 1000,
                      "maximum": 7000
                    },
                    "msg": {
                      "type": "string",
                      "example": "OK",
                      "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAlerts"
      },
      "task": true
    },
    {
      "name": "getAlertActivityLog",
      "summary": "get alert activity logs",
      "description": "This endpoint returns alert log for inputs (ibx,category,event type,account number,page number,limit, order by, sort by,acknowledged).\n",
      "input": [
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX: string",
          "required": false,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "category",
          "type": "string",
          "info": "Category: string",
          "required": false,
          "schema": {
            "title": "category",
            "type": "string"
          }
        },
        {
          "name": "eventType",
          "type": "string",
          "info": "Event Type: string",
          "required": false,
          "schema": {
            "title": "eventType",
            "type": "string"
          }
        },
        {
          "name": "isAcknowledged",
          "type": "string",
          "info": "Is Acknowledged: string",
          "required": false,
          "schema": {
            "title": "isAcknowledged",
            "type": "string"
          }
        },
        {
          "name": "accountNo",
          "type": "string",
          "info": "Account Number: string",
          "required": false,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "pageNum",
          "type": "string",
          "info": "Page Number: string",
          "required": true,
          "schema": {
            "title": "pageNum",
            "type": "string"
          }
        },
        {
          "name": "limit",
          "type": "string",
          "info": "Limit: string",
          "required": true,
          "schema": {
            "title": "limit",
            "type": "string"
          }
        },
        {
          "name": "orderBy",
          "type": "string",
          "info": "order by ascending or descending\n: string",
          "required": false,
          "schema": {
            "title": "orderBy",
            "type": "string"
          }
        },
        {
          "name": "sortBy",
          "type": "string",
          "info": "sortBy value\n: string",
          "required": false,
          "schema": {
            "title": "sortBy",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "alerts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": 15476966877480.828
                        },
                        "region": {
                          "type": "string",
                          "example": "APAC"
                        },
                        "ibx": {
                          "type": "string",
                          "example": "CH1"
                        },
                        "createdOn": {
                          "type": "number",
                          "example": 1547696687748,
                          "description": "createdOn",
                          "pattern": "^[0-9]{4}$"
                        },
                        "modifiedOn": {
                          "type": "number",
                          "example": 1547696687748,
                          "description": "modifiedOn",
                          "pattern": "^[0-9]{4}$"
                        },
                        "alertType": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "cageDrawExceeds"
                            },
                            "type": {
                              "type": "string",
                              "example": "value"
                            },
                            "value": {
                              "type": "string",
                              "example": "Cage Draw kVA to Contractual kVA% Exceeds"
                            },
                            "unit": {
                              "type": "string",
                              "example": "percentage"
                            },
                            "tagId": {
                              "type": "string",
                              "example": "258"
                            },
                            "defaultValue": {
                              "type": "string",
                              "example": "258"
                            },
                            "eventType": {
                              "type": "string",
                              "example": "Exceeds"
                            }
                          }
                        },
                        "section": {
                          "type": "string",
                          "example": "electrical"
                        },
                        "triggeredOn": {
                          "type": "number",
                          "example": 1547696687748,
                          "description": "lastTriggeredOn",
                          "pattern": "^[0-9]{4}$"
                        },
                        "asset": {
                          "type": "string",
                          "example": "SG3"
                        },
                        "affectedCustomerAsset": {
                          "type": "string",
                          "example": 1069
                        },
                        "alertTypeName": {
                          "type": "string",
                          "example": "tempExceeds"
                        },
                        "year": {
                          "type": "string",
                          "example": 2019
                        },
                        "accountNo": {
                          "type": "string",
                          "example": 115767
                        },
                        "conditionalAlert": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "region": {
                                "type": "string",
                                "example": "APAC"
                              },
                              "ibx": {
                                "type": "string",
                                "example": "SG3"
                              },
                              "uom": {
                                "type": "string",
                                "example": "STANDARD"
                              },
                              "section": {
                                "type": "string",
                                "example": "mechanical"
                              },
                              "affectedCustomerAsset": {
                                "type": "string",
                                "example": "258"
                              },
                              "customerAssets": {
                                "type": "string",
                                "example": "258"
                              },
                              "infraAssets": {
                                "type": "string",
                                "example": "258"
                              },
                              "measurementType": {
                                "type": "string",
                                "example": "258"
                              },
                              "alertType": {
                                "type": "string",
                                "example": "258"
                              },
                              "thresholdUnit": {
                                "type": "string",
                                "example": "%"
                              },
                              "thresholdValueMin": {
                                "type": "string",
                                "example": "12"
                              },
                              "thresholdValueMax": {
                                "type": "string",
                                "example": "12"
                              },
                              "thresholdValue": {
                                "type": "string",
                                "example": "12"
                              },
                              "asset": {
                                "type": "string",
                                "example": "12"
                              },
                              "condalerttypeid": {
                                "type": "string",
                                "example": "12"
                              },
                              "condassetclassification": {
                                "type": "string",
                                "example": "12"
                              },
                              "condassetid": {
                                "type": "string",
                                "example": "12"
                              },
                              "condcurrentvalue": {
                                "type": "string",
                                "example": "12"
                              },
                              "condeventtype": {
                                "type": "string",
                                "example": "12"
                              },
                              "condtagid": {
                                "type": "string",
                                "example": "12"
                              },
                              "assetname": {
                                "type": "string",
                                "example": "12"
                              },
                              "assettype": {
                                "type": "string",
                                "example": "12"
                              }
                            }
                          }
                        },
                        "notificationType": {
                          "type": "string",
                          "example": "ALERT"
                        },
                        "currentvalue": {
                          "type": "string",
                          "example": 23.38019323671497
                        },
                        "assettype": {
                          "type": "string",
                          "example": "IBX"
                        },
                        "tagid": {
                          "type": "string",
                          "example": "Temperature"
                        },
                        "eventtype": {
                          "type": "string",
                          "example": "Exceeds"
                        },
                        "assetclassification": {
                          "type": "string",
                          "example": "assetclassification"
                        },
                        "relatedincidents": {
                          "type": "string",
                          "example": "assetclassification"
                        },
                        "type": {
                          "type": "string",
                          "example": "ALERT"
                        },
                        "timeacknowledged": {
                          "type": "string",
                          "example": 1547008897864
                        },
                        "lastmaintenance": {
                          "type": "string",
                          "example": 1547008897864
                        },
                        "severity": {
                          "type": "string",
                          "example": "ALERT"
                        },
                        "resiliency": {
                          "type": "string",
                          "example": "off"
                        },
                        "timeprocessed": {
                          "type": "string",
                          "example": "off"
                        },
                        "timetriggeredMilisec": {
                          "type": "string",
                          "example": "1547007734678"
                        },
                        "assetname": {
                          "type": "string",
                          "example": "SG3"
                        },
                        "uom": {
                          "type": "string",
                          "example": "STANDARD"
                        },
                        "timeZone": {
                          "type": "string",
                          "example": "Asia/Singapore"
                        },
                        "thresholdUnit": {
                          "type": "string",
                          "example": "%"
                        },
                        "thresholdValueMin": {
                          "type": "string",
                          "example": "12"
                        },
                        "thresholdValueMax": {
                          "type": "string",
                          "example": "12"
                        },
                        "thresholdValue": {
                          "type": "string",
                          "example": "12"
                        },
                        "country": {
                          "type": "string",
                          "example": "SG"
                        },
                        "metro": {
                          "type": "string",
                          "example": "SG"
                        },
                        "acknowledge": {
                          "type": "boolean",
                          "example": true
                        }
                      }
                    }
                  },
                  "totalCount": {
                    "type": "number",
                    "example": "1000",
                    "description": "totalCount",
                    "pattern": "^[0-9]{4}$"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "cause": {
                  "type": "string",
                  "description": "root cause for error",
                  "example": null
                },
                "info": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "number",
                      "example": "1000",
                      "description": "[1000|3001|3002|3003|4000] are the possible status codes",
                      "pattern": "^[0-9]{4}$",
                      "minimum": 1000,
                      "maximum": 7000
                    },
                    "msg": {
                      "type": "string",
                      "example": "OK",
                      "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAlertActivityLog"
      },
      "task": true
    },
    {
      "name": "getAsset",
      "summary": "get assets list information",
      "description": "This endpoint returns information about asset in a hierarchical structure ( category / template / asset ) based on the input account number, IBX code, cage and asset classification (Electrical, Mechanical).",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "customer account number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "ibx code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "classification",
          "type": "string",
          "info": "asset classification (Electrical, Mechanical): Must be one of [Electrical, Mechanical]",
          "required": true,
          "schema": {
            "title": "classification",
            "type": "string"
          }
        },
        {
          "name": "cages",
          "type": "array",
          "info": "cage unique space id to be used to filter the assets list\nassumed to be all cage unique space id if no value is sent.\n: array",
          "required": false,
          "schema": {
            "title": "cages",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "classification": {
                  "type": "string",
                  "description": "asset classification for the Electrical and Mechanical",
                  "example": "Mechanical"
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages            possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAsset"
      },
      "task": true
    },
    {
      "name": "getAssetDetails",
      "summary": "get details for an asset.",
      "description": "This endpoint returns information about asset details including tag points lists for a given asset identifier.",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "customer account number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "ibx code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "classification",
          "type": "string",
          "info": "asset classification (Electrical, Mechanical): string",
          "required": true,
          "schema": {
            "title": "classification",
            "type": "string"
          }
        },
        {
          "name": "assetId",
          "type": "string",
          "info": "asset id: string",
          "required": true,
          "schema": {
            "title": "assetId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "assetId": {
                  "type": "string",
                  "description": "asset id for the Asset",
                  "example": "CH1.Chiller-1"
                },
                "assetType": {
                  "type": "string",
                  "description": "Template Name for the asset",
                  "example": "Cooling"
                },
                "userPrefTimeZone": {
                  "type": "string",
                  "description": "Time zone for the user",
                  "example": "Asia/Katmandu"
                },
                "tags": {
                  "type": "array",
                  "description": "List of tag points for the Asset",
                  "items": {
                    "type": "object"
                  }
                },
                "lastMaintenanceDate": {
                  "type": "string",
                  "example": "Aug 03,2016",
                  "description": "Datetime when the machine had its last maintenance"
                },
                "manufacturerName": {
                  "type": "string",
                  "description": "Manufacturer name for the Asset",
                  "example": "SMARDT"
                },
                "equipmentModelNumber": {
                  "type": "string",
                  "description": "Equipment Model Number",
                  "example": "SACAC110-3EXX-2A1-16A-010"
                },
                "equipmentSerialNumber": {
                  "type": "string",
                  "description": "Equipment Serial Number",
                  "example": "FF0010I233Q1276"
                },
                "alarmLastTriggeredTime": {
                  "type": "string",
                  "example": "Aug 21,2017 04:38 AM",
                  "description": "Datetime when the latest alarm was triggered on the asset"
                },
                "alarmLastProcessedTime": {
                  "type": "string",
                  "example": "Aug 21,2017 05:52 AM",
                  "description": "Datetime when the latest alarm was processed on the asset"
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAssetDetails"
      },
      "task": true
    },
    {
      "name": "postSmartviewV1AssetDetails",
      "summary": "get asset details",
      "description": "This endpoint returns information about assets details including the assets tag points list for the given multiple asset identifiers.",
      "input": [
        {
          "name": "payload",
          "type": "object",
          "info": "request schema: {\"accountNo\": \"string\", \"ibx\": \"string\", \"classification\": \"string\", \"assetIds\": \"array\"}",
          "required": false,
          "schema": {
            "type": "object",
            "properties": {
              "accountNo": {
                "type": "string",
                "description": "customer account number"
              },
              "ibx": {
                "type": "string",
                "description": "ibx code"
              },
              "classification": {
                "type": "string",
                "description": "asset classification"
              },
              "assetIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "asset id"
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "description": "response object for asset/details POST request",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "totalCount": {
                  "description": "total number of assets that match the request filters",
                  "type": "integer",
                  "example": 1
                },
                "assetDetails": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postSmartviewV1AssetDetails"
      },
      "task": true
    },
    {
      "name": "getAffectedAsset",
      "summary": "get affected customers assets hierarchy",
      "description": "The endpoint returns information regarding the affected assets of customers for a given asset identifier",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "customer account number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "ibx code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "assetId",
          "type": "string",
          "info": "asset id: string",
          "required": true,
          "schema": {
            "title": "assetId",
            "type": "string"
          }
        },
        {
          "name": "classification",
          "type": "string",
          "info": "asset classification(Electrical, Mechanical): Must be one of [Electrical, Mechanical]",
          "required": true,
          "schema": {
            "title": "classification",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "cages": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "circuits": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAffectedAsset"
      },
      "task": true
    },
    {
      "name": "searchAsset",
      "summary": "Search for Assets matching identifiers",
      "description": "This endpoint is used to search for assets using wild card search patterns matching the asset identifier.",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "Customer Account Number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX Code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "searchString",
          "type": "string",
          "info": "Search String: string",
          "required": true,
          "schema": {
            "title": "searchString",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "totalCount": {
                  "type": "integer",
                  "example": 1
                },
                "assetsList": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages            possible messages            "
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/searchAsset"
      },
      "task": true
    },
    {
      "name": "getCurrentTagPoint",
      "summary": "obtain latest tag point data",
      "description": "This endpoint fetches and provides the most recent tag point information for a given tag identifier.",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "customer account number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "ibx code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "tagid",
          "type": "string",
          "info": "tag id is the unique identifier for the tag point: string",
          "required": true,
          "schema": {
            "title": "tagid",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "array",
              "items": {
                "type": "object",
                "description": "Tag Point is a property of the Asset it is linked to.\n",
                "properties": {
                  "value": {
                    "type": "string",
                    "example": 4.9,
                    "description": "Current data value for the tag point\n"
                  },
                  "tagId": {
                    "type": "string",
                    "example": "CH1.Chiller-1:evapleavingwatertemperature",
                    "description": "ID for the tagPoint - Unique Identifier for the Tag Point\n"
                  },
                  "tagDisplayName": {
                    "type": "string",
                    "example": "Evaporator Leaving Water Temperature",
                    "description": "Generic label for the tag point\n"
                  },
                  "uom": {
                    "type": "string",
                    "example": "°C",
                    "description": "Unit of measure for the data value for the tag point\n"
                  },
                  "readingTime": {
                    "type": "string",
                    "example": "20170907125336",
                    "description": "date time when the tag point value was read from the device.          \n"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCurrentTagPoint"
      },
      "task": true
    },
    {
      "name": "postSmartviewV1AssetTagpointCurrent",
      "summary": "get current tag points data",
      "description": "This endpoint fetches the latest read values for given tag points using given tag identifiers.",
      "input": [
        {
          "name": "payload",
          "type": "object",
          "info": ": {\"accountNo\": \"string\", \"tagIds\": \"array\", \"ibx\": \"string\"}",
          "required": false,
          "schema": {
            "type": "object",
            "description": "request object for tagpoint/current POST request",
            "properties": {
              "accountNo": {
                "type": "string",
                "description": "customer account number"
              },
              "tagIds": {
                "type": "array",
                "maxLength": 1000,
                "items": {
                  "type": "string",
                  "description": "tag ids"
                }
              },
              "ibx": {
                "type": "string",
                "description": "ibx code"
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "array",
              "items": {
                "type": "object",
                "description": "Tag Point is a property of the Asset it is linked to.\n",
                "properties": {
                  "value": {
                    "type": "string",
                    "example": 4.9,
                    "description": "Current data value for the tag point\n"
                  },
                  "tagId": {
                    "type": "string",
                    "example": "CH1.Chiller-1:evapleavingwatertemperature",
                    "description": "ID for the tagPoint - Unique Identifier for the Tag Point\n"
                  },
                  "tagDisplayName": {
                    "type": "string",
                    "example": "Evaporator Leaving Water Temperature",
                    "description": "Generic label for the tag point\n"
                  },
                  "uom": {
                    "type": "string",
                    "example": "°C",
                    "description": "Unit of measure for the data value for the tag point\n"
                  },
                  "readingTime": {
                    "type": "string",
                    "example": "20170907125336",
                    "description": "date time when the tag point value was read from the device.          \n"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postSmartviewV1AssetTagpointCurrent"
      },
      "task": true
    },
    {
      "name": "getTagpointTrending",
      "summary": "obtain trending tag point data",
      "description": "This endpoint fetches and returns the trending tag point information for a given tag identifier.",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "customer account number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "ibx code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "tagid",
          "type": "string",
          "info": "tag id is the unique identifier for the tag point: string",
          "required": true,
          "schema": {
            "title": "tagid",
            "type": "string"
          }
        },
        {
          "name": "interval",
          "type": "string",
          "info": "tag point data interval (1h, 1d, reading): string",
          "required": true,
          "schema": {
            "title": "interval",
            "type": "string"
          }
        },
        {
          "name": "fromDate",
          "type": "number",
          "info": "from date UTC time (1494345600000): 123",
          "required": true,
          "schema": {
            "title": "fromDate",
            "type": "number"
          }
        },
        {
          "name": "toDate",
          "type": "number",
          "info": "to date UTC time (1494432000000): 123",
          "required": true,
          "schema": {
            "title": "toDate",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "accountNumber": {
                  "type": "string",
                  "example": "1"
                },
                "ibx": {
                  "type": "string",
                  "example": "CH1"
                },
                "interval": {
                  "type": "string",
                  "example": "1h",
                  "description": "data sampling interval",
                  "enum": [
                    "5m",
                    "15m",
                    "1h",
                    "1d"
                  ]
                },
                "uom": {
                  "type": "string",
                  "example": "s"
                },
                "tagId": {
                  "type": "string",
                  "example": "CH1.UPS-20:batterytimeremaining",
                  "description": "the unique identifiers for the tag point ids for which the trending point is requested.\n"
                },
                "tagDisplayName": {
                  "type": "string",
                  "example": "Battery Time Remaining",
                  "description": "the \n"
                },
                "dataType": {
                  "example": "Float",
                  "description": "data type of trend data vlaues",
                  "type": "string"
                },
                "data": {
                  "type": "array",
                  "description": "trend data of tag",
                  "items": {
                    "type": "object"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid Interval|Invalid FromDate|Invalid ToDate|From/ToDate interval cannot be greater  than 1 year] are the possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getTagpointTrending"
      },
      "task": true
    },
    {
      "name": "getEnvironmentV1Current",
      "summary": "Get current environmental data",
      "description": "The endpoint returns environment information on temperature and humidity from inputs (ibx, zone, cage, sensor)",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "Customer Account Number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX Code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "levelType",
          "type": "string",
          "info": "Level Type: Must be one of [IBX, ZONE, CAGE, SENSOR]",
          "required": true,
          "schema": {
            "title": "levelType",
            "type": "string"
          }
        },
        {
          "name": "levelValue",
          "type": "string",
          "info": "Level Value is ibxCode, zoneUsID, cageUsID, sensorid for \nlevelType ibx, zone, cage, sensor resp.\n: string",
          "required": true,
          "schema": {
            "title": "levelValue",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "ibx": {
                  "type": "string",
                  "description": "ibx code",
                  "example": "CH1"
                },
                "accountNo": {
                  "type": "string",
                  "description": "account number",
                  "example": "1"
                },
                "zone": {
                  "type": "string",
                  "description": "zone unique space id",
                  "example": "CH1:1:05:ColoArea:2"
                },
                "cage": {
                  "type": "string",
                  "description": "cage unique space id",
                  "example": "CH1:05:000550"
                },
                "cabinet": {
                  "type": "string",
                  "description": "cabinet unique space id",
                  "example": "CH1:05:000550:0105"
                },
                "sensor": {
                  "type": "string",
                  "description": "sensor id",
                  "example": "CH1.Colo.CH1_05_000550_0105"
                },
                "temperature": {
                  "type": "string",
                  "description": "current temperature",
                  "example": "20.0"
                },
                "humidity": {
                  "type": "string",
                  "description": "current humidity",
                  "example": "43.00"
                },
                "timestamp": {
                  "type": "string",
                  "description": "epoch timestamp when the current reading was read",
                  "example": "1506665106579"
                },
                "temperatureUom": {
                  "type": "string",
                  "description": "unit of measure for temperature values",
                  "example": "°C"
                },
                "humidityUom": {
                  "type": "string",
                  "description": "unit of measure for humidity",
                  "example": "%"
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|3004|3005|4000|5000|6001] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Invalid Level Type|Invalid Level Value|Invalid Account Details Or User is not Entitled|User Preference is not set as expected in the account|Invalid IBX|Invalid Account number|User is not entitled to the ibx|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR|NO_DATA|UNAUTHORISZED_ACCESS] are the possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getEnvironmentV1Current"
      },
      "task": true
    },
    {
      "name": "getEnvironmentV1ListCurrent",
      "summary": "Fetch list of environmental data",
      "description": "The GET endpoint returns environment info ( humidity and temperature ) for all the values for input level type  IBX, ZONE, CAGE, SENSOR\n",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "Customer Account Number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX Code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "levelType",
          "type": "string",
          "info": "Level Type: Must be one of [IBX, ZONE, CAGE, SENSOR]",
          "required": true,
          "schema": {
            "title": "levelType",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "totalCount": {
                  "type": "integer",
                  "description": "total number of data values",
                  "example": 1
                },
                "data": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|3004|3005|4000|5000|6001] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Invalid Level Type|Invalid Level Value|Invalid Account Details Or User is not Entitled|User Preference is not set as expected in the account|Invalid IBX|Invalid Account number|User is not entitled to the ibx|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR|NO_DATA|UNAUTHORISZED_ACCESS] are the possible messages        "
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getEnvironmentV1ListCurrent"
      },
      "task": true
    },
    {
      "name": "getEnvironmentV1Trending",
      "summary": "Fetch trending environmental data",
      "description": "The endpoint returns trending environment information (temperature and humidity) for\ninput ibx, zone, cage, sensor  \n",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "Customer Account Number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "number",
          "info": "IBX Code: 123",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "number"
          }
        },
        {
          "name": "dataPoint",
          "type": "string",
          "info": "data point: Must be one of [temperature, humidity]",
          "required": true,
          "schema": {
            "title": "dataPoint",
            "type": "string"
          }
        },
        {
          "name": "levelType",
          "type": "string",
          "info": "Level Type: Must be one of [IBX, ZONE, CAGE, SENSOR]",
          "required": true,
          "schema": {
            "title": "levelType",
            "type": "string"
          }
        },
        {
          "name": "levelValue",
          "type": "string",
          "info": "Level Value is ibxCode, zone, cage, sensorid for \nlevelType ibx, zone, cage, sensor resp.\n: string",
          "required": true,
          "schema": {
            "title": "levelValue",
            "type": "string"
          }
        },
        {
          "name": "interval",
          "type": "string",
          "info": ": Must be one of [reading, 1h, 1d]",
          "required": true,
          "schema": {
            "title": "interval",
            "type": "string"
          }
        },
        {
          "name": "fromDate",
          "type": "string",
          "info": "date in long: string",
          "required": true,
          "schema": {
            "title": "fromDate",
            "type": "string"
          }
        },
        {
          "name": "toDate",
          "type": "string",
          "info": "date in long: string",
          "required": true,
          "schema": {
            "title": "toDate",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "ibx": {
                  "type": "string",
                  "description": "ibx code",
                  "example": "CH1"
                },
                "accountNo": {
                  "type": "string",
                  "description": "customer account num",
                  "example": "1"
                },
                "interval": {
                  "type": "string",
                  "description": "interval",
                  "example": "reading"
                },
                "datapoint": {
                  "type": "string",
                  "description": "data point for which the timeseries data is fetched",
                  "example": "temperature"
                },
                "uom": {
                  "type": "string",
                  "description": "unit of measure used for the datapoint",
                  "example": "°C"
                },
                "series": {
                  "type": "array",
                  "description": "Time series data for the data point",
                  "items": {
                    "type": "object"
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getEnvironmentV1Trending"
      },
      "task": true
    },
    {
      "name": "getLocationHierarchy",
      "summary": "Fetch the Location Hierarchy",
      "description": "The location hierarchy endpoint returns the location hierarchy. This endpoint provides data for invoking other APIs such as Environmental APIs that require location hierarchy information.\n",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "Customer Account Number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX Code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getLocationHierarchy"
      },
      "task": true
    },
    {
      "name": "getPowerHierarchy",
      "summary": "Fetch the Power Hierarchy",
      "description": "The power hierarchy endpoint returns the power hierarchy. This endpoint provides data for invoking other APIs such as Power APIs that require power hierarchy information.\n",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "Customer Account Number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX Code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getPowerHierarchy"
      },
      "task": true
    },
    {
      "name": "getPowerV1Current",
      "summary": "Fetch current power consumption data",
      "description": "The powerData endpoint returns power consumption info ( power consumption data with comparison data of current [% Kva] vs  yesterday, lastWeek, lastMonth, lastQuarter ) for input ibx, cage, cabinet, circuit.\n",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "Customer Account Number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX Code: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "levelType",
          "type": "string",
          "info": "level type allowed value [ibx|cage|cabinet|circuit]: Must be one of [ibx, cage, cabinet, circuit]",
          "required": true,
          "schema": {
            "title": "levelType",
            "type": "string"
          }
        },
        {
          "name": "levelValue",
          "type": "string",
          "info": "level value - ibx code, cage unique space id, cabinet unique space id, serial number for level type ibx, cage, cabinet, circuit respectively.\n: string",
          "required": true,
          "schema": {
            "title": "levelValue",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "ibx": {
                  "type": "string",
                  "description": "ibx code",
                  "example": "ABC"
                },
                "accountNo": {
                  "type": "string",
                  "description": "customer account number",
                  "example": "ABC"
                },
                "levelType": {
                  "type": "string",
                  "description": "power hierarchy node levelType linked to the power data",
                  "enum": [
                    "ibx",
                    "cage",
                    "cabinet",
                    "circuit"
                  ],
                  "example": "ibx"
                },
                "levelValue": {
                  "type": "string",
                  "description": "power hierarchy node levelValue linked to the power data",
                  "example": "ABC"
                },
                "isAlarm": {
                  "type": "string",
                  "example": "true",
                  "description": "returns boolean based on breakertip alarm"
                },
                "kva": {
                  "type": "number",
                  "description": "power consumption in kva",
                  "example": 54.402
                },
                "amps": {
                  "type": "number",
                  "description": "instantaneous current amp reading on circuits",
                  "example": 123
                },
                "soldKva": {
                  "type": "number",
                  "description": "maximum amp draw allowable on a circuit",
                  "example": 598.349
                },
                "cabinetRating": {
                  "type": "number",
                  "description": "maximum kVA draw allowed for the cabinet|cabinet description when the levelType is cabinet. Null otherwise.",
                  "example": 341.54
                },
                "contractualKva": {
                  "type": "number",
                  "example": 341.54,
                  "description": "The maximum power draw contractually allowable in a \nprivate cage. \n"
                },
                "percentageKva": {
                  "type": "number",
                  "example": 341.54,
                  "description": "calculated field kva / contractualKva"
                },
                "comparisonData": {
                  "type": "object"
                },
                "peakKvaLastSevenDays": {
                  "type": "number",
                  "example": 55.296
                },
                "peakKvaLastSevenDaysPercentage": {
                  "type": "number",
                  "example": 55.296
                },
                "peakKvaLastSevenDaysContractualKva": {
                  "type": "number",
                  "example": 55.296
                },
                "peakKvaLastSevenDaysTime": {
                  "type": "integer",
                  "example": 55.296
                },
                "soldAmps": {
                  "type": "integer",
                  "example": 123,
                  "description": "circuit description when the levelType is circuit. Null otherwise."
                },
                "primaryKva": {
                  "type": "number",
                  "example": 28.31,
                  "description": "the sum of instantaneous power draw reading on all the primary \ncircuits within the levelType.\n"
                },
                "redundantKva": {
                  "type": "number",
                  "example": 26.092,
                  "description": "the sum of instantaneous power draw reading on all the redundant \ncircuits within the levelType.\n"
                },
                "kw": {
                  "type": "string",
                  "example": "NA",
                  "description": "measure of real power expressed in kilowatt applicable for ibxs\nthat have capability of energy meter reading|value will be \"NA\" for AMER and APAC regions \n"
                },
                "powerFactor": {
                  "type": "string",
                  "example": "NA",
                  "description": "The ratio between real power and apparent power in a circuit.(kW/kVA)|value will be \"NA\" for AMER and APAC regions\n"
                },
                "readingTime": {
                  "type": "string",
                  "example": "1497410400000",
                  "description": "date-time when the latest value was read in (epoc - milliseconds).\n"
                },
                "lastUpdatedTime": {
                  "type": "string",
                  "example": "1497410520000",
                  "description": "date-time when the latest value was updated (epoc - milliseconds).\n"
                },
                "customerName": {
                  "type": "string",
                  "example": "ABC"
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getPowerV1Current"
      },
      "task": true
    },
    {
      "name": "postPowerV1Current",
      "summary": "Fetch current power consumption data",
      "description": "The powerdata endpoint returns power consumption info for all values of input level type ibx, cage, cabinet or circuit.\n",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "request payload: {\"accountNo\": \"string\", \"ibx\": \"string\", \"levelType\": \"Must be one of [ibx, cage, cabinet, circuit]\"}",
          "required": false,
          "schema": {
            "type": "object",
            "description": "date and corresponding values\n",
            "properties": {
              "accountNo": {
                "type": "string",
                "example": "1234",
                "description": " Customer Account Number"
              },
              "ibx": {
                "type": "string",
                "example": "0.147",
                "description": "trending values"
              },
              "levelType": {
                "type": "string",
                "example": "0.147",
                "description": "level type allowed value [ibx|cage|cabinet|circuit]",
                "enum": [
                  "ibx",
                  "cage",
                  "cabinet",
                  "circuit"
                ]
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postPowerV1Current"
      },
      "task": true
    },
    {
      "name": "getPowerV1Trending",
      "summary": "Fetch Trending Power Data.\n",
      "description": "The trending power data for draw kVA to max allowed (%) for input ibx, cage, cabinet, circuit.\n",
      "input": [
        {
          "name": "accountNo",
          "type": "string",
          "info": "Customer Account Number: string",
          "required": true,
          "schema": {
            "title": "accountNo",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "number",
          "info": "IBX Code: 123",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "number"
          }
        },
        {
          "name": "levelType",
          "type": "string",
          "info": "[ibx|cage|cabinet|circuit]: Must be one of [ibx, cage, cabinet, circuit]",
          "required": true,
          "schema": {
            "title": "levelType",
            "type": "string"
          }
        },
        {
          "name": "levelValue",
          "type": "string",
          "info": "ibx code, cage unique space id, cabinet unique space id and serial number for level type ibx, cage, cabinet and circuit respectively.\n: string",
          "required": true,
          "schema": {
            "title": "levelValue",
            "type": "string"
          }
        },
        {
          "name": "interval",
          "type": "string",
          "info": "[recording|1h|1d]: string",
          "required": true,
          "schema": {
            "title": "interval",
            "type": "string"
          }
        },
        {
          "name": "fromDate",
          "type": "string",
          "info": "timestamp expected to be epoch long ( milliseconds ).: string",
          "required": true,
          "schema": {
            "title": "fromDate",
            "type": "string"
          }
        },
        {
          "name": "toDate",
          "type": "string",
          "info": "timestamp expected to be epoch long ( milliseconds ).: string",
          "required": true,
          "schema": {
            "title": "toDate",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "payLoad": {
              "type": "object",
              "properties": {
                "accountNumber": {
                  "type": "string",
                  "example": "123456"
                },
                "ibx": {
                  "type": "string",
                  "example": "ABX"
                },
                "levelType": {
                  "type": "string",
                  "description": "power hierarchy node levelType linked to the power data",
                  "enum": [
                    "ibx",
                    "cage",
                    "cabinet",
                    "circuit"
                  ]
                },
                "levelValue": {
                  "type": "string",
                  "example": "ABX",
                  "description": "ibx code, cage unique space id, cabinet unique space id and serial number for levelType ibx, cage, cabinet, circuit resp."
                },
                "interval": {
                  "type": "string",
                  "example": "1h",
                  "description": "serial number",
                  "enum": [
                    "5m",
                    "15m",
                    "1h",
                    "1d"
                  ]
                },
                "data": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                }
              }
            },
            "status": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "[INFO|ERROR] are the possible values",
                  "enum": [
                    "INFO"
                  ]
                },
                "statuscode": {
                  "type": "number",
                  "example": "1000",
                  "description": "[1000|3001|3002|3003|4000] are the possible status codes"
                },
                "msg": {
                  "type": "string",
                  "example": "OK",
                  "description": "[Ok|Permission Denied|Invalid Account number|Invalid IBX|Invalid LevelType|Invalid LevelValue|Invalid Interval|Invalid From/To Date|From/ToDate interval cannot be greater  than 1 year|INVALID_SESSION|INVALID_SESSION_IBX|INTERNAL_ERROR] are the possible messages"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getPowerV1Trending"
      },
      "task": true
    },
    {
      "name": "getSensorReadings",
      "summary": "IBX sensors current readings",
      "description": "Returns current environmental (temperature and humidity) sensor readings for the given IBX code in a paginated way.",
      "input": [
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX where the sensor is located.: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "type",
          "type": "string",
          "info": "Type of sensor data to display, e.g. specifying 'HUMIDITY' means only sensor readings with HUMIDITY value will be included: string",
          "required": false,
          "schema": {
            "title": "type",
            "type": "string"
          }
        },
        {
          "name": "zone",
          "type": "string",
          "info": "Zone name. Adding this parameter limits the query to sensors in the specified zone: string",
          "required": false,
          "schema": {
            "title": "zone",
            "type": "string"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Results offset you want to retrieve (0..N): 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Number of records to retrieve per request.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "required": [
            "data",
            "pagination"
          ],
          "properties": {
            "data": {
              "type": "array",
              "description": "List of data objects",
              "items": {
                "type": "object",
                "description": "Single environmental sensor reading.",
                "required": [
                  "ibx",
                  "sensorId",
                  "zoneId"
                ],
                "properties": {
                  "sensorId": {
                    "type": "string",
                    "example": "SV2.Environmental.Colo4-ZoneHumidity1",
                    "description": "The sensor identifier."
                  },
                  "zoneId": {
                    "type": "string",
                    "example": "CH2:1:06:ColoArea:1",
                    "description": "The zone where the sensor is placed."
                  },
                  "ibx": {
                    "type": "string",
                    "example": "SV2",
                    "description": "The ibx identifier where the sensor is placed."
                  },
                  "humidity": {
                    "type": "object",
                    "description": "Single value with related unit (e.g. percentage for humidity or Celsius degree for temperature).",
                    "required": [
                      "unit",
                      "value"
                    ],
                    "properties": {
                      "value": {
                        "type": "object",
                        "example": "33.3",
                        "description": "Specific value, to be read together with unit."
                      },
                      "unit": {
                        "type": "object",
                        "example": "CELSIUS",
                        "description": "Unit for value."
                      }
                    }
                  },
                  "temperature": {
                    "type": "object",
                    "description": "Single value with related unit (e.g. percentage for humidity or Celsius degree for temperature).",
                    "required": [
                      "unit",
                      "value"
                    ],
                    "properties": {
                      "value": {
                        "type": "object",
                        "example": "33.3",
                        "description": "Specific value, to be read together with unit."
                      },
                      "unit": {
                        "type": "object",
                        "example": "CELSIUS",
                        "description": "Unit for value."
                      }
                    }
                  }
                }
              }
            },
            "pagination": {
              "type": "object",
              "description": "Represents pagination component of the paginated response",
              "required": [
                "limit",
                "offset",
                "total"
              ],
              "properties": {
                "offset": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The number of elements to skip."
                },
                "limit": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The page size."
                },
                "total": {
                  "type": "integer",
                  "format": "int64",
                  "description": "The total number of elements in the result set."
                },
                "next": {
                  "type": "string",
                  "description": "Represents a relative link to the next page. This can be empty if there is no next page available."
                },
                "previous": {
                  "type": "string",
                  "description": "Represents a relative link to the previous page. This can be empty if there is no previous page available."
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSensorReadings"
      },
      "task": true
    },
    {
      "name": "getSingleSensorReadings",
      "summary": "Single sensor current value(s)",
      "description": "Returns current environmental sensor readings such as temperature and humidity for the given sensor ID and IBX code.",
      "input": [
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX where the sensor is located.: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "sensorId",
          "type": "string",
          "info": "Id of sensor to read.: string",
          "required": true,
          "schema": {
            "title": "sensorId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "description": "Single environmental sensor reading.",
          "required": [
            "ibx",
            "sensorId",
            "zoneId"
          ],
          "properties": {
            "sensorId": {
              "type": "string",
              "example": "SV2.Environmental.Colo4-ZoneHumidity1",
              "description": "The sensor identifier."
            },
            "zoneId": {
              "type": "string",
              "example": "CH2:1:06:ColoArea:1",
              "description": "The zone where the sensor is placed."
            },
            "ibx": {
              "type": "string",
              "example": "SV2",
              "description": "The ibx identifier where the sensor is placed."
            },
            "humidity": {
              "type": "object",
              "description": "Single value with related unit (e.g. percentage for humidity or Celsius degree for temperature).",
              "required": [
                "unit",
                "value"
              ],
              "properties": {
                "value": {
                  "type": "object",
                  "example": "33.3",
                  "description": "Specific value, to be read together with unit."
                },
                "unit": {
                  "type": "object",
                  "example": "CELSIUS",
                  "description": "Unit for value."
                }
              }
            },
            "temperature": {
              "type": "object",
              "description": "Single value with related unit (e.g. percentage for humidity or Celsius degree for temperature).",
              "required": [
                "unit",
                "value"
              ],
              "properties": {
                "value": {
                  "type": "object",
                  "example": "33.3",
                  "description": "Specific value, to be read together with unit."
                },
                "unit": {
                  "type": "object",
                  "example": "CELSIUS",
                  "description": "Unit for value."
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSingleSensorReadings"
      },
      "task": true
    },
    {
      "name": "searchAssets",
      "summary": "Search permissible assets",
      "description": "The POST assets API returns all assets for a specific asset from search form. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "sorts",
          "type": "array",
          "info": "Sort fields: array",
          "required": false,
          "schema": {
            "title": "sorts",
            "type": "array"
          }
        },
        {
          "name": "source",
          "type": "array",
          "info": "\"q\" parameter will be searched in these fields, by default search will performed on all fields: array",
          "required": false,
          "schema": {
            "title": "source",
            "type": "array"
          }
        },
        {
          "name": "q",
          "type": "string",
          "info": "To support add a keyword, free text search on source fields. Min 3 character for efficient search results.: string",
          "required": false,
          "schema": {
            "title": "q",
            "type": "string"
          }
        },
        {
          "name": "exactMatch",
          "type": "boolean",
          "info": "flag determines the q should be Exact match or partial match, By default flag is false: boolean",
          "required": false,
          "schema": {
            "title": "exactMatch",
            "type": "boolean"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "The start index from which the list is created.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Number of entries in response.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"filter\": {\"ibxs\": \"array\", \"cages\": \"array\", \"productTypes\": \"array\", \"dateRange\": {\"fromDate\": \"string\", \"toDate\": \"string\"}}}",
          "required": false,
          "schema": {
            "title": "AssetsSearchRequest",
            "type": "object",
            "properties": {
              "filter": {
                "description": "assets search filter.",
                "type": "object",
                "properties": {
                  "ibxs": {
                    "description": "List of IBX to be filterd.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "cages": {
                    "description": "List of cages to be filterd.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "productTypes": {
                    "type": "array",
                    "description": "List of product types to be filtred.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "ACCESSORIES",
                        "CABINET",
                        "CAGE",
                        "CROSS_CONNECT",
                        "CUSTOMER_PROVIDED_CABINET",
                        "EQUINIX_ETHERNET_EXCHANGE",
                        "EQUINIX_CLOUD_EXCHANGE",
                        "PATCH_PANEL",
                        "POWER",
                        "IBX_SMARTVIEW",
                        "IBX_SMARTVIEW_SENSOR",
                        "OTHERS"
                      ]
                    }
                  },
                  "dateRange": {
                    "description": "Date range filter. The installed date shouldbe withing this data range.",
                    "type": "object",
                    "properties": {
                      "fromDate": {
                        "type": "string",
                        "description": "Start date to filter the installed date.",
                        "format": "date-time"
                      },
                      "toDate": {
                        "type": "string",
                        "description": "End date to filter the installed date.",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "fromDate",
                      "toDate"
                    ]
                  }
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "title": "AssetsSummary",
                "type": "object",
                "properties": {
                  "assetNumber": {
                    "type": "string",
                    "description": "Asset number."
                  },
                  "serialNumber": {
                    "type": "string",
                    "description": "Serial numbmer of the asset."
                  },
                  "orderNumber": {
                    "type": "string",
                    "description": "Order number associated with the asset/service."
                  },
                  "productName": {
                    "type": "string",
                    "description": "Product type."
                  },
                  "ibx": {
                    "type": "string",
                    "description": "Ibx of the location."
                  },
                  "cage": {
                    "type": "string",
                    "description": "Cage of the location."
                  },
                  "productDescription": {
                    "type": "string",
                    "description": "Prouduct description."
                  },
                  "accountNumber": {
                    "type": "string",
                    "description": "Account number the product/services belongs to."
                  },
                  "accountName": {
                    "type": "string",
                    "description": "Account name trhe product/services."
                  },
                  "installationDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Date time the product or service is purchased/installed."
                  },
                  "customerReferenceNumber": {
                    "type": "string",
                    "description": "Customer reference number."
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "ACTIVE",
                      "INACTIVE"
                    ]
                  },
                  "additionalDetails": {
                    "type": "object",
                    "title": "AdditionalDetails",
                    "description": "These are additional details specific to the asset",
                    "properties": {
                      "cabinetNumber": {
                        "type": "string"
                      },
                      "customerOrCarrierCircuitID": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            },
            "page": {
              "title": "PageInfo",
              "type": "object",
              "properties": {
                "limit": {
                  "type": "integer",
                  "description": "Starting count based on offset."
                },
                "offset": {
                  "type": "integer",
                  "description": "Limit count per page."
                },
                "total": {
                  "type": "integer",
                  "description": "Matching record count / total number records matched with filter."
                },
                "sorts": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "SERIAL_NUMBER",
                      "-SERIAL_NUMBER",
                      "ORDER_NUMBER",
                      "-ORDER_NUMBER",
                      "PRODUCT_TYPE",
                      "-PRODUCT_TYPE",
                      "CAGE",
                      "-CAGE",
                      "IBX",
                      "-IBX",
                      "PRODUCT_DESCRIPTION",
                      "-PRODUCT_DESCRIPTION",
                      "ACCOUNT_NUMBER",
                      "-ACCOUNT_NUMBER",
                      "INSTALLED_DATE",
                      "-INSTALLED_DATE"
                    ]
                  }
                }
              }
            },
            "_links": {
              "title": "_links",
              "type": "object",
              "properties": {
                "next": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "href"
                  ]
                },
                "self": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "href"
                  ]
                },
                "previous": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "href"
                  ]
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/searchAssets"
      },
      "task": true
    },
    {
      "name": "getAssetById",
      "summary": "Get details of an asset",
      "description": "The Get assets by Id API returns all details for a specific asset from its identification number. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "assetId",
          "type": "string",
          "info": "{assetId} identification number: string",
          "required": true,
          "schema": {
            "title": "assetId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Asset",
          "type": "object",
          "description": "assets details.",
          "properties": {
            "assetNumber": {
              "type": "string",
              "description": "Asset number."
            },
            "serialNumber": {
              "type": "string",
              "description": "Serial numbmer of the asset."
            },
            "orderNumber": {
              "type": "string",
              "description": "Order number associated with the asset/service."
            },
            "productName": {
              "type": "string",
              "description": "Product type."
            },
            "ibx": {
              "type": "string",
              "description": "Ibx of the location."
            },
            "cage": {
              "type": "string",
              "description": "Cage of the location."
            },
            "productDescription": {
              "type": "string",
              "description": "Prouduct description."
            },
            "accountNumber": {
              "type": "string",
              "description": "Account number the product/services belongs to."
            },
            "accountName": {
              "type": "string",
              "description": "Account name trhe product/services."
            },
            "installationDate": {
              "type": "string",
              "format": "date-time",
              "description": "Date time the product or service is purchased/installed."
            },
            "customerReferenceNumber": {
              "type": "string",
              "description": "Customer reference number."
            },
            "status": {
              "type": "string",
              "enum": [
                "ACTIVE",
                "INACTIVE"
              ]
            },
            "productDetails": {
              "type": "array",
              "description": "key/value pairs of product details.",
              "items": {
                "title": "AssetsProperty",
                "type": "object",
                "description": "key/value pair representing assets property.",
                "properties": {
                  "key": {
                    "type": "string",
                    "description": "Key of the property."
                  },
                  "value": {
                    "type": "string",
                    "description": "Value of the property."
                  },
                  "tag": {
                    "type": "string",
                    "description": "Stands for a logical grouping on where the asset belogs to for a particular product. e.g - A-SIDE for Cross Connect."
                  }
                },
                "required": [
                  "key",
                  "value"
                ]
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAssetById"
      },
      "task": true
    },
    {
      "name": "createAttachment",
      "summary": "Upload attachment file",
      "description": "The Post attachments file API creates an attachment to be uploaded. The returned attachment ID number and attachment name will be used with other POST APIs that require an attachment, such as letter of agreement file for cross connect POST APIs or purchase order attachment for order POST APIs.",
      "input": [
        {
          "name": "uploadFile",
          "type": "string",
          "info": "The file to be uploaded: string",
          "required": true,
          "schema": {
            "title": "uploadFile",
            "type": "string"
          }
        },
        {
          "name": "purpose",
          "type": "string",
          "info": "Purpose of the file is uploaded. [ ex. LOA is for Cross connect, PO is for Purchar order ]: Must be one of [LOA, PO_DOCUMENT]",
          "required": false,
          "schema": {
            "title": "purpose",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Attachment",
          "type": "object",
          "description": "Attachment meta data",
          "properties": {
            "attachmentId": {
              "type": "string",
              "description": "Unique Identifier for the attachment",
              "format": "uuid"
            },
            "attachmentName": {
              "type": "string",
              "description": "File name of the attachment"
            },
            "attachmentType": {
              "type": "string",
              "description": "Extension of the document"
            },
            "attachmentSize": {
              "type": "number",
              "default": 0,
              "description": "size of the attachment in bytes",
              "minimum": 0,
              "maximum": 1000000000
            },
            "createdDate": {
              "type": "string",
              "description": "Created date",
              "format": "date-time"
            },
            "createdBy": {
              "type": "string",
              "description": "User key of the author of the attachment"
            },
            "lastUpdatedDate": {
              "type": "string",
              "description": "Last accessed date for the record",
              "format": "date-time"
            }
          },
          "required": [
            "attachmentId",
            "attachmentName",
            "attachmentType",
            "attachmentSize",
            "createdDate",
            "createdBy",
            "lastUpdatedDate"
          ],
          "example": {
            "attachmentId": "56d10de6-f2c0-4edd-ba29-b70736aa2093",
            "attachmentName": "Example_Invoice.pdf",
            "attachmentType": "application/pdf",
            "attachmentSize": 259387,
            "createdDate": "2017-01-31T09:03:08.340Z",
            "createdBy": "john.doe@example.com",
            "lastUpdatedDate": "2017-04-06T17:10:44.807Z"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createAttachment"
      },
      "task": true
    },
    {
      "name": "deleteAttachment",
      "summary": "Delete attachments by identifier",
      "description": "This API deletes a specific attachment file. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "attachmentId",
          "type": "string",
          "info": "This is an identifier unique to each attachment. This is exclusive to the original user who created the attachment, and can only be used by the original user.: string",
          "required": true,
          "schema": {
            "title": "attachmentId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Status",
          "type": "object",
          "properties": {
            "status": {
              "type": "boolean",
              "description": "Status message",
              "default": false
            }
          },
          "required": [
            "status"
          ],
          "example": {
            "status": false
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteAttachment"
      },
      "task": true
    },
    {
      "name": "getCrossConnectProviders",
      "summary": "Get Cross Connect Providers",
      "description": "The Get cross Connect providers API returns all available cross connect service providers to the user with 'Cross Connect & Intra-Facility Cables' permission. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "crossConnectType",
          "type": "string",
          "info": ": Must be one of [STANDARD, INTRA_CUSTOMER, EXTENDED, FIBER]",
          "required": true,
          "schema": {
            "title": "crossConnectType",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX - Example: AM1, AM2: string",
          "required": true,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "cage",
          "type": "string",
          "info": "Cage. Example: AM1:0G:00EQ: string",
          "required": true,
          "schema": {
            "title": "cage",
            "type": "string"
          }
        },
        {
          "name": "account",
          "type": "string",
          "info": "Account number. Example: 1233: string",
          "required": true,
          "schema": {
            "title": "account",
            "type": "string"
          }
        },
        {
          "name": "connectTo",
          "type": "string",
          "info": "Defines in case of Fiber connect,: Must be one of [SELF, SERVICE_PROVIDER]",
          "required": false,
          "schema": {
            "title": "connectTo",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "accountNo": {
                "type": "string"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCrossConnectProviders"
      },
      "task": true
    },
    {
      "name": "getCrossConnectLocations",
      "summary": "Get Cross Connect Locations",
      "description": "The Get cross Connect locations API returns all IBX locations, accounts, cages and cabinets information for a given A-side or Z-side criteria. This can only be done when the user has 'Cross Connect & Intra-Facility Cables' permission.",
      "input": [
        {
          "name": "ibxs",
          "type": "string",
          "info": "Constrain which IBXs are returned by specifying a single IBX code (ex: AM1), or comma separated (ex: AM1,AM2,AM3).: string",
          "required": false,
          "schema": {
            "title": "ibxs",
            "type": "string"
          }
        },
        {
          "name": "crossConnectType",
          "type": "string",
          "info": "Cross Connect Type: Must be one of [STANDARD, EXTENDED, INTRA_CUSTOMER, FIBER, FIBER_EXTENDED, DEINSTALL]",
          "required": false,
          "schema": {
            "title": "crossConnectType",
            "type": "string"
          }
        },
        {
          "name": "cages",
          "type": "string",
          "info": "Array of cages for which the location information has to be returned. Example: AM1:0G:00EQ: string",
          "required": false,
          "schema": {
            "title": "cages",
            "type": "string"
          }
        },
        {
          "name": "detail",
          "type": "boolean",
          "info": "This is false by default. In the false case only permitted IBXs will be returned for a given user. If set to true, a more verbose dataset containing cage, cabinet, and ac...(description truncated): boolean",
          "required": false,
          "schema": {
            "title": "detail",
            "type": "boolean"
          }
        },
        {
          "name": "side",
          "type": "string",
          "info": "Possible values: A_SIDE, Z_SIDE. If value Z_SIDE is selected, then the other query params 'asideIbx' and 'accountNumber' are required. Example: 1233: Must be one of [A_SIDE, Z_SIDE]",
          "required": false,
          "schema": {
            "title": "side",
            "type": "string"
          }
        },
        {
          "name": "asideIbx",
          "type": "string",
          "info": "IBX on A_SIDE. Required only when Z_SIDE is the value for the side query param - Example: AM1, AM2: string",
          "required": false,
          "schema": {
            "title": "asideIbx",
            "type": "string"
          }
        },
        {
          "name": "accountNumber",
          "type": "string",
          "info": "Account Number for Z-Side Provider. Required only when Z_SIDE is the value for the 'side' query param.: string",
          "required": false,
          "schema": {
            "title": "accountNumber",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "title": "Ibx",
            "type": "object",
            "properties": {
              "ibx": {
                "type": "string"
              },
              "cages": {
                "type": "array",
                "items": {
                  "title": "Cage",
                  "type": "object",
                  "properties": {
                    "cage": {
                      "type": "string",
                      "description": "Cage. Example: AM1:0G:00EQ"
                    },
                    "cageType": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "accounts": {
                      "type": "array",
                      "items": {
                        "title": "Account",
                        "type": "object",
                        "properties": {
                          "number": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "isCreditHold": {
                            "type": "boolean"
                          },
                          "isPOBearing": {
                            "type": "boolean"
                          },
                          "cabinets": {
                            "type": "array",
                            "items": {
                              "title": "Cabinet",
                              "type": "object",
                              "properties": {
                                "cabinet": {
                                  "type": "string"
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCrossConnectLocations"
      },
      "task": true
    },
    {
      "name": "getCrossConnectTypes",
      "summary": "Get Cross Connect Types",
      "description": "The Get cross connect types API returns all inter Connection products available to the user including cross connects types, network port types, and interconnection services based on their 'Cross Connect & Intra-Facility Cables' ordering permission.",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "crossconnects": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string"
                  },
                  "typeDescription": {
                    "type": "string"
                  }
                }
              }
            },
            "interconnectionservices": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string"
                  },
                  "typeDescription": {
                    "type": "string"
                  }
                }
              }
            },
            "networkports": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string"
                  },
                  "typeDescription": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getCrossConnectTypes"
      },
      "task": true
    },
    {
      "name": "getCrossconnectConnectionServices",
      "summary": "Get Cross Connect Connection Services",
      "description": "The Get cross connect connection services API returns all available connections services within the requested IBX where the user has 'Cross Connect & Intra-Facility Cables' permission.",
      "input": [
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX - Example: AM1, AM2: string",
          "required": false,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "side",
          "type": "string",
          "info": ": Must be one of [A_SIDE, Z_SIDE]",
          "required": false,
          "schema": {
            "title": "side",
            "type": "string"
          }
        },
        {
          "name": "asideIbx",
          "type": "string",
          "info": "IBX on A_SIDE - Example: AM1, AM2: string",
          "required": false,
          "schema": {
            "title": "asideIbx",
            "type": "string"
          }
        },
        {
          "name": "providerAccountNo",
          "type": "string",
          "info": "Incase of Intra CC, provider account no will be A-side account no.: string",
          "required": false,
          "schema": {
            "title": "providerAccountNo",
            "type": "string"
          }
        },
        {
          "name": "crossConnectType",
          "type": "string",
          "info": ": Must be one of [STANDARD, EXTENDED, INTRA_CUSTOMER, FIBER, FIBER_EXTENDED]",
          "required": false,
          "schema": {
            "title": "crossConnectType",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "title": "Connection Service",
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "mediaType": {
                "type": "array",
                "items": {
                  "title": "Media Type",
                  "type": "object",
                  "example": "Single-Mode Fiber",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "protocolType": {
                      "type": "array",
                      "items": {
                        "title": "Protocol Type",
                        "type": "object",
                        "example": "OC-3",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "connectorType": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "example": "SC"
                          }
                        }
                      }
                    },
                    "circuitCount": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCrossconnectConnectionServices"
      },
      "task": true
    },
    {
      "name": "getCrossConnectPatchPanel",
      "summary": "Get Cross Connect Patch panel",
      "description": "The Get cross connect patch panel API returns patch panel information to a user with 'Cross Connect & Intra-Facility Cables' permission. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "name",
          "type": "string",
          "info": "Patch Panel: string",
          "required": false,
          "schema": {
            "title": "name",
            "type": "string"
          }
        },
        {
          "name": "ibx",
          "type": "string",
          "info": "IBX - Example: AM1, AM2: string",
          "required": false,
          "schema": {
            "title": "ibx",
            "type": "string"
          }
        },
        {
          "name": "cage",
          "type": "string",
          "info": "Cage. Example: AM1:0G:00EQ: string",
          "required": false,
          "schema": {
            "title": "cage",
            "type": "string"
          }
        },
        {
          "name": "cabinet",
          "type": "string",
          "info": "Cabinet. Example: AM1:0G:00EQ:1234: string",
          "required": false,
          "schema": {
            "title": "cabinet",
            "type": "string"
          }
        },
        {
          "name": "legacyName",
          "type": "string",
          "info": "Legacy Name. Example: Abc: string",
          "required": false,
          "schema": {
            "title": "legacyName",
            "type": "string"
          }
        },
        {
          "name": "mediaType",
          "type": "string",
          "info": "Media Type. Example: Single-Mode Fiber: string",
          "required": false,
          "schema": {
            "title": "mediaType",
            "type": "string"
          }
        },
        {
          "name": "side",
          "type": "string",
          "info": ": Must be one of [A_SIDE, Z_SIDE]",
          "required": false,
          "schema": {
            "title": "side",
            "type": "string"
          }
        },
        {
          "name": "asideIbx",
          "type": "string",
          "info": "IBX on A_SIDE - Example: AM1, AM2: string",
          "required": false,
          "schema": {
            "title": "asideIbx",
            "type": "string"
          }
        },
        {
          "name": "providerAccountNo",
          "type": "string",
          "info": "Incase of Intra CC, provider account no will be A-side account no.: string",
          "required": false,
          "schema": {
            "title": "providerAccountNo",
            "type": "string"
          }
        },
        {
          "name": "accountNumber",
          "type": "string",
          "info": "Account number with which cage is associated. Example: 1233: string",
          "required": true,
          "schema": {
            "title": "accountNumber",
            "type": "string"
          }
        },
        {
          "name": "crossConnectType",
          "type": "string",
          "info": ": Must be one of [STANDARD, EXTENDED, INTRA_CUSTOMER, FIBER, FIBER_EXTENDED]",
          "required": false,
          "schema": {
            "title": "crossConnectType",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Patch Panel Order",
          "type": "object",
          "properties": {
            "ibxLocation": {
              "title": "IBX Location",
              "type": "object",
              "properties": {
                "ibx": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 4
                },
                "cages": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "properties": {
                      "cage": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Cage. Example: AM1:0G:00EQ"
                      },
                      "cabinets": {
                        "type": "array",
                        "minItems": 1,
                        "items": {
                          "type": "string"
                        },
                        "example": "AM1:0G:00EQ:1223"
                      },
                      "accountNumber": {
                        "type": "string",
                        "description": "This attribute is mandatory for A Side locations. Example: 1233"
                      }
                    },
                    "required": [
                      "cage",
                      "cabinets"
                    ]
                  }
                }
              },
              "required": [
                "ibx",
                "cages"
              ],
              "example": {
                "ibx": "PA2",
                "cages": [
                  {
                    "cage": "PA2:02:002MC1",
                    "accountNumber": "115657",
                    "cabinets": [
                      "PA2:02:002MC1:0601"
                    ]
                  }
                ]
              }
            },
            "contacts": {
              "type": "array",
              "items": {
                "title": "Contact",
                "type": "object",
                "properties": {
                  "userName": {
                    "type": "string"
                  },
                  "contactType": {
                    "type": "string",
                    "enum": [
                      "ORDERING"
                    ]
                  }
                }
              }
            },
            "serviceDetails": {
              "title": "Patch Panel Details",
              "type": "object",
              "properties": {
                "patchPanelType": {
                  "type": "string",
                  "enum": [
                    "EQUINIX_PROVIDED",
                    "CUSTOMER_PROVIDED"
                  ],
                  "minLength": 1
                },
                "installationRequired": {
                  "type": "boolean"
                },
                "installationLocation": {
                  "type": "string"
                },
                "dedicatedMediaType": {
                  "type": "string",
                  "minLength": 1
                },
                "rackLocation": {
                  "type": "string",
                  "minLength": 1
                },
                "portCapacity": {
                  "type": "string",
                  "minLength": 1
                },
                "customerPanelReference": {
                  "type": "string"
                }
              },
              "required": [
                "patchPanelType",
                "installationRequired",
                "dedicatedMediaType",
                "rackLocation",
                "portCapacity"
              ]
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCrossConnectPatchPanel"
      },
      "task": true
    },
    {
      "name": "postCrossConnectStandard",
      "summary": "Order Standard Cross Connect",
      "description": "The Post cross connect standard API creates a standard cross connect order. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "action",
          "type": "string",
          "info": ": Must be one of [SUBMIT]",
          "required": true,
          "schema": {
            "title": "action",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"quantityRequested\": 123, \"customerFollowUpRequired\": \"boolean\", \"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"contacts\": [{\"contactType\": \"Must be one of [TECHNICAL, ORDERING, NOTIFICATION]\", \"userName\": \"string\", \"name\": \"string\", \"email\": \"string\", \"workPhoneCountryCode\": \"string\", \"workPhone\": \"string\", \"workPhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\", \"mobilePhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"workPhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\", \"mobilePhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\"}], \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": [{\"id\": \"string\", \"name\": \"string\"}], \"additionalDetails\": \"string\", \"serviceDetails\": {\"aside\": {\"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"cabinets\": \"array\", \"accountNumber\": \"string\"}]}, \"connectionService\": \"string\", \"mediaType\": \"string\", \"proceedIfMediaCoverterIsRequired\": \"boolean\", \"protocolType\": \"string\", \"connectorType\": \"string\", \"focDate\": \"string\", \"patchpanel\": {\"name\": \"string\", \"portA\": \"string\", \"portB\": \"string\"}}, \"zside\": {\"customer\": \"string\", \"customerAccount\": \"string\", \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"cabinets\": \"array\", \"accountNumber\": \"string\"}]}, \"connectionService\": \"string\", \"connectorType\": \"string\", \"patchpanel\": {\"name\": \"string\", \"portA\": \"string\", \"portB\": \"string\"}, \"circuitId\": \"string\", \"loa\": {\"attachments\": \"array\"}, \"notifyZsideUponCompletion\": \"boolean\", \"zSideContactEmail\": \"string\"}, \"patchEquipment\": \"boolean\", \"device\": {\"cabinet\": \"string\", \"connectorType\": \"string\", \"details\": \"string\", \"port\": \"string\"}, \"bmmrRequired\": \"boolean\", \"needSupportFromASubmarineCableStationEngineer\": \"boolean\", \"connectToOwnCageOrCabinet\": \"boolean\", \"lightLinkVerificationRequired\": \"boolean\"}}",
          "required": true,
          "schema": {
            "title": "CrossConnectOrder",
            "type": "object",
            "properties": {
              "quantityRequested": {
                "type": "integer",
                "description": "Currently, we’re not supporting multi-quantity, so “quantityRequested” will be considered as 1 by default.",
                "default": 1,
                "example": 1
              },
              "customerFollowUpRequired": {
                "type": "boolean",
                "default": false
              },
              "customerReferenceNumber": {
                "type": "string",
                "pattern": "^[ A-Za-z0-9_@./#&+-]{1,50}$",
                "example": "123"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "contacts": {
                "type": "array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal. Only username and contactType are valid for ordering and notification contacts, all other attributes will be ignored. <br> <br> Technical contact is mandatory. workPhoneCountryCode, workPhone and workPhonePrefToCall attributes are mandatory for Technical Contact.  <br><br>  If notification contact is not available to pass, please use ordering contact as notification contact also. <br> ",
                "minItems": 3,
                "items": {
                  "title": "Contact Info",
                  "type": "object",
                  "properties": {
                    "contactType": {
                      "type": "string",
                      "description": "Contact Type, possible values are ORDERING, NOTIFICATION, TECHNICAL",
                      "enum": [
                        "TECHNICAL",
                        "ORDERING",
                        "NOTIFICATION"
                      ],
                      "example": "TECHNICAL"
                    },
                    "userName": {
                      "type": "string",
                      "description": "User Name",
                      "example": "kmo00re@abc.com"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[\\s.]*([^\\s.][\\s.]*){0,100}$",
                      "description": "Technical Contact Name",
                      "example": "David"
                    },
                    "email": {
                      "title": "emailDef",
                      "type": "string",
                      "description": "Contact Email",
                      "maxLength": 100
                    },
                    "workPhoneCountryCode": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "workPhone": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^[0-9\\.\\-() ]{2,40}(?:(x|ext).+)?$",
                      "example": "111-111-1111"
                    },
                    "workPhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "mobilePhoneCountryCode": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "mobilePhone": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^[0-9\\.\\-() ]{2,40}(?:(x|ext).+)?$",
                      "example": "111-111-1112"
                    },
                    "mobilePhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "workPhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    },
                    "mobilePhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    }
                  },
                  "required": [
                    "contactType"
                  ]
                },
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ]
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "schedule type",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED"
                    ],
                    "example": "STANDARD"
                  },
                  "requestedStartDate": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API",
                "items": {
                  "title": "Attachment",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Attachement Id",
                      "minLength": 1,
                      "example": "eb9ab7e9-3785-41e4-af24-74b8dc37b254"
                    },
                    "name": {
                      "type": "string",
                      "description": "Attachment file name",
                      "minLength": 1,
                      "example": "letter_of_authorization.pdf"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              },
              "additionalDetails": {
                "type": "string",
                "description": "Any additional information related to cross connect",
                "minLength": 1,
                "maxLength": 4000,
                "pattern": "^[\\n A-Za-z0-9~!|\\[\\]@#$%^&*()_+:;\"<>?\\/.,'=\\-\\{\\}`\\\\]{1,4000}$",
                "example": "Additional notes related to order"
              },
              "serviceDetails": {
                "title": "ServiceDetails",
                "type": "object",
                "properties": {
                  "aside": {
                    "title": "ASide",
                    "type": "object",
                    "properties": {
                      "ibxLocation": {
                        "title": "IBX Location",
                        "type": "object",
                        "properties": {
                          "ibx": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 4
                          },
                          "cages": {
                            "type": "array",
                            "minItems": 1,
                            "items": {
                              "type": "object",
                              "properties": {
                                "cage": {
                                  "type": "string",
                                  "minLength": 1,
                                  "description": "Cage. Example: AM1:0G:00EQ"
                                },
                                "cabinets": {
                                  "type": "array",
                                  "minItems": 1,
                                  "items": {
                                    "type": "string"
                                  },
                                  "example": "AM1:0G:00EQ:1223"
                                },
                                "accountNumber": {
                                  "type": "string",
                                  "description": "This attribute is mandatory for A Side locations. Example: 1233"
                                }
                              },
                              "required": [
                                "cage",
                                "cabinets"
                              ]
                            }
                          }
                        },
                        "required": [
                          "ibx",
                          "cages"
                        ],
                        "example": {
                          "ibx": "PA2",
                          "cages": [
                            {
                              "cage": "PA2:02:002MC1",
                              "accountNumber": "115657",
                              "cabinets": [
                                "PA2:02:002MC1:0601"
                              ]
                            }
                          ]
                        }
                      },
                      "connectionService": {
                        "type": "string",
                        "example": "Single-Mode Fiber"
                      },
                      "mediaType": {
                        "type": "string",
                        "example": "Single-Mode Fiber"
                      },
                      "proceedIfMediaCoverterIsRequired": {
                        "type": "boolean",
                        "description": "Technician to proceed if Media Type is Required"
                      },
                      "protocolType": {
                        "type": "string",
                        "example": "OC-3"
                      },
                      "connectorType": {
                        "type": "string",
                        "example": "SC"
                      },
                      "focDate": {
                        "type": "string",
                        "format": "date-time",
                        "description": "(Firm Order Completion) Date is the Date, when the Carrier commits to enable the Circuit\nexample: 2017-04-05T12:00:00Z"
                      },
                      "patchpanel": {
                        "title": "Patch Panel Info",
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Patch Panel Name",
                            "example": "PP:0105:65941"
                          },
                          "portA": {
                            "type": "string",
                            "description": "Patch Panel Port A",
                            "example": 2
                          },
                          "portB": {
                            "type": "string",
                            "description": "Patch Panel Port B",
                            "example": "Next Available"
                          }
                        }
                      }
                    },
                    "required": [
                      "ibxLocation",
                      "connectionService",
                      "mediaType",
                      "protocolType",
                      "connectorType",
                      "patchpanel"
                    ]
                  },
                  "zside": {
                    "title": "ZSide",
                    "type": "object",
                    "properties": {
                      "customer": {
                        "type": "string",
                        "description": "Name of the Z-Side Customer\nexample: ABC Corporation",
                        "example": "abc"
                      },
                      "customerAccount": {
                        "type": "string",
                        "description": "Account of the Z-Side Customer\nexample: 43232345",
                        "example": "123"
                      },
                      "ibxLocation": {
                        "title": "ZSideIbxLocation",
                        "type": "object",
                        "properties": {
                          "ibx": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 40,
                            "description": "IBX - Example: AM1, AM2",
                            "example": "AM1"
                          },
                          "cages": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "cage": {
                                  "type": "string",
                                  "description": "Cage. Example: AM1:0G:00EQ",
                                  "example": "AM1:0G:00E"
                                },
                                "cabinets": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "example": [
                                    "AM1:0G:00E:1212"
                                  ]
                                },
                                "accountNumber": {
                                  "type": "string",
                                  "description": "This attribute is only mandatory for Intra Cross Connect, for all other Cross Connect types it is optional. It accepts the accountNumber associated with the inputted IBX, Cage, and Cabinet fields in the Z-Side IBX Location object. In rare cases this field may differ in value compared to the zside/customerAccount field and that is ok as long as both account numbers mentioned belong to your org. Example: 1233",
                                  "example": "123"
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "ibx"
                        ]
                      },
                      "connectionService": {
                        "type": "string",
                        "example": "Single-Mode Fiber"
                      },
                      "connectorType": {
                        "type": "string",
                        "example": "SC"
                      },
                      "patchpanel": {
                        "title": "Patch Panel Info",
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Patch Panel Name",
                            "example": "PP:0105:65941"
                          },
                          "portA": {
                            "type": "string",
                            "description": "Patch Panel Port A",
                            "example": 2
                          },
                          "portB": {
                            "type": "string",
                            "description": "Patch Panel Port B",
                            "example": "Next Available"
                          }
                        }
                      },
                      "circuitId": {
                        "type": "string",
                        "description": "Customer/Carrier Circuit ID\nexample: Ip NNI GC #1",
                        "example": "abcd"
                      },
                      "loa": {
                        "title": "LOA Attachment",
                        "type": "object",
                        "properties": {
                          "attachments": {
                            "type": "array",
                            "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API",
                            "items": {
                              "type": "object",
                              "description": ""
                            }
                          }
                        }
                      },
                      "notifyZsideUponCompletion": {
                        "type": "boolean",
                        "description": "true if the Z side contact to be notified, upon completion. If true, then zSideContactEmail is mandatory.",
                        "default": false
                      },
                      "zSideContactEmail": {
                        "type": "string",
                        "pattern": "(?:[a-z0-9!#$%&'*+=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])",
                        "description": "Email of Z side Contact to be notified, upon completion.",
                        "example": "abcd@gmail.com"
                      }
                    },
                    "required": [
                      "ibxLocation",
                      "circuitId",
                      "connectionService"
                    ]
                  },
                  "patchEquipment": {
                    "type": "boolean",
                    "description": "Do you want to patch the Equipment ?",
                    "default": false
                  },
                  "device": {
                    "title": "Device",
                    "type": "object",
                    "properties": {
                      "cabinet": {
                        "type": "string",
                        "example": "AM1:0G:00EQ11-1:0602"
                      },
                      "connectorType": {
                        "type": "string",
                        "example": "SC"
                      },
                      "details": {
                        "type": "string",
                        "example": "abc"
                      },
                      "port": {
                        "type": "string",
                        "example": "1"
                      }
                    }
                  },
                  "bmmrRequired": {
                    "type": "boolean",
                    "description": "Is Building Meet Me Room Required ?\n\n"
                  },
                  "needSupportFromASubmarineCableStationEngineer": {
                    "type": "boolean",
                    "description": "Need support from a submarine Cable Engineer?",
                    "default": false
                  },
                  "connectToOwnCageOrCabinet": {
                    "type": "boolean",
                    "description": "Connect to Own Cage or Cabinet"
                  },
                  "lightLinkVerificationRequired": {
                    "type": "boolean",
                    "description": "true if the Z side contact to be notified, upon completion. If true, then zSideContactEmail is mandatory.",
                    "default": false
                  }
                },
                "required": [
                  "aside"
                ]
              }
            },
            "required": [
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Success Response",
          "type": "object",
          "properties": {
            "OrderNumber": {
              "type": "string"
            }
          },
          "example": {
            "OrderNumber": "1-12145553"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postCrossConnectStandard"
      },
      "task": true
    },
    {
      "name": "postCrossConnectsStandard",
      "summary": "Order Multiple Cross Connects",
      "description": "This method creates multi-quantity cross connects in a single order request. Only the standard cross connect type is currently supported for multi-quantity cross connect orders.",
      "input": [
        {
          "name": "action",
          "type": "string",
          "info": ": Must be one of [SUBMIT]",
          "required": true,
          "schema": {
            "title": "action",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"quantityRequested\": 123, \"customerFollowUpRequired\": \"boolean\", \"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"contacts\": [{\"contactType\": \"Must be one of [TECHNICAL, ORDERING, NOTIFICATION]\", \"userName\": \"string\", \"name\": \"string\", \"email\": \"string\", \"workPhoneCountryCode\": \"string\", \"workPhone\": \"string\", \"workPhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\", \"mobilePhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"workPhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\", \"mobilePhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\"}], \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": [{\"id\": \"string\", \"name\": \"string\"}], \"additionalDetails\": \"string\", \"serviceDetails\": [{\"aside\": {\"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"cabinets\": \"array\", \"accountNumber\": \"string\"}]}, \"connectionService\": \"string\", \"mediaType\": \"string\", \"proceedIfMediaCoverterIsRequired\": \"boolean\", \"protocolType\": \"string\", \"connectorType\": \"string\", \"focDate\": \"string\", \"patchpanel\": {\"name\": \"string\", \"portA\": \"string\", \"portB\": \"string\"}}, \"zside\": {\"customer\": \"string\", \"customerAccount\": \"string\", \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"cabinets\": \"array\", \"accountNumber\": \"string\"}]}, \"connectionService\": \"string\", \"connectorType\": \"string\", \"patchpanel\": {\"name\": \"string\", \"portA\": \"string\", \"portB\": \"string\"}, \"circuitId\": \"string\", \"loa\": {\"attachments\": \"array\"}, \"notifyZsideUponCompletion\": \"boolean\", \"zSideContactEmail\": \"string\"}, \"patchEquipment\": \"boolean\", \"device\": {\"cabinet\": \"string\", \"connectorType\": \"string\", \"details\": \"string\", \"port\": \"string\"}, \"bmmrRequired\": \"boolean\", \"needSupportFromASubmarineCableStationEngineer\": \"boolean\", \"connectToOwnCageOrCabinet\": \"boolean\", \"lightLinkVerificationRequired\": \"boolean\"}]}",
          "required": true,
          "schema": {
            "title": "CrossConnectsOrder",
            "type": "object",
            "properties": {
              "quantityRequested": {
                "type": "integer",
                "description": "This field will be depricated in the future. You may ignore this.",
                "default": 1,
                "example": 1
              },
              "customerFollowUpRequired": {
                "type": "boolean",
                "description": "This field will be depricated in the future. You may ignore this.",
                "default": false
              },
              "customerReferenceNumber": {
                "type": "string",
                "pattern": "^[ A-Za-z0-9_@./#&+-]{1,50}$",
                "example": "123"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "contacts": {
                "type": "array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal. Only username and contactType are valid for ordering and notification contacts, all other attributes will be ignored. <br> <br> Technical contact is mandatory. workPhoneCountryCode, workPhone and workPhonePrefToCall attributes are mandatory for Technical Contact.  <br><br>  If notification contact is not available to pass, please use ordering contact as notification contact also. <br> ",
                "minItems": 3,
                "items": {
                  "title": "Contact Info",
                  "type": "object",
                  "properties": {
                    "contactType": {
                      "type": "string",
                      "description": "Contact Type, possible values are ORDERING, NOTIFICATION, TECHNICAL",
                      "enum": [
                        "TECHNICAL",
                        "ORDERING",
                        "NOTIFICATION"
                      ],
                      "example": "TECHNICAL"
                    },
                    "userName": {
                      "type": "string",
                      "description": "User Name",
                      "example": "kmo00re@abc.com"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[\\s.]*([^\\s.][\\s.]*){0,100}$",
                      "description": "Technical Contact Name",
                      "example": "David"
                    },
                    "email": {
                      "title": "emailDef",
                      "type": "string",
                      "description": "Contact Email",
                      "maxLength": 100
                    },
                    "workPhoneCountryCode": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "workPhone": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^[0-9\\.\\-() ]{2,40}(?:(x|ext).+)?$",
                      "example": "111-111-1111"
                    },
                    "workPhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "mobilePhoneCountryCode": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "mobilePhone": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^[0-9\\.\\-() ]{2,40}(?:(x|ext).+)?$",
                      "example": "111-111-1112"
                    },
                    "mobilePhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "workPhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    },
                    "mobilePhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    }
                  },
                  "required": [
                    "contactType"
                  ]
                },
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ]
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "schedule type",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED"
                    ],
                    "example": "STANDARD"
                  },
                  "requestedStartDate": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API",
                "items": {
                  "title": "Attachment",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Attachement Id",
                      "minLength": 1,
                      "example": "eb9ab7e9-3785-41e4-af24-74b8dc37b254"
                    },
                    "name": {
                      "type": "string",
                      "description": "Attachment file name",
                      "minLength": 1,
                      "example": "letter_of_authorization.pdf"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              },
              "additionalDetails": {
                "type": "string",
                "description": "Any additional information related to cross connect",
                "minLength": 1,
                "maxLength": 4000,
                "pattern": "^[\\n A-Za-z0-9~!|\\[\\]@#$%^&*()_+:;\"<>?\\/.,'=\\-\\{\\}`\\\\]{1,4000}$",
                "example": "Additional notes related to order"
              },
              "serviceDetails": {
                "type": "array",
                "items": {
                  "title": "ServiceDetails",
                  "type": "object",
                  "properties": {
                    "aside": {
                      "title": "ASide",
                      "type": "object",
                      "properties": {
                        "ibxLocation": {
                          "title": "IBX Location",
                          "type": "object",
                          "properties": {
                            "ibx": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4
                            },
                            "cages": {
                              "type": "array",
                              "minItems": 1,
                              "items": {
                                "type": "object",
                                "properties": {
                                  "cage": {
                                    "type": "string",
                                    "minLength": 1,
                                    "description": "Cage. Example: AM1:0G:00EQ"
                                  },
                                  "cabinets": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                      "type": "string"
                                    },
                                    "example": "AM1:0G:00EQ:1223"
                                  },
                                  "accountNumber": {
                                    "type": "string",
                                    "description": "This attribute is mandatory for A Side locations. Example: 1233"
                                  }
                                },
                                "required": [
                                  "cage",
                                  "cabinets"
                                ]
                              }
                            }
                          },
                          "required": [
                            "ibx",
                            "cages"
                          ],
                          "example": {
                            "ibx": "PA2",
                            "cages": [
                              {
                                "cage": "PA2:02:002MC1",
                                "accountNumber": "115657",
                                "cabinets": [
                                  "PA2:02:002MC1:0601"
                                ]
                              }
                            ]
                          }
                        },
                        "connectionService": {
                          "type": "string",
                          "example": "Single-Mode Fiber"
                        },
                        "mediaType": {
                          "type": "string",
                          "example": "Single-Mode Fiber"
                        },
                        "proceedIfMediaCoverterIsRequired": {
                          "type": "boolean",
                          "description": "Technician to proceed if Media Type is Required"
                        },
                        "protocolType": {
                          "type": "string",
                          "example": "OC-3"
                        },
                        "connectorType": {
                          "type": "string",
                          "example": "SC"
                        },
                        "focDate": {
                          "type": "string",
                          "format": "date-time",
                          "description": "(Firm Order Completion) Date is the Date, when the Carrier commits to enable the Circuit\nexample: 2017-04-05T12:00:00Z"
                        },
                        "patchpanel": {
                          "title": "Patch Panel Info",
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "Patch Panel Name",
                              "example": "PP:0105:65941"
                            },
                            "portA": {
                              "type": "string",
                              "description": "Patch Panel Port A",
                              "example": 2
                            },
                            "portB": {
                              "type": "string",
                              "description": "Patch Panel Port B",
                              "example": "Next Available"
                            }
                          }
                        }
                      },
                      "required": [
                        "ibxLocation",
                        "connectionService",
                        "mediaType",
                        "protocolType",
                        "connectorType",
                        "patchpanel"
                      ]
                    },
                    "zside": {
                      "title": "ZSide",
                      "type": "object",
                      "properties": {
                        "customer": {
                          "type": "string",
                          "description": "Name of the Z-Side Customer\nexample: ABC Corporation",
                          "example": "abc"
                        },
                        "customerAccount": {
                          "type": "string",
                          "description": "Account of the Z-Side Customer\nexample: 43232345",
                          "example": "123"
                        },
                        "ibxLocation": {
                          "title": "ZSideIbxLocation",
                          "type": "object",
                          "properties": {
                            "ibx": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 40,
                              "description": "IBX - Example: AM1, AM2",
                              "example": "AM1"
                            },
                            "cages": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "cage": {
                                    "type": "string",
                                    "description": "Cage. Example: AM1:0G:00EQ",
                                    "example": "AM1:0G:00E"
                                  },
                                  "cabinets": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    },
                                    "example": [
                                      "AM1:0G:00E:1212"
                                    ]
                                  },
                                  "accountNumber": {
                                    "type": "string",
                                    "description": "This attribute is only mandatory for Intra Cross Connect, for all other Cross Connect types it is optional. It accepts the accountNumber associated with the inputted IBX, Cage, and Cabinet fields in the Z-Side IBX Location object. In rare cases this field may differ in value compared to the zside/customerAccount field and that is ok as long as both account numbers mentioned belong to your org. Example: 1233",
                                    "example": "123"
                                  }
                                }
                              }
                            }
                          },
                          "required": [
                            "ibx"
                          ]
                        },
                        "connectionService": {
                          "type": "string",
                          "example": "Single-Mode Fiber"
                        },
                        "connectorType": {
                          "type": "string",
                          "example": "SC"
                        },
                        "patchpanel": {
                          "title": "Patch Panel Info",
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "Patch Panel Name",
                              "example": "PP:0105:65941"
                            },
                            "portA": {
                              "type": "string",
                              "description": "Patch Panel Port A",
                              "example": 2
                            },
                            "portB": {
                              "type": "string",
                              "description": "Patch Panel Port B",
                              "example": "Next Available"
                            }
                          }
                        },
                        "circuitId": {
                          "type": "string",
                          "description": "Customer/Carrier Circuit ID\nexample: Ip NNI GC #1",
                          "example": "abcd"
                        },
                        "loa": {
                          "title": "LOA Attachment",
                          "type": "object",
                          "properties": {
                            "attachments": {
                              "type": "array",
                              "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API",
                              "items": {
                                "type": "object",
                                "description": ""
                              }
                            }
                          }
                        },
                        "notifyZsideUponCompletion": {
                          "type": "boolean",
                          "description": "true if the Z side contact to be notified, upon completion. If true, then zSideContactEmail is mandatory.",
                          "default": false
                        },
                        "zSideContactEmail": {
                          "type": "string",
                          "pattern": "(?:[a-z0-9!#$%&'*+=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])",
                          "description": "Email of Z side Contact to be notified, upon completion.",
                          "example": "abcd@gmail.com"
                        }
                      },
                      "required": [
                        "ibxLocation",
                        "circuitId",
                        "connectionService"
                      ]
                    },
                    "patchEquipment": {
                      "type": "boolean",
                      "description": "Do you want to patch the Equipment ?",
                      "default": false
                    },
                    "device": {
                      "title": "Device",
                      "type": "object",
                      "properties": {
                        "cabinet": {
                          "type": "string",
                          "example": "AM1:0G:00EQ11-1:0602"
                        },
                        "connectorType": {
                          "type": "string",
                          "example": "SC"
                        },
                        "details": {
                          "type": "string",
                          "example": "abc"
                        },
                        "port": {
                          "type": "string",
                          "example": "1"
                        }
                      }
                    },
                    "bmmrRequired": {
                      "type": "boolean",
                      "description": "Is Building Meet Me Room Required ?\n\n"
                    },
                    "needSupportFromASubmarineCableStationEngineer": {
                      "type": "boolean",
                      "description": "Need support from a submarine Cable Engineer?",
                      "default": false
                    },
                    "connectToOwnCageOrCabinet": {
                      "type": "boolean",
                      "description": "Connect to Own Cage or Cabinet"
                    },
                    "lightLinkVerificationRequired": {
                      "type": "boolean",
                      "description": "true if the Z side contact to be notified, upon completion. If true, then zSideContactEmail is mandatory.",
                      "default": false
                    }
                  },
                  "required": [
                    "aside"
                  ]
                }
              }
            },
            "required": [
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Success Response",
          "type": "object",
          "properties": {
            "OrderNumber": {
              "type": "string"
            }
          },
          "example": {
            "OrderNumber": "1-12145553"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postCrossConnectsStandard"
      },
      "task": true
    },
    {
      "name": "getBillingAccounts",
      "summary": "Get billing accounts summary",
      "description": "This method returns a summary of all the billing accounts that the user has permissions to view.",
      "input": [
        {
          "name": "offset",
          "type": "number",
          "info": "Use offset and limit to restrict the number of users in the output. Offset can be used to specify the start record: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Use offset and limit to restrict the number of users in the output. Limit can be used to restrict the number of reports in the response: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "sorts",
          "type": "string",
          "info": "Use sorts to get the accounts in the response sorted in the particular order. for example, use '-ACCOUNT_NUMBER' to sort the reports by generated date in descending order...(description truncated): Must be one of [ACCOUNT_NUMBER, -ACCOUNT_NUMBER, PARENT_ACCOUNT_NUMBER, -PARENT_ACCOUNT_NUMBER, ACCOUNT_NAME, -ACCOUNT_NAME]",
          "required": false,
          "schema": {
            "title": "sorts",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Records",
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "description": "List accounts with billing summary",
              "items": {
                "title": "Account",
                "type": "object",
                "properties": {
                  "accountNumber": {
                    "type": "string"
                  },
                  "parentAccountNumber": {
                    "type": "string"
                  },
                  "accountName": {
                    "type": "string"
                  },
                  "billingFrequency": {
                    "type": "string",
                    "description": "Frequency of billing",
                    "enum": [
                      "MONTHLY",
                      "QUARTERLY",
                      "ANNUALLY"
                    ]
                  },
                  "currencyCode": {
                    "type": "string",
                    "description": "Currency code of the account",
                    "minLength": 1
                  },
                  "invoiceLanguage": {
                    "type": "string",
                    "description": "Language of the invoice"
                  },
                  "invoiceFormat": {
                    "type": "string",
                    "description": "Format of the invoice",
                    "enum": [
                      "PDF",
                      "EXCEL"
                    ]
                  },
                  "invoices": {
                    "description": "Available invoices for the account",
                    "type": "array",
                    "items": {
                      "title": "Invoice",
                      "type": "object",
                      "properties": {
                        "invoiceId": {
                          "type": "string",
                          "description": "Identifier for the invoice",
                          "minLength": 1
                        },
                        "transactionNumber": {
                          "type": "string",
                          "description": "Tansaction number of the invoice",
                          "minLength": 1
                        },
                        "amount": {
                          "type": "number",
                          "description": "Total amount of the invoice",
                          "format": "double"
                        },
                        "date": {
                          "type": "string",
                          "description": "Date of the invoice",
                          "format": "date"
                        },
                        "type": {
                          "title": "InvoiceType",
                          "type": "string",
                          "description": "Type of the invoice",
                          "enum": [
                            "INVOICE",
                            "MANUAL_INVOICE",
                            "CREDIT_MEMO",
                            "STATEMENT"
                          ]
                        },
                        "documents": {
                          "type": "array",
                          "description": "Array of invoice documents",
                          "items": {
                            "title": "InvoiceDocument",
                            "type": "object",
                            "properties": {
                              "documentId": {
                                "type": "string",
                                "description": "Unique Identifier for the document"
                              },
                              "fileType": {
                                "type": "string",
                                "description": "File type of the document",
                                "enum": [
                                  "PDF_DETAILS",
                                  "EXCEL_DETAILS",
                                  "PDF_SUMMARY",
                                  "EXCEL_SUMMARY"
                                ]
                              },
                              "type": {
                                "type": "object",
                                "description": ""
                              }
                            },
                            "required": [
                              "documentId",
                              "fileType",
                              "type"
                            ],
                            "example": {
                              "documentId": "123412",
                              "fileType": "PDF_DETAILS",
                              "type": "STATEMENT"
                            }
                          }
                        }
                      },
                      "required": [
                        "invoiceId",
                        "date",
                        "amount",
                        "status"
                      ],
                      "example": {
                        "invoiceId": "123435",
                        "transactionNumber": "654321879",
                        "amount": 914526.87,
                        "date": "2017-03-23",
                        "type": "CREDIT_MEMO",
                        "documents": [
                          {
                            "documentId": "64322",
                            "fileType": "EXCEL_DETAILS",
                            "type": "STATEMENT"
                          },
                          {
                            "documentId": "213324",
                            "fileType": "EXCEL_DETAILS",
                            "type": "INVOICE"
                          },
                          {
                            "documentId": "44353",
                            "fileType": "PDF_DETAILS",
                            "type": "STATEMENT"
                          },
                          {
                            "documentId": "233424",
                            "fileType": "EXCEL_SUMMARY",
                            "type": "MANUAL_INVOICE"
                          }
                        ]
                      }
                    }
                  },
                  "payments": {
                    "description": "Available payments for the account",
                    "type": "array",
                    "items": {
                      "title": "Payment",
                      "type": "object",
                      "properties": {
                        "paymentId": {
                          "type": "string",
                          "description": "Identifier for the payment",
                          "minLength": 1
                        },
                        "date": {
                          "type": "string",
                          "description": "Payment created date",
                          "format": "date"
                        },
                        "status": {
                          "type": "string",
                          "description": "Status of the payment",
                          "enum": [
                            "APPLIED",
                            "UNAPPLIED"
                          ]
                        },
                        "amount": {
                          "type": "number",
                          "description": "Amount of the payment",
                          "format": "double"
                        }
                      },
                      "required": [
                        "paymentId",
                        "date",
                        "amount",
                        "status"
                      ],
                      "example": {
                        "paymentId": "123435",
                        "amount": 43218.79,
                        "date": "2017-03-23",
                        "type": "APPLIED"
                      }
                    }
                  },
                  "billingContact": {
                    "title": "BillingContact",
                    "type": "object",
                    "properties": {
                      "firstName": {
                        "type": "string",
                        "description": "First name"
                      },
                      "lastName": {
                        "type": "string",
                        "description": "Last name"
                      },
                      "email": {
                        "type": "string",
                        "description": "Email address",
                        "format": "email"
                      }
                    },
                    "required": [
                      "firstName",
                      "lastName",
                      "email"
                    ],
                    "example": {
                      "firstName": "John",
                      "lastName": "Doe",
                      "email": "john.doe@example.lk"
                    }
                  },
                  "accountIbxs": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "example": {
                  "accountName": "Example Inc.",
                  "accountNumber": "124353",
                  "parentAccountNumber": "54321",
                  "accountIbxs": [
                    "IBX1",
                    "IBX2",
                    "IBX3",
                    "IBX4"
                  ],
                  "billingContact": {
                    "firstName": "John",
                    "lastName": "Doe",
                    "email": "john.doe@example.lk"
                  },
                  "billingFrequency": "MONTHLY",
                  "invoiceLanguage": "English",
                  "invoiceFormat": "PDF",
                  "invoices": [
                    {
                      "invoiceId": "123435",
                      "transactionNumber": "654321879",
                      "date": "2017-03-23",
                      "type": "CREDIT_MEMO",
                      "amount": 13456.87,
                      "documents": [
                        {
                          "documentId": "24242",
                          "fileType": "PDF_DETAILS",
                          "type": "STATEMENT"
                        },
                        {
                          "documentId": "3521de",
                          "fileType": "PDF_DETAILS",
                          "type": "INVOICE"
                        },
                        {
                          "documentId": "234234de",
                          "fileType": "PDF_DETAILS",
                          "type": "MANUAL_INVOICE"
                        }
                      ]
                    },
                    {
                      "invoiceId": "123435",
                      "transactionNumber": "654321879",
                      "date": "2017-03-23",
                      "type": "CREDIT_MEMO",
                      "amount": -914.52,
                      "documents": [
                        {
                          "documentId": "242142",
                          "fileType": "PDF_DETAILS",
                          "type": "STATEMENT"
                        }
                      ]
                    }
                  ],
                  "payments": [
                    {
                      "paymentId": "123435",
                      "amount": 43218.79,
                      "date": "2017-03-23",
                      "type": "APPLIED"
                    }
                  ],
                  "currencyCode": "SGD"
                }
              }
            },
            "page": {
              "title": "Page",
              "type": "object",
              "properties": {
                "total": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Total number of records",
                  "default": 0
                },
                "limit": {
                  "type": "integer",
                  "minimum": 0,
                  "default": 0,
                  "description": "Number of records per page"
                },
                "offset": {
                  "type": "integer",
                  "minimum": 0,
                  "default": 0,
                  "description": "The page number"
                },
                "sorts": {
                  "type": "array",
                  "description": "Sort fields based on polarity",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "total",
                "limit",
                "offset"
              ],
              "example": {
                "total": 5469,
                "limit": 50,
                "offset": 15,
                "sorts": [
                  "cupidatat",
                  "dolor occaecat"
                ]
              }
            },
            "_links": {
              "title": "Links",
              "type": "object",
              "properties": {
                "prev": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/accounts?limit=10"
                  }
                },
                "self": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/accounts?limit=10"
                  }
                },
                "next": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/accounts?limit=10"
                  }
                }
              },
              "required": [
                "self"
              ],
              "example": {
                "prev": {
                  "href": "/accounts?limit=10&offset=50"
                },
                "self": {
                  "href": "/accounts?limit=10&offset=40"
                },
                "next": {
                  "href": "/accounts?limit=10&offset=30"
                }
              }
            }
          },
          "required": [
            "data",
            "_links"
          ],
          "example": {
            "data": [
              {
                "accountName": "Example Inc.",
                "accountNumber": "124353",
                "parentAccountNumber": "54321",
                "accountIbxs": [
                  "IBX1",
                  "IBX2",
                  "IBX3",
                  "IBX4"
                ]
              }
            ],
            "page": {
              "total": 1200,
              "limit": 20,
              "offset": 0
            },
            "_links": {
              "prev": {
                "href": "/accounts?limit=10&offset=50"
              },
              "self": {
                "href": "/accounts?limit=10&offset=40"
              },
              "next": {
                "href": "/accounts?limit=10&offset=30"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getBillingAccounts"
      },
      "task": true
    },
    {
      "name": "downloadBillingDocument",
      "summary": "Download specific invoice document",
      "description": "This method billing document from an account by its specific invoice identifier and document identifier",
      "input": [
        {
          "name": "accountNumber",
          "type": "string",
          "info": "Account number: string",
          "required": true,
          "schema": {
            "title": "accountNumber",
            "type": "string"
          }
        },
        {
          "name": "invoiceId",
          "type": "string",
          "info": "Invoice Id: string",
          "required": true,
          "schema": {
            "title": "invoiceId",
            "type": "string"
          }
        },
        {
          "name": "documentId",
          "type": "string",
          "info": "Document Id: string",
          "required": true,
          "schema": {
            "title": "documentId",
            "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": "/downloadBillingDocument"
      },
      "task": true
    },
    {
      "name": "getBillingAccountByNumber",
      "summary": "Get specific billing account summary",
      "description": "This method returns a billing summary of an account based on the account number given.",
      "input": [
        {
          "name": "accountNumber",
          "type": "string",
          "info": "Account number: string",
          "required": true,
          "schema": {
            "title": "accountNumber",
            "type": "string"
          }
        },
        {
          "name": "months",
          "type": "array",
          "info": "Finance documents will be pulled for these months ex: 2017-12-03,2018-01-03 in ISO_LOCAL_DATE format: array",
          "required": false,
          "schema": {
            "title": "months",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Account",
          "type": "object",
          "properties": {
            "accountNumber": {
              "type": "string"
            },
            "parentAccountNumber": {
              "type": "string"
            },
            "accountName": {
              "type": "string"
            },
            "billingFrequency": {
              "type": "string",
              "description": "Frequency of billing",
              "enum": [
                "MONTHLY",
                "QUARTERLY",
                "ANNUALLY"
              ]
            },
            "currencyCode": {
              "type": "string",
              "description": "Currency code of the account",
              "minLength": 1
            },
            "invoiceLanguage": {
              "type": "string",
              "description": "Language of the invoice"
            },
            "invoiceFormat": {
              "type": "string",
              "description": "Format of the invoice",
              "enum": [
                "PDF",
                "EXCEL"
              ]
            },
            "invoices": {
              "description": "Available invoices for the account",
              "type": "array",
              "items": {
                "title": "Invoice",
                "type": "object",
                "properties": {
                  "invoiceId": {
                    "type": "string",
                    "description": "Identifier for the invoice",
                    "minLength": 1
                  },
                  "transactionNumber": {
                    "type": "string",
                    "description": "Tansaction number of the invoice",
                    "minLength": 1
                  },
                  "amount": {
                    "type": "number",
                    "description": "Total amount of the invoice",
                    "format": "double"
                  },
                  "date": {
                    "type": "string",
                    "description": "Date of the invoice",
                    "format": "date"
                  },
                  "type": {
                    "title": "InvoiceType",
                    "type": "string",
                    "description": "Type of the invoice",
                    "enum": [
                      "INVOICE",
                      "MANUAL_INVOICE",
                      "CREDIT_MEMO",
                      "STATEMENT"
                    ]
                  },
                  "documents": {
                    "type": "array",
                    "description": "Array of invoice documents",
                    "items": {
                      "title": "InvoiceDocument",
                      "type": "object",
                      "properties": {
                        "documentId": {
                          "type": "string",
                          "description": "Unique Identifier for the document"
                        },
                        "fileType": {
                          "type": "string",
                          "description": "File type of the document",
                          "enum": [
                            "PDF_DETAILS",
                            "EXCEL_DETAILS",
                            "PDF_SUMMARY",
                            "EXCEL_SUMMARY"
                          ]
                        },
                        "type": {
                          "type": "object",
                          "description": ""
                        }
                      },
                      "required": [
                        "documentId",
                        "fileType",
                        "type"
                      ],
                      "example": {
                        "documentId": "123412",
                        "fileType": "PDF_DETAILS",
                        "type": "STATEMENT"
                      }
                    }
                  }
                },
                "required": [
                  "invoiceId",
                  "date",
                  "amount",
                  "status"
                ],
                "example": {
                  "invoiceId": "123435",
                  "transactionNumber": "654321879",
                  "amount": 914526.87,
                  "date": "2017-03-23",
                  "type": "CREDIT_MEMO",
                  "documents": [
                    {
                      "documentId": "64322",
                      "fileType": "EXCEL_DETAILS",
                      "type": "STATEMENT"
                    },
                    {
                      "documentId": "213324",
                      "fileType": "EXCEL_DETAILS",
                      "type": "INVOICE"
                    },
                    {
                      "documentId": "44353",
                      "fileType": "PDF_DETAILS",
                      "type": "STATEMENT"
                    },
                    {
                      "documentId": "233424",
                      "fileType": "EXCEL_SUMMARY",
                      "type": "MANUAL_INVOICE"
                    }
                  ]
                }
              }
            },
            "payments": {
              "description": "Available payments for the account",
              "type": "array",
              "items": {
                "title": "Payment",
                "type": "object",
                "properties": {
                  "paymentId": {
                    "type": "string",
                    "description": "Identifier for the payment",
                    "minLength": 1
                  },
                  "date": {
                    "type": "string",
                    "description": "Payment created date",
                    "format": "date"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status of the payment",
                    "enum": [
                      "APPLIED",
                      "UNAPPLIED"
                    ]
                  },
                  "amount": {
                    "type": "number",
                    "description": "Amount of the payment",
                    "format": "double"
                  }
                },
                "required": [
                  "paymentId",
                  "date",
                  "amount",
                  "status"
                ],
                "example": {
                  "paymentId": "123435",
                  "amount": 43218.79,
                  "date": "2017-03-23",
                  "type": "APPLIED"
                }
              }
            },
            "billingContact": {
              "title": "BillingContact",
              "type": "object",
              "properties": {
                "firstName": {
                  "type": "string",
                  "description": "First name"
                },
                "lastName": {
                  "type": "string",
                  "description": "Last name"
                },
                "email": {
                  "type": "string",
                  "description": "Email address",
                  "format": "email"
                }
              },
              "required": [
                "firstName",
                "lastName",
                "email"
              ],
              "example": {
                "firstName": "John",
                "lastName": "Doe",
                "email": "john.doe@example.lk"
              }
            },
            "accountIbxs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "example": {
            "accountName": "Example Inc.",
            "accountNumber": "124353",
            "parentAccountNumber": "54321",
            "accountIbxs": [
              "IBX1",
              "IBX2",
              "IBX3",
              "IBX4"
            ],
            "billingContact": {
              "firstName": "John",
              "lastName": "Doe",
              "email": "john.doe@example.lk"
            },
            "billingFrequency": "MONTHLY",
            "invoiceLanguage": "English",
            "invoiceFormat": "PDF",
            "invoices": [
              {
                "invoiceId": "123435",
                "transactionNumber": "654321879",
                "date": "2017-03-23",
                "type": "CREDIT_MEMO",
                "amount": 13456.87,
                "documents": [
                  {
                    "documentId": "24242",
                    "fileType": "PDF_DETAILS",
                    "type": "STATEMENT"
                  },
                  {
                    "documentId": "3521de",
                    "fileType": "PDF_DETAILS",
                    "type": "INVOICE"
                  },
                  {
                    "documentId": "234234de",
                    "fileType": "PDF_DETAILS",
                    "type": "MANUAL_INVOICE"
                  }
                ]
              },
              {
                "invoiceId": "123435",
                "transactionNumber": "654321879",
                "date": "2017-03-23",
                "type": "CREDIT_MEMO",
                "amount": -914.52,
                "documents": [
                  {
                    "documentId": "242142",
                    "fileType": "PDF_DETAILS",
                    "type": "STATEMENT"
                  }
                ]
              }
            ],
            "payments": [
              {
                "paymentId": "123435",
                "amount": 43218.79,
                "date": "2017-03-23",
                "type": "APPLIED"
              }
            ],
            "currencyCode": "SGD"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getBillingAccountByNumber"
      },
      "task": true
    },
    {
      "name": "searchIbxNotifications",
      "summary": "Ibx Notifications Search",
      "description": "Based on filtering criteria, this API returns a summary list of IBX notifications received by a user.",
      "input": [
        {
          "name": "offset",
          "type": "number",
          "info": "The start index from which the list is created.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Number of entries in response.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "sorts",
          "type": "array",
          "info": "Notification sort to get the notification even in the response sorted in the particular order. for example, use '-id' to sort the notification by id in descending order. ...(description truncated): array",
          "required": false,
          "schema": {
            "title": "sorts",
            "type": "array"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"filter\": {\"ibxs\": \"array\", \"types\": \"array\", \"statuses\": \"array\", \"dateRange\": {\"fromDate\": \"string\", \"toDate\": \"string\"}}}",
          "required": false,
          "schema": {
            "title": "IbxSearchRequest",
            "type": "object",
            "properties": {
              "filter": {
                "description": "IBX Notification filter.",
                "type": "object",
                "properties": {
                  "ibxs": {
                    "description": "List of IBX to be filtered.",
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    },
                    "example": [
                      "SG2",
                      "SV1"
                    ]
                  },
                  "types": {
                    "type": "array",
                    "description": "List of IBX Notification type to be filtered.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "IBX_MAINTENANCE",
                        "IBX_INCIDENT",
                        "IBX_ADVISORY",
                        "IBX_SMARTVIEW"
                      ]
                    },
                    "example": [
                      "IBX_INCIDENT",
                      "IBX_ADVISORY"
                    ]
                  },
                  "statuses": {
                    "type": "array",
                    "description": "List of IBX Notification type to be filterd.",
                    "items": {
                      "type": "string",
                      "enum": [
                        "EXTENDED",
                        "RESCHEDULED",
                        "CANCELLED",
                        "COMPLETED",
                        "IN_PROGRESS",
                        "RESOLVED",
                        "UPDATED",
                        "NEW"
                      ]
                    },
                    "example": [
                      "RESCHEDULED",
                      "NEW"
                    ]
                  },
                  "dateRange": {
                    "description": "IBX Notification date Range filter.",
                    "type": "object",
                    "properties": {
                      "fromDate": {
                        "type": "string",
                        "description": "Start date to filter the Notification event. Default will be the date 1 year prior to current date.",
                        "format": "date-time",
                        "example": "2018-01-28T03:46:36.720Z"
                      },
                      "toDate": {
                        "type": "string",
                        "description": "End date to filter the Notification event.",
                        "format": "date-time",
                        "example": "2018-03-28T03:46:36.720Z"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "title": "IbxNotificationSummary",
                "type": "object",
                "description": "Summary of IBX Notification without email details.",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Notification Identification.",
                    "example": "5-122719992195"
                  },
                  "type": {
                    "type": "string",
                    "description": "Notification Type",
                    "example": "IBX_ADVISORY",
                    "enum": [
                      "IBX_MAINTENANCE",
                      "IBX_INCIDENT",
                      "IBX_ADVISORY",
                      "IBX_SMARTVIEW"
                    ]
                  },
                  "startTimestamp": {
                    "type": "string",
                    "description": "Event/Notification start date.",
                    "format": "date-time",
                    "example": "2018-01-28T03:46:36.720Z"
                  },
                  "endTimestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Event/Notification start date",
                    "example": "2018-01-29T03:46:36.720Z"
                  },
                  "ibxs": {
                    "type": "array",
                    "description": "List of IBX",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "SG1",
                      "CH2"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "description": "Event/Notification Status.",
                    "example": "RESOLVED",
                    "enum": [
                      "EXTENDED",
                      "RESCHEDULED",
                      "CANCELLED",
                      "COMPLETED",
                      "IN_PROGRESS",
                      "RESOLVED",
                      "UPDATED",
                      "NEW",
                      "OTHER"
                    ]
                  },
                  "summary": {
                    "type": "string",
                    "description": "Summary information about the event / notification.",
                    "example": "Fire Alarm - IBX was Evacuated"
                  }
                },
                "required": [
                  "id",
                  "type",
                  "startTimestamp",
                  "ibxs",
                  "status"
                ]
              }
            },
            "page": {
              "title": "PageInfo",
              "type": "object",
              "properties": {
                "limit": {
                  "type": "integer",
                  "description": "Starting count based on offset.",
                  "example": 10
                },
                "offset": {
                  "type": "integer",
                  "description": "Limit count per page.",
                  "example": 30
                },
                "total": {
                  "type": "integer",
                  "description": "Matching record count / total number records matched with filter.",
                  "example": 223
                },
                "sorts": {
                  "type": "array",
                  "example": [
                    "id",
                    "-date"
                  ],
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "_links": {
              "title": "_links",
              "type": "object",
              "properties": {
                "next": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "example": "/v1/notifications/ibx?limit=10&offset=0"
                    }
                  },
                  "required": [
                    "href"
                  ]
                },
                "self": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "example": "/v1/notifications/ibx?limit=10&offset=0"
                    }
                  },
                  "required": [
                    "href"
                  ]
                },
                "previous": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "example": "/v1/notifications/ibx?limit=10&offset=0"
                    }
                  },
                  "required": [
                    "href"
                  ]
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/searchIbxNotifications"
      },
      "task": true
    },
    {
      "name": "getIbxNotification",
      "summary": "Get Ibx Notification",
      "description": "This API retrieves the details of a user's IBX notification by its identification (ID) number.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "Ibx Notification Id of the record need to load.: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "Notification Identification.",
              "example": "5-122719992195"
            },
            "type": {
              "type": "string",
              "description": "Notification Type",
              "example": "IBX_ADVISORY",
              "enum": [
                "IBX_MAINTENANCE",
                "IBX_INCIDENT",
                "IBX_ADVISORY",
                "IBX_SMARTVIEW"
              ]
            },
            "startTimestamp": {
              "type": "string",
              "description": "Event/Notification start date.",
              "format": "date-time",
              "example": "2018-01-28T03:46:36.720Z"
            },
            "endTimestamp": {
              "type": "string",
              "format": "date-time",
              "description": "Event/Notification start date",
              "example": "2018-01-29T03:46:36.720Z"
            },
            "ibxs": {
              "type": "array",
              "description": "List of IBX",
              "items": {
                "type": "string"
              },
              "example": [
                "SG1",
                "CH2"
              ]
            },
            "status": {
              "type": "string",
              "description": "Event/Notification Status.",
              "example": "RESOLVED",
              "enum": [
                "EXTENDED",
                "RESCHEDULED",
                "CANCELLED",
                "COMPLETED",
                "IN_PROGRESS",
                "RESOLVED",
                "UPDATED",
                "NEW",
                "OTHER"
              ]
            },
            "summary": {
              "type": "string",
              "description": "Summary information about the event / notification.",
              "example": "Fire Alarm - IBX was Evacuated"
            },
            "emails": {
              "type": "array",
              "description": "Event/Notification Email Content",
              "items": {
                "title": "NotificationEmail",
                "type": "object",
                "properties": {
                  "subject": {
                    "type": "string",
                    "description": "Subject of ibx notification email.",
                    "example": "FR METRO AREA NEW INCIDENT NOTIFICATION - [5-122720103065]"
                  },
                  "body": {
                    "type": "string",
                    "description": "IBX Notification event Email body content.",
                    "example": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "IBX Notification event Email information received time.",
                    "example": "2018-01-28T03:46:36.720Z"
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getIbxNotification"
      },
      "task": true
    },
    {
      "name": "searchNetworkNotifications",
      "summary": "Network Notifications Search",
      "description": "Based on filtering criteria, this API returns a summary list of network notifications received by a user.",
      "input": [
        {
          "name": "offset",
          "type": "number",
          "info": "The start index from which the list is created.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Number of entries in response.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "sorts",
          "type": "array",
          "info": "Notification sort to get the notification even in the response sorted in the particular order. for example, use '-id' to sort the notification by id in descending order. ...(description truncated): array",
          "required": false,
          "schema": {
            "title": "sorts",
            "type": "array"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"filter\": {\"ibxs\": \"array\", \"types\": \"array\", \"productTypes\": \"array\", \"statuses\": \"array\", \"dateRange\": {\"fromDate\": \"string\", \"toDate\": \"string\"}}}",
          "required": false,
          "schema": {
            "title": "NetworkSearchRequest",
            "type": "object",
            "properties": {
              "filter": {
                "description": "Network Notification filter.",
                "type": "object",
                "properties": {
                  "ibxs": {
                    "description": "List of IBX to be filterd.",
                    "type": "array",
                    "example": [
                      "CH2",
                      "SG1"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "types": {
                    "type": "array",
                    "description": "List of Network Notification type to be filtered.",
                    "example": [
                      "NETWORK_INCIDENT"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "NETWORK_INCIDENT",
                        "NETWORK_MAINTENANCE"
                      ]
                    }
                  },
                  "productTypes": {
                    "type": "array",
                    "description": "List of network product type (Possible values: EXPEDITE, CLOUD_EXCHANGE, CLOUD_IX, CROSS_CONNECT, EQUINIX_CONNECT, ETHERNET_EXCHANGE, INTER_METRO_CONNECT, INTERNET_EXCHANGE, MANAGEMENT_ACCESS, METRO_CONNECT, MOBILITY_EXCHANGE, NETWORK_TIMING, VMMR_SDH, VOIP, BI_VLAN, BI_CLOUD). It may return UNKNOWN if no known product type is found.",
                    "example": [
                      "CLOUD_EXCHANGE",
                      "METRO_CONNECT"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "statuses": {
                    "type": "array",
                    "description": "List of Network Notification type to be filterd.",
                    "example": [
                      "RESCHEDULED",
                      "NEW"
                    ],
                    "items": {
                      "type": "string",
                      "enum": [
                        "EXTENDED",
                        "RESCHEDULED",
                        "CANCELLED",
                        "COMPLETED",
                        "IN_PROGRESS",
                        "RESOLVED",
                        "UPDATED",
                        "NEW"
                      ]
                    }
                  },
                  "dateRange": {
                    "description": "Network Notification date Range filter.",
                    "type": "object",
                    "properties": {
                      "fromDate": {
                        "type": "string",
                        "description": "Start date to filter the Notification event. Default will be the date 1 year prior to current date.",
                        "format": "date-time",
                        "example": "2018-01-28T03:46:36.720Z"
                      },
                      "toDate": {
                        "type": "string",
                        "description": "End date to filter the Notification event.",
                        "format": "date-time",
                        "example": "2018-03-28T03:46:36.720Z"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "title": "NetworkNotification",
                "type": "object",
                "description": "Summary of Network Notification without email details.",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Notification Identification.",
                    "example": "5-122662504647"
                  },
                  "type": {
                    "type": "string",
                    "description": "Notification Type.",
                    "example": "NETWORK_MAINTENANCE",
                    "enum": [
                      "NETWORK_INCIDENT",
                      "NETWORK_MAINTENANCE"
                    ]
                  },
                  "startTimestamp": {
                    "type": "string",
                    "description": "Event/Notification start date.",
                    "format": "date-time",
                    "example": "2018-01-28T03:46:36.720Z"
                  },
                  "endTimestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Event/Notification start date.",
                    "example": "2018-01-29T03:46:36.720Z"
                  },
                  "ibxs": {
                    "type": "array",
                    "description": "List of IBX",
                    "example": [
                      "SG1",
                      "SG2"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "status": {
                    "type": "string",
                    "description": "Event/Notification Status.",
                    "example": "RESOLVED",
                    "enum": [
                      "EXTENDED",
                      "RESCHEDULED",
                      "CANCELLED",
                      "COMPLETED",
                      "IN_PROGRESS",
                      "RESOLVED",
                      "UPDATED",
                      "NEW",
                      "OTHER"
                    ]
                  },
                  "productTypes": {
                    "type": "array",
                    "description": "List of network product type (example: ETHERNET_EXCHANGE, INTERNET_EXCHANGE, CROSS_CONNECT, METRO_CONNECT, CLOUD_IX). It may return UNKNOWN if no known product type is found.",
                    "example": [
                      "INTERNET_EXCHANGE",
                      "METRO_CONNECT"
                    ],
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "summary": {
                    "type": "string",
                    "description": "Summary information about the event / notification.",
                    "example": "line card replacement of dis01.wa1"
                  }
                },
                "required": [
                  "id",
                  "type",
                  "startTimestamp",
                  "ibxs",
                  "status"
                ]
              }
            },
            "page": {
              "title": "PageInfo",
              "type": "object",
              "properties": {
                "limit": {
                  "type": "integer",
                  "description": "Starting count based on offset.",
                  "example": 10
                },
                "offset": {
                  "type": "integer",
                  "description": "Limit count per page.",
                  "example": 30
                },
                "total": {
                  "type": "integer",
                  "description": "Matching record count / total number records matched with filter.",
                  "example": 223
                },
                "sorts": {
                  "type": "array",
                  "example": [
                    "id",
                    "-date"
                  ],
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "_links": {
              "title": "_links",
              "type": "object",
              "properties": {
                "next": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "example": "/v1/notifications/ibx?limit=10&offset=0"
                    }
                  },
                  "required": [
                    "href"
                  ]
                },
                "self": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "example": "/v1/notifications/ibx?limit=10&offset=0"
                    }
                  },
                  "required": [
                    "href"
                  ]
                },
                "previous": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "example": "/v1/notifications/ibx?limit=10&offset=0"
                    }
                  },
                  "required": [
                    "href"
                  ]
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/searchNetworkNotifications"
      },
      "task": true
    },
    {
      "name": "getNetworkNotification",
      "summary": "Get Network Notification",
      "description": "This API retrieves the details of a user's network notification by its identification ID number.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "Network Notification Id of the record need to load.: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "Notification Identification.",
              "example": "5-122662504647"
            },
            "type": {
              "type": "string",
              "description": "Notification Type.",
              "example": "NETWORK_MAINTENANCE",
              "enum": [
                "NETWORK_INCIDENT",
                "NETWORK_MAINTENANCE"
              ]
            },
            "startTimestamp": {
              "type": "string",
              "description": "Event/Notification start date.",
              "format": "date-time",
              "example": "2018-01-28T03:46:36.720Z"
            },
            "endTimestamp": {
              "type": "string",
              "format": "date-time",
              "description": "Event/Notification start date.",
              "example": "2018-01-29T03:46:36.720Z"
            },
            "ibxs": {
              "type": "array",
              "description": "List of IBX",
              "example": [
                "SG1",
                "SG2"
              ],
              "items": {
                "type": "string"
              }
            },
            "status": {
              "type": "string",
              "description": "Event/Notification Status.",
              "example": "RESOLVED",
              "enum": [
                "EXTENDED",
                "RESCHEDULED",
                "CANCELLED",
                "COMPLETED",
                "IN_PROGRESS",
                "RESOLVED",
                "UPDATED",
                "NEW",
                "OTHER"
              ]
            },
            "productTypes": {
              "type": "array",
              "description": "List of network product type (example: ETHERNET_EXCHANGE, INTERNET_EXCHANGE, CROSS_CONNECT, METRO_CONNECT, CLOUD_IX). It may return UNKNOWN if no known product type is found.",
              "example": [
                "INTERNET_EXCHANGE",
                "METRO_CONNECT"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "summary": {
              "type": "string",
              "description": "Summary information about the event / notification.",
              "example": "line card replacement of dis01.wa1"
            },
            "emails": {
              "type": "array",
              "description": "Event/Notification Email Content",
              "items": {
                "title": "NotificationEmail",
                "type": "object",
                "properties": {
                  "subject": {
                    "type": "string",
                    "description": "Subject of ibx notification email.",
                    "example": "FR METRO AREA NEW INCIDENT NOTIFICATION - [5-122720103065]"
                  },
                  "body": {
                    "type": "string",
                    "description": "IBX Notification event Email body content.",
                    "example": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "IBX Notification event Email information received time.",
                    "example": "2018-01-28T03:46:36.720Z"
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getNetworkNotification"
      },
      "task": true
    },
    {
      "name": "getRetrieveOrdersLocations",
      "summary": "Retrieve order permissible IBX locations",
      "description": "The API returns locations (IBXs and Cages) where the user's organization has a presence. The user may be able to view orders related to these locations, depending on their permissions.",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Order-History-Location-Response",
          "type": "array",
          "items": {
            "type": "object"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getRetrieveOrdersLocations"
      },
      "task": true
    },
    {
      "name": "postOrdersHistory",
      "summary": "Search Orders History",
      "description": "Based on filtering criteria, this method returns a list of orders from the last 12 months for IBX locations where the user has permissions.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"filters\": {\"ibxs\": \"array\", \"productTypes\": \"array\", \"orderStatus\": \"array\", \"dateRange\": \"Must be one of [PAST_7_DAYS, PAST_14_DAYS, PAST_30_DAYS, PAST_3_MONTHS, PAST_6_MONTHS, PAST_YEAR]\", \"fromDate\": \"string\", \"toDate\": \"string\"}, \"source\": \"array\", \"q\": \"string\", \"sorts\": [{\"name\": \"Must be one of [ORDERING_CONTACT, ACCOUNT_NUMBER, CREATED_ON]\", \"direction\": \"Must be one of [ASC, DESC]\"}], \"page\": {\"number\": 123, \"size\": 123}}",
          "required": false,
          "schema": {
            "title": "OrderHistoryAPIRequest",
            "type": "object",
            "properties": {
              "filters": {
                "title": "Retrieve Order filters",
                "type": "object",
                "properties": {
                  "ibxs": {
                    "type": "array",
                    "description": "ibxs filter",
                    "items": {
                      "type": "string",
                      "example": "SV1"
                    }
                  },
                  "productTypes": {
                    "type": "array",
                    "description": "Product(order type) filter",
                    "items": {
                      "title": "Product Types(Order Types) Enum",
                      "type": "string",
                      "example": "CROSS_CONNECT",
                      "enum": [
                        "SMART_HANDS",
                        "TROUBLE",
                        "SHIPMENT",
                        "WORK_VISIT",
                        "SECURITY_ACCESS",
                        "CONFERENCE_ROOM",
                        "TOUR_REQUESTS",
                        "CROSS_CONNECT",
                        "CLOUD_EXCHANGE_PORT",
                        "INTERNET_EXCHANGE_PORT",
                        "METRO_CONNECT",
                        "POWER",
                        "IBX_SMARTVIEW_SENSOR",
                        "ACCESSORY",
                        "CAGE",
                        "CABINET",
                        "IBX_SMART_VIEW"
                      ]
                    }
                  },
                  "orderStatus": {
                    "type": "array",
                    "description": "order status filter",
                    "items": {
                      "title": "Order Header Status Enum",
                      "description": "<b>ENTERED: </b> Order Created. <br><b>SUBMITTED: </b> When the order is assigned to the Equinix OPS team.<br/><b>IN_PROGRESS: </b> When the order fulfillment is in progress <br/><b>PENDING_QA: </b>The order couldn't be submitted. This order required manual intervention from Equinix end.<br/><b>CANCELLED: </b> The order is canceled.<br/><b>CLOSED: </b>Order is closed.",
                      "type": "string",
                      "example": "SUBMITTED",
                      "enum": [
                        "ENTERED",
                        "SUBMITTED",
                        "IN_PROGRESS",
                        "PENDING_QA",
                        "CANCELLED",
                        "CLOSED"
                      ]
                    }
                  },
                  "dateRange": {
                    "type": "string",
                    "description": "Date range filter",
                    "example": "PAST_30_DAYS",
                    "enum": [
                      "PAST_7_DAYS",
                      "PAST_14_DAYS",
                      "PAST_30_DAYS",
                      "PAST_3_MONTHS",
                      "PAST_6_MONTHS",
                      "PAST_YEAR"
                    ]
                  },
                  "fromDate": {
                    "type": "string",
                    "format": "date",
                    "description": "Date Format Should be mm/dd/yyyy.<br/> Not applicable when dateRange is provided.",
                    "example": "01/01/2019"
                  },
                  "toDate": {
                    "type": "string",
                    "format": "date",
                    "description": "Date Format Should be mm/dd/yyyy.<br/> Not applicable when dateRange is provided",
                    "example": "01/30/2019"
                  }
                },
                "example": {
                  "orderStatus": [
                    "PENDING_QA",
                    "IN_PROGRESS",
                    "PARTIAL_SUBMISSION"
                  ],
                  "productTypes": [
                    "SMART_HANDS"
                  ],
                  "ibxs": [
                    "SV1"
                  ],
                  "fromDate": "05/01/2018",
                  "toDate": "05/02/2018"
                }
              },
              "source": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "ORDER_NUMBER",
                    "PO_NUMBER",
                    "CUSTOMER_REFERENCE_NUMBER",
                    "CONTACT_LAST_NAME",
                    "SR_NUMBER",
                    "TROUBLE_TICKET_NUMBER",
                    "WORK_ACTIVITY_NUMBER"
                  ]
                },
                "description": "<b>ORDER_NUMBER:</b> Search by order number(1-123456789).<br><b>CUSTOMER_REFERENCE_NUMBER:</b> Search by customer reference number which was entered as part place order.<br><b>TROUBLE_TICKET_NUMBER:</b> Search by trouble ticket numnber(5-123456).<br><b>WORK_ACTIVITY_NUMBER:</b> Search by work order activity number(3-123456). "
              },
              "q": {
                "type": "string",
                "description": "Query value to be queried against source values(Or operation against all sources).<br/>Supports partial text search",
                "example": "1-123456789"
              },
              "sorts": {
                "type": "array",
                "items": {
                  "title": "Sort",
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "ORDERING_CONTACT sort is applicable on ordering contact last name.",
                      "enum": [
                        "ORDERING_CONTACT",
                        "ACCOUNT_NUMBER",
                        "CREATED_ON"
                      ]
                    },
                    "direction": {
                      "type": "string",
                      "enum": [
                        "ASC",
                        "DESC"
                      ]
                    }
                  }
                }
              },
              "page": {
                "title": "Page Request",
                "type": "object",
                "properties": {
                  "number": {
                    "type": "integer",
                    "description": "Page number indexed from 0.",
                    "default": 0,
                    "example": 0
                  },
                  "size": {
                    "type": "integer",
                    "description": "Page Size.",
                    "maximum": 200,
                    "default": 10,
                    "example": 25
                  }
                }
              }
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Order History Response",
          "type": "object",
          "properties": {
            "content": {
              "type": "array",
              "items": {
                "title": "Order Header",
                "type": "object",
                "properties": {
                  "orderNumber": {
                    "type": "string",
                    "description": "Order number",
                    "example": "1-12345678"
                  },
                  "type": {
                    "type": "array",
                    "description": "List Of Proudcts Ordered in the Order.",
                    "items": {
                      "type": "string",
                      "example": "Cross Connect, Smart Hands"
                    }
                  },
                  "orderStatus": {
                    "title": "Order Header Status Enum",
                    "description": "<b>ENTERED: </b> Order Created. <br><b>SUBMITTED: </b> When the order is assigned to the Equinix OPS team.<br/><b>IN_PROGRESS: </b> When the order fulfillment is in progress <br/><b>PENDING_QA: </b>The order couldn't be submitted. This order required manual intervention from Equinix end.<br/><b>CANCELLED: </b> The order is canceled.<br/><b>CLOSED: </b>Order is closed.",
                    "type": "string",
                    "example": "SUBMITTED",
                    "enum": [
                      "ENTERED",
                      "SUBMITTED",
                      "IN_PROGRESS",
                      "PENDING_QA",
                      "CANCELLED",
                      "CLOSED"
                    ]
                  },
                  "createdAt": {
                    "type": "string",
                    "description": "Order Created DateTime in ISO Date Format",
                    "example": "2019-07-02T22:01:50Z"
                  },
                  "account": {
                    "title": "Account",
                    "type": "object",
                    "properties": {
                      "number": {
                        "type": "string",
                        "description": "Account Number",
                        "example": 136008
                      },
                      "name": {
                        "type": "string",
                        "description": "Name of Account",
                        "example": "Service Corporation"
                      }
                    },
                    "required": [
                      "number",
                      "name"
                    ]
                  },
                  "orderingContact": {
                    "title": "Ordering Contact",
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Ordering Contact name",
                        "example": "John Doe"
                      },
                      "email": {
                        "type": "string",
                        "description": "Ordering Contact email",
                        "example": "johnDoe@test.com"
                      },
                      "phone": {
                        "type": "string",
                        "description": "Ordering Contact phone",
                        "example": "+1 408 123 1234"
                      }
                    }
                  },
                  "notificationContact": {
                    "title": "Notification Contact",
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Notification Contact name",
                        "example": "John Doe"
                      },
                      "email": {
                        "type": "string",
                        "description": "Notification Contact email",
                        "example": "johnDoe@test.com"
                      },
                      "phone": {
                        "type": "string",
                        "description": "Notification Contact phone",
                        "example": "+1 408 123 1234"
                      }
                    }
                  },
                  "ibx": {
                    "type": "array",
                    "description": "List of ibxs for the order lines.",
                    "items": {
                      "type": "string",
                      "example": "SV1"
                    }
                  },
                  "customerReferenceNumbers": {
                    "type": "array",
                    "description": "List of customer reference numbers for the order lines.",
                    "items": {
                      "type": "string",
                      "example": "cust-100"
                    }
                  },
                  "links": {
                    "type": "array",
                    "items": {
                      "title": "Link",
                      "type": "object",
                      "properties": {
                        "rel": {
                          "type": "string",
                          "enum": [
                            "self",
                            "prev",
                            "next",
                            "orderFullDetails"
                          ]
                        },
                        "href": {
                          "type": "string",
                          "example": "https://api.equinix.com/v1/retrieve-orders"
                        }
                      }
                    }
                  }
                },
                "required": [
                  "submittedDate"
                ]
              }
            },
            "links": {
              "type": "array",
              "items": {
                "title": "Link",
                "type": "object",
                "properties": {
                  "rel": {
                    "type": "string",
                    "enum": [
                      "self",
                      "prev",
                      "next",
                      "orderFullDetails"
                    ]
                  },
                  "href": {
                    "type": "string",
                    "example": "https://api.equinix.com/v1/retrieve-orders"
                  }
                }
              }
            },
            "page": {
              "title": "Orders Response Page Details",
              "type": "object",
              "properties": {
                "size": {
                  "type": "integer",
                  "description": "Page Size",
                  "example": "25"
                },
                "totalElements": {
                  "type": "number",
                  "description": "Total number of records",
                  "example": "160"
                },
                "totalPages": {
                  "type": "integer",
                  "description": "Total number of pages",
                  "example": "7"
                },
                "number": {
                  "type": "integer",
                  "description": "Current page number",
                  "example": "0"
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postOrdersHistory"
      },
      "task": true
    },
    {
      "name": "scheduleReport",
      "summary": "Schedule New Report",
      "description": "Use this API to schedule a report to be generated on a recurring or ad hoc basis.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"parameters\": [{\"name\": \"string\", \"value\": \"string\", \"type\": \"Must be one of [ARRAY, STRING, LONG, INT, BOOLEAN, DOUBLE, JSON, JSON_ARRAY]\", \"required\": \"boolean\"}], \"scheduleType\": \"Must be one of [ONE_TIME, DAILY, WEEKLY, MONTHLY, QUARTERLY, ANNUALLY]\", \"period\": \"Must be one of [1_DAY, 7_DAYS, 14_DAYS, 30_DAYS, 90_DAYS, 180_DAYS, 1_YEAR, CUSTOM, NONE]\", \"control\": \"Must be one of [ALLOW, DENY]\", \"categories\": \"array\"}",
          "required": false,
          "schema": {
            "title": "ReportRequest",
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Report Name",
                "minLength": 1
              },
              "parameters": {
                "type": "array",
                "description": "List of input parameters",
                "minItems": 0,
                "items": {
                  "title": "Parameter",
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Parameter name"
                    },
                    "value": {
                      "type": "string",
                      "description": "Parameter value",
                      "minLength": 1
                    },
                    "type": {
                      "type": "string",
                      "description": "Parameter type",
                      "enum": [
                        "ARRAY",
                        "STRING",
                        "LONG",
                        "INT",
                        "BOOLEAN",
                        "DOUBLE",
                        "JSON",
                        "JSON_ARRAY"
                      ]
                    },
                    "required": {
                      "type": "boolean",
                      "description": "Flag to indicate the parameter is required or optional"
                    }
                  },
                  "required": [
                    "name",
                    "value"
                  ],
                  "example": {
                    "name": "user_key",
                    "value": "143534,908373",
                    "type": "ARRAY",
                    "required": true
                  }
                }
              },
              "scheduleType": {
                "title": "ScheduleType",
                "type": "string",
                "description": "Scheduling strategy for the report to be generated.",
                "enum": [
                  "ONE_TIME",
                  "DAILY",
                  "WEEKLY",
                  "MONTHLY",
                  "QUARTERLY",
                  "ANNUALLY"
                ]
              },
              "period": {
                "title": "Period",
                "type": "string",
                "description": "Date range which the report should be generated",
                "enum": [
                  "1_DAY",
                  "7_DAYS",
                  "14_DAYS",
                  "30_DAYS",
                  "90_DAYS",
                  "180_DAYS",
                  "1_YEAR",
                  "CUSTOM",
                  "NONE"
                ]
              },
              "control": {
                "type": "string",
                "description": "Indicates whether user is entitled to use this report type.",
                "enum": [
                  "ALLOW",
                  "DENY"
                ]
              },
              "categories": {
                "type": "array",
                "uniqueItems": true,
                "description": "The list of categories this definition belongs to",
                "items": {
                  "type": "string",
                  "enum": [
                    "SECURITY",
                    "SITE_AND_ENVIRONMENT",
                    "ASSET",
                    "POWER",
                    "FINANCE"
                  ]
                }
              }
            },
            "required": [
              "name",
              "parameters",
              "scheduleType",
              "period"
            ],
            "example": {
              "name": "eu exercitation",
              "parameters": [
                {
                  "name": "id sunt",
                  "value": "tempor consequat minim",
                  "type": "INT"
                },
                {
                  "name": "eu consequat minim commodo",
                  "value": "Duis ex laboris",
                  "type": "LONG"
                },
                {
                  "name": "nostrud nulla in minim",
                  "value": "est laborum magna ea",
                  "type": "STRING"
                },
                {
                  "name": "ut ullamco pariatur ex",
                  "value": "laboris Duis commodo culpa",
                  "type": "LONG"
                }
              ],
              "scheduleType": "MONTHLY",
              "period": "30_DAYS"
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "ScheduledReport",
          "type": "object",
          "properties": {
            "scheduledId": {
              "type": "string",
              "description": "A unique UUID string denoting the id of the scheduled entry",
              "format": "uuid"
            },
            "reportName": {
              "type": "string",
              "description": "Name of the report",
              "minLength": 1
            },
            "scheduleType": {
              "title": "ScheduleType",
              "type": "string",
              "description": "Scheduling strategy for the report to be generated.",
              "enum": [
                "ONE_TIME",
                "DAILY",
                "WEEKLY",
                "MONTHLY",
                "QUARTERLY",
                "ANNUALLY"
              ]
            },
            "period": {
              "title": "Period",
              "type": "string",
              "description": "Date range which the report should be generated",
              "enum": [
                "1_DAY",
                "7_DAYS",
                "14_DAYS",
                "30_DAYS",
                "90_DAYS",
                "180_DAYS",
                "1_YEAR",
                "CUSTOM",
                "NONE"
              ]
            },
            "createdBy": {
              "type": "string",
              "description": "Person/Entity who created this entry first time"
            },
            "createdDate": {
              "type": "string",
              "description": "Time when this entry was first created",
              "format": "date-time"
            },
            "lastAttemptedDate": {
              "type": "string",
              "description": "Last attempted date to trigger the report generation",
              "format": "date-time"
            },
            "customerOrganizationId": {
              "type": "integer",
              "description": "Customer Organization Id",
              "minimum": 0
            },
            "forOrg": {
              "type": "integer",
              "description": "Customer Org Id where report is generated on behalf of",
              "minimum": 1
            },
            "forUser": {
              "type": "string",
              "description": "User key where report is generated on behalf of"
            },
            "lastModifiedBy": {
              "type": "string",
              "description": "Person/Entity who modified this entry last time"
            },
            "lastModifiedDate": {
              "type": "string",
              "description": "Last modified date of this entry",
              "format": "date-time"
            },
            "numberOfFailedAttempts": {
              "type": "integer",
              "description": "Number of times the generation of report were failed",
              "minimum": 0,
              "maximum": 3
            },
            "status": {
              "title": "ScheduleStatus",
              "type": "string",
              "enum": [
                "ACTIVE",
                "INACTIVE",
                "SUSPENDED"
              ],
              "description": "Scheduling Status"
            },
            "parameters": {
              "type": "array",
              "description": "Parameters for the reports to be generated",
              "minItems": 0,
              "items": {
                "title": "Parameter",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Parameter name"
                  },
                  "value": {
                    "type": "string",
                    "description": "Parameter value",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "description": "Parameter type",
                    "enum": [
                      "ARRAY",
                      "STRING",
                      "LONG",
                      "INT",
                      "BOOLEAN",
                      "DOUBLE",
                      "JSON",
                      "JSON_ARRAY"
                    ]
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Flag to indicate the parameter is required or optional"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "example": {
                  "name": "user_key",
                  "value": "143534,908373",
                  "type": "ARRAY",
                  "required": true
                }
              }
            },
            "reports": {
              "type": "array",
              "description": "Array of generated reports",
              "uniqueItems": false,
              "items": {
                "title": "Report",
                "type": "object",
                "properties": {
                  "reportId": {
                    "type": "string",
                    "description": "A unique UUID string denoting the id of the report entry",
                    "format": "uuid"
                  },
                  "scheduledId": {
                    "type": "string",
                    "description": "Scheduled Id for the report entry",
                    "format": "uuid"
                  },
                  "createdBy": {
                    "type": "string",
                    "description": "Person/Entity who created this entry first time"
                  },
                  "createdDate": {
                    "type": "string",
                    "description": "Time when this entry was first created",
                    "format": "date-time"
                  },
                  "lastAccessedBy": {
                    "type": "string",
                    "description": "Person/Entity who accessed this entry last time"
                  },
                  "lastAccessedDate": {
                    "type": "string",
                    "description": "Time when this entry was last accessed",
                    "format": "date-time"
                  },
                  "startTime": {
                    "type": "string",
                    "description": "Processing start time of the report",
                    "format": "date-time"
                  },
                  "endTime": {
                    "type": "string",
                    "description": "Processing end time of the report",
                    "format": "date-time"
                  },
                  "status": {
                    "title": "ReportStatus",
                    "type": "string",
                    "description": "Status of the report",
                    "enum": [
                      "IN_PROGRESS",
                      "DELAYED",
                      "SUCCESS",
                      "ERROR",
                      "INACTIVE"
                    ]
                  },
                  "errorMessage": {
                    "type": "string",
                    "description": "Contains an error message if something is failed."
                  },
                  "location": {
                    "type": "string",
                    "description": "Location of the report once it is generated"
                  },
                  "numberOfDownloads": {
                    "type": "integer",
                    "default": 0,
                    "description": "Number of times this report is downloaded by the customer",
                    "minimum": 0
                  },
                  "numberOfAttempts": {
                    "type": "integer",
                    "description": "Number of times attempted to generate the report",
                    "minimum": 0,
                    "maximum": 3
                  },
                  "parameters": {
                    "type": "array",
                    "description": "Parameters for the reports to be generated",
                    "minItems": 0,
                    "items": {
                      "title": "Parameter",
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Parameter name"
                        },
                        "value": {
                          "type": "string",
                          "description": "Parameter value",
                          "minLength": 1
                        },
                        "type": {
                          "type": "string",
                          "description": "Parameter type",
                          "enum": [
                            "ARRAY",
                            "STRING",
                            "LONG",
                            "INT",
                            "BOOLEAN",
                            "DOUBLE",
                            "JSON",
                            "JSON_ARRAY"
                          ]
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Flag to indicate the parameter is required or optional"
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "example": {
                        "name": "user_key",
                        "value": "143534,908373",
                        "type": "ARRAY",
                        "required": true
                      }
                    }
                  },
                  "publisherInfo": {
                    "type": "object",
                    "description": "Contains report publish data as a json"
                  }
                },
                "required": [
                  "reportId",
                  "scheduledId",
                  "createdBy",
                  "createdDate",
                  "startTime",
                  "status",
                  "numberOfAttempts",
                  "parameters"
                ],
                "example": {
                  "reportId": "91b68c7a-e3d4-40ed-a048-e6ecb7c0a6af",
                  "scheduledId": "5c66965a-f79b-46c5-a723-e13dae91e622",
                  "createdBy": "minim aliquip sit",
                  "createdDate": "3232-10-13T19:06:19.045Z",
                  "lastAccessedBy": "mollit irure aliquip",
                  "lastAccessedDate": "3454-08-17T05:56:04.691Z",
                  "startTime": "3841-08-04T05:51:18.262Z",
                  "endTime": "3907-11-27T08:16:24.458Z",
                  "status": "ERROR",
                  "errorMessage": "do Ex",
                  "location": "dolore et fugiat",
                  "numberOfDownloads": 18013697,
                  "numberOfAttempts": 0,
                  "parameters": [
                    {
                      "name": "ex laborum",
                      "value": "irure ex Lor",
                      "type": "ARRAY"
                    },
                    {
                      "name": "magna Excepteur",
                      "value": "sit",
                      "type": "INT"
                    },
                    {
                      "name": "veniam mollit ea esse",
                      "value": "non esse",
                      "type": "BOOLEAN"
                    },
                    {
                      "name": "in elit veniam do",
                      "value": "ipsum dolor",
                      "type": "ARRAY"
                    }
                  ],
                  "publisherInfo": {}
                }
              }
            }
          },
          "required": [
            "scheduledId",
            "reportName",
            "scheduleType",
            "createdBy",
            "createdDate",
            "lastAttemptedDate",
            "customerOrganizationId",
            "status",
            "parameters",
            "reports"
          ],
          "example": {
            "scheduledId": "806f281c-6295-465e-bd41-04559d4d4960",
            "reportName": "my_report",
            "scheduleType": "WEEKLY",
            "period": "30_DAYS",
            "createdBy": "john.doe",
            "createdDate": "2017-05-14T00:40:59.790Z",
            "lastAttemptedDate": "2018-07-02T21:59:15.045Z",
            "customerOrganizationId": 44010,
            "forOrg": 28120,
            "forUser": 12354,
            "lastModifiedBy": "john.doe",
            "lastModifiedDate": "2017-07-02T21:59:15.045Z",
            "numberOfFailedAttempts": 0,
            "status": "ACTIVE",
            "parameters": [
              {
                "name": "adipisicing",
                "value": "Duis",
                "type": "STRING"
              },
              {
                "name": "esse anim dolor et",
                "value": "velit Excepteur voluptate",
                "type": "ARRAY"
              },
              {
                "name": "exercitation pariatur cupidatat anim in",
                "value": "labore esse",
                "type": "ARRAY"
              },
              {
                "name": "exercitation est",
                "value": "magna quis",
                "type": "DOUBLE"
              },
              {
                "name": "dolor nulla nisi ut eu",
                "value": "Duis mollit Lorem",
                "type": "DOUBLE"
              }
            ],
            "reports": [
              {
                "reportId": "71df1306-94f9-4cbd-b6b0-735098bf7f87",
                "scheduledId": "772e5b73-3814-4604-8ae9-6f3eef114132",
                "createdBy": "ea sint fugi",
                "createdDate": "3738-09-09T05:31:51.735Z",
                "startTime": "3990-09-01T03:46:44.797Z",
                "status": "SUCCESS",
                "numberOfAttempts": 3,
                "parameters": [],
                "publisherInfo": {},
                "lastAccessedBy": "sunt eu aute"
              },
              {
                "reportId": "cff3620a-e3d6-4206-a504-1758bd400501",
                "scheduledId": "4ad6048f-3fc4-4fb9-8b66-22fba0bd62f1",
                "createdBy": "ullamco amet nostrud sint",
                "createdDate": "2918-11-28T03:33:08.736Z",
                "startTime": "4808-02-16T12:09:15.960Z",
                "status": "INACTIVE",
                "numberOfAttempts": 3,
                "parameters": [
                  {
                    "name": "cillum Duis ex cupidatat voluptate",
                    "value": "Ut",
                    "type": "INT"
                  }
                ],
                "location": "laboris nostrud",
                "errorMessage": "qui Excepteur",
                "endTime": "4909-04-15T03:51:50.570Z",
                "numberOfDownloads": 14336105,
                "publisherInfo": {}
              },
              {
                "reportId": "4dbd3bea-25f8-485c-b06e-e9c06883b0d7",
                "scheduledId": "e572e79e-0a56-4052-879f-427ecb40dc85",
                "createdBy": "cupidatat",
                "createdDate": "4434-04-25T17:09:55.402Z",
                "startTime": "4243-01-15T02:51:52.654Z",
                "status": "INACTIVE",
                "numberOfAttempts": 0,
                "parameters": [
                  {
                    "name": "pariatur aliqua ullamco dolor et",
                    "value": "nisi deserunt dolore",
                    "type": "STRING"
                  },
                  {
                    "name": "dolore amet ad",
                    "value": "proident tempor",
                    "type": "LONG"
                  }
                ],
                "lastAccessedBy": "dolore exercitat",
                "errorMessage": "co",
                "endTime": "5058-03-30T22:21:23.213Z"
              },
              {
                "reportId": "bc77cee9-0142-4954-afea-002d333b6440",
                "scheduledId": "98d33b3c-675e-4f1e-bfa7-ffdcd7b0aa18",
                "createdBy": "tempor",
                "createdDate": "2280-02-21T19:11:10.988Z",
                "startTime": "3750-11-06T20:13:33.607Z",
                "status": "ERROR",
                "numberOfAttempts": 1,
                "parameters": [
                  {
                    "name": "qui non minim ut",
                    "value": "ullamco Ut pariatur ipsum",
                    "type": "INT"
                  },
                  {
                    "name": "nulla laborum deserunt",
                    "value": "in dolore culpa consequat",
                    "type": "ARRAY"
                  }
                ],
                "location": "dolor",
                "lastAccessedDate": "4752-10-18T16:02:21.842Z",
                "publisherInfo": {},
                "lastAccessedBy": "sunt ipsu",
                "numberOfDownloads": 51428315
              }
            ]
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/scheduleReport"
      },
      "task": true
    },
    {
      "name": "getScheduledReports",
      "summary": "Get your Scheduled Reports",
      "description": "Use this method to get a list of reports that the authenticated user has scheduled to be generated on a recurring basis.",
      "input": [
        {
          "name": "offset",
          "type": "number",
          "info": "Use offset and limit to restrict the number of users in the output. Offset can be used to specify the start record: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Use offset and limit to restrict the number of users in the output. Limit can be used to restrict the number of reports in the response: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "sorts",
          "type": "array",
          "info": "Use sort to get the reports in the response sorted in the particular order. for example, use '-GENERATED_DATE to sort the reports by generated date in descending order. A...(description truncated): array",
          "required": false,
          "schema": {
            "title": "sorts",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "SearchScheduledReportResponse",
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "description": "List of records",
              "minItems": 0,
              "items": {
                "title": "ScheduledReport",
                "type": "object",
                "properties": {
                  "scheduledId": {
                    "type": "string",
                    "description": "A unique UUID string denoting the id of the scheduled entry",
                    "format": "uuid"
                  },
                  "reportName": {
                    "type": "string",
                    "description": "Name of the report",
                    "minLength": 1
                  },
                  "scheduleType": {
                    "title": "ScheduleType",
                    "type": "string",
                    "description": "Scheduling strategy for the report to be generated.",
                    "enum": [
                      "ONE_TIME",
                      "DAILY",
                      "WEEKLY",
                      "MONTHLY",
                      "QUARTERLY",
                      "ANNUALLY"
                    ]
                  },
                  "period": {
                    "title": "Period",
                    "type": "string",
                    "description": "Date range which the report should be generated",
                    "enum": [
                      "1_DAY",
                      "7_DAYS",
                      "14_DAYS",
                      "30_DAYS",
                      "90_DAYS",
                      "180_DAYS",
                      "1_YEAR",
                      "CUSTOM",
                      "NONE"
                    ]
                  },
                  "createdBy": {
                    "type": "string",
                    "description": "Person/Entity who created this entry first time"
                  },
                  "createdDate": {
                    "type": "string",
                    "description": "Time when this entry was first created",
                    "format": "date-time"
                  },
                  "lastAttemptedDate": {
                    "type": "string",
                    "description": "Last attempted date to trigger the report generation",
                    "format": "date-time"
                  },
                  "customerOrganizationId": {
                    "type": "integer",
                    "description": "Customer Organization Id",
                    "minimum": 0
                  },
                  "forOrg": {
                    "type": "integer",
                    "description": "Customer Org Id where report is generated on behalf of",
                    "minimum": 1
                  },
                  "forUser": {
                    "type": "string",
                    "description": "User key where report is generated on behalf of"
                  },
                  "lastModifiedBy": {
                    "type": "string",
                    "description": "Person/Entity who modified this entry last time"
                  },
                  "lastModifiedDate": {
                    "type": "string",
                    "description": "Last modified date of this entry",
                    "format": "date-time"
                  },
                  "numberOfFailedAttempts": {
                    "type": "integer",
                    "description": "Number of times the generation of report were failed",
                    "minimum": 0,
                    "maximum": 3
                  },
                  "status": {
                    "title": "ScheduleStatus",
                    "type": "string",
                    "enum": [
                      "ACTIVE",
                      "INACTIVE",
                      "SUSPENDED"
                    ],
                    "description": "Scheduling Status"
                  },
                  "parameters": {
                    "type": "array",
                    "description": "Parameters for the reports to be generated",
                    "minItems": 0,
                    "items": {
                      "title": "Parameter",
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Parameter name"
                        },
                        "value": {
                          "type": "string",
                          "description": "Parameter value",
                          "minLength": 1
                        },
                        "type": {
                          "type": "string",
                          "description": "Parameter type",
                          "enum": [
                            "ARRAY",
                            "STRING",
                            "LONG",
                            "INT",
                            "BOOLEAN",
                            "DOUBLE",
                            "JSON",
                            "JSON_ARRAY"
                          ]
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Flag to indicate the parameter is required or optional"
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "example": {
                        "name": "user_key",
                        "value": "143534,908373",
                        "type": "ARRAY",
                        "required": true
                      }
                    }
                  },
                  "reports": {
                    "type": "array",
                    "description": "Array of generated reports",
                    "uniqueItems": false,
                    "items": {
                      "title": "Report",
                      "type": "object",
                      "properties": {
                        "reportId": {
                          "type": "string",
                          "description": "A unique UUID string denoting the id of the report entry",
                          "format": "uuid"
                        },
                        "scheduledId": {
                          "type": "string",
                          "description": "Scheduled Id for the report entry",
                          "format": "uuid"
                        },
                        "createdBy": {
                          "type": "string",
                          "description": "Person/Entity who created this entry first time"
                        },
                        "createdDate": {
                          "type": "string",
                          "description": "Time when this entry was first created",
                          "format": "date-time"
                        },
                        "lastAccessedBy": {
                          "type": "string",
                          "description": "Person/Entity who accessed this entry last time"
                        },
                        "lastAccessedDate": {
                          "type": "string",
                          "description": "Time when this entry was last accessed",
                          "format": "date-time"
                        },
                        "startTime": {
                          "type": "string",
                          "description": "Processing start time of the report",
                          "format": "date-time"
                        },
                        "endTime": {
                          "type": "string",
                          "description": "Processing end time of the report",
                          "format": "date-time"
                        },
                        "status": {
                          "title": "ReportStatus",
                          "type": "string",
                          "description": "Status of the report",
                          "enum": [
                            "IN_PROGRESS",
                            "DELAYED",
                            "SUCCESS",
                            "ERROR",
                            "INACTIVE"
                          ]
                        },
                        "errorMessage": {
                          "type": "string",
                          "description": "Contains an error message if something is failed."
                        },
                        "location": {
                          "type": "string",
                          "description": "Location of the report once it is generated"
                        },
                        "numberOfDownloads": {
                          "type": "integer",
                          "default": 0,
                          "description": "Number of times this report is downloaded by the customer",
                          "minimum": 0
                        },
                        "numberOfAttempts": {
                          "type": "integer",
                          "description": "Number of times attempted to generate the report",
                          "minimum": 0,
                          "maximum": 3
                        },
                        "parameters": {
                          "type": "array",
                          "description": "Parameters for the reports to be generated",
                          "minItems": 0,
                          "items": {
                            "title": "Parameter",
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "Parameter name"
                              },
                              "value": {
                                "type": "string",
                                "description": "Parameter value",
                                "minLength": 1
                              },
                              "type": {
                                "type": "string",
                                "description": "Parameter type",
                                "enum": [
                                  "ARRAY",
                                  "STRING",
                                  "LONG",
                                  "INT",
                                  "BOOLEAN",
                                  "DOUBLE",
                                  "JSON",
                                  "JSON_ARRAY"
                                ]
                              },
                              "required": {
                                "type": "boolean",
                                "description": "Flag to indicate the parameter is required or optional"
                              }
                            },
                            "required": [
                              "name",
                              "value"
                            ],
                            "example": {
                              "name": "user_key",
                              "value": "143534,908373",
                              "type": "ARRAY",
                              "required": true
                            }
                          }
                        },
                        "publisherInfo": {
                          "type": "object",
                          "description": "Contains report publish data as a json"
                        }
                      },
                      "required": [
                        "reportId",
                        "scheduledId",
                        "createdBy",
                        "createdDate",
                        "startTime",
                        "status",
                        "numberOfAttempts",
                        "parameters"
                      ],
                      "example": {
                        "reportId": "91b68c7a-e3d4-40ed-a048-e6ecb7c0a6af",
                        "scheduledId": "5c66965a-f79b-46c5-a723-e13dae91e622",
                        "createdBy": "minim aliquip sit",
                        "createdDate": "3232-10-13T19:06:19.045Z",
                        "lastAccessedBy": "mollit irure aliquip",
                        "lastAccessedDate": "3454-08-17T05:56:04.691Z",
                        "startTime": "3841-08-04T05:51:18.262Z",
                        "endTime": "3907-11-27T08:16:24.458Z",
                        "status": "ERROR",
                        "errorMessage": "do Ex",
                        "location": "dolore et fugiat",
                        "numberOfDownloads": 18013697,
                        "numberOfAttempts": 0,
                        "parameters": [
                          {
                            "name": "ex laborum",
                            "value": "irure ex Lor",
                            "type": "ARRAY"
                          },
                          {
                            "name": "magna Excepteur",
                            "value": "sit",
                            "type": "INT"
                          },
                          {
                            "name": "veniam mollit ea esse",
                            "value": "non esse",
                            "type": "BOOLEAN"
                          },
                          {
                            "name": "in elit veniam do",
                            "value": "ipsum dolor",
                            "type": "ARRAY"
                          }
                        ],
                        "publisherInfo": {}
                      }
                    }
                  }
                },
                "required": [
                  "scheduledId",
                  "reportName",
                  "scheduleType",
                  "createdBy",
                  "createdDate",
                  "lastAttemptedDate",
                  "customerOrganizationId",
                  "status",
                  "parameters",
                  "reports"
                ],
                "example": {
                  "scheduledId": "806f281c-6295-465e-bd41-04559d4d4960",
                  "reportName": "my_report",
                  "scheduleType": "WEEKLY",
                  "period": "30_DAYS",
                  "createdBy": "john.doe",
                  "createdDate": "2017-05-14T00:40:59.790Z",
                  "lastAttemptedDate": "2018-07-02T21:59:15.045Z",
                  "customerOrganizationId": 44010,
                  "forOrg": 28120,
                  "forUser": 12354,
                  "lastModifiedBy": "john.doe",
                  "lastModifiedDate": "2017-07-02T21:59:15.045Z",
                  "numberOfFailedAttempts": 0,
                  "status": "ACTIVE",
                  "parameters": [
                    {
                      "name": "adipisicing",
                      "value": "Duis",
                      "type": "STRING"
                    },
                    {
                      "name": "esse anim dolor et",
                      "value": "velit Excepteur voluptate",
                      "type": "ARRAY"
                    },
                    {
                      "name": "exercitation pariatur cupidatat anim in",
                      "value": "labore esse",
                      "type": "ARRAY"
                    },
                    {
                      "name": "exercitation est",
                      "value": "magna quis",
                      "type": "DOUBLE"
                    },
                    {
                      "name": "dolor nulla nisi ut eu",
                      "value": "Duis mollit Lorem",
                      "type": "DOUBLE"
                    }
                  ],
                  "reports": [
                    {
                      "reportId": "71df1306-94f9-4cbd-b6b0-735098bf7f87",
                      "scheduledId": "772e5b73-3814-4604-8ae9-6f3eef114132",
                      "createdBy": "ea sint fugi",
                      "createdDate": "3738-09-09T05:31:51.735Z",
                      "startTime": "3990-09-01T03:46:44.797Z",
                      "status": "SUCCESS",
                      "numberOfAttempts": 3,
                      "parameters": [],
                      "publisherInfo": {},
                      "lastAccessedBy": "sunt eu aute"
                    },
                    {
                      "reportId": "cff3620a-e3d6-4206-a504-1758bd400501",
                      "scheduledId": "4ad6048f-3fc4-4fb9-8b66-22fba0bd62f1",
                      "createdBy": "ullamco amet nostrud sint",
                      "createdDate": "2918-11-28T03:33:08.736Z",
                      "startTime": "4808-02-16T12:09:15.960Z",
                      "status": "INACTIVE",
                      "numberOfAttempts": 3,
                      "parameters": [
                        {
                          "name": "cillum Duis ex cupidatat voluptate",
                          "value": "Ut",
                          "type": "INT"
                        }
                      ],
                      "location": "laboris nostrud",
                      "errorMessage": "qui Excepteur",
                      "endTime": "4909-04-15T03:51:50.570Z",
                      "numberOfDownloads": 14336105,
                      "publisherInfo": {}
                    },
                    {
                      "reportId": "4dbd3bea-25f8-485c-b06e-e9c06883b0d7",
                      "scheduledId": "e572e79e-0a56-4052-879f-427ecb40dc85",
                      "createdBy": "cupidatat",
                      "createdDate": "4434-04-25T17:09:55.402Z",
                      "startTime": "4243-01-15T02:51:52.654Z",
                      "status": "INACTIVE",
                      "numberOfAttempts": 0,
                      "parameters": [
                        {
                          "name": "pariatur aliqua ullamco dolor et",
                          "value": "nisi deserunt dolore",
                          "type": "STRING"
                        },
                        {
                          "name": "dolore amet ad",
                          "value": "proident tempor",
                          "type": "LONG"
                        }
                      ],
                      "lastAccessedBy": "dolore exercitat",
                      "errorMessage": "co",
                      "endTime": "5058-03-30T22:21:23.213Z"
                    },
                    {
                      "reportId": "bc77cee9-0142-4954-afea-002d333b6440",
                      "scheduledId": "98d33b3c-675e-4f1e-bfa7-ffdcd7b0aa18",
                      "createdBy": "tempor",
                      "createdDate": "2280-02-21T19:11:10.988Z",
                      "startTime": "3750-11-06T20:13:33.607Z",
                      "status": "ERROR",
                      "numberOfAttempts": 1,
                      "parameters": [
                        {
                          "name": "qui non minim ut",
                          "value": "ullamco Ut pariatur ipsum",
                          "type": "INT"
                        },
                        {
                          "name": "nulla laborum deserunt",
                          "value": "in dolore culpa consequat",
                          "type": "ARRAY"
                        }
                      ],
                      "location": "dolor",
                      "lastAccessedDate": "4752-10-18T16:02:21.842Z",
                      "publisherInfo": {},
                      "lastAccessedBy": "sunt ipsu",
                      "numberOfDownloads": 51428315
                    }
                  ]
                }
              }
            },
            "page": {
              "title": "Page",
              "type": "object",
              "properties": {
                "total": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Total number of records",
                  "default": 0
                },
                "limit": {
                  "type": "integer",
                  "minimum": 0,
                  "default": 0,
                  "description": "Number of records per page"
                },
                "offset": {
                  "type": "integer",
                  "minimum": 0,
                  "default": 0,
                  "description": "The page number"
                },
                "sorts": {
                  "type": "array",
                  "description": "Sort fields based on polarity",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "total",
                "limit",
                "offset"
              ],
              "example": {
                "total": 54690858,
                "limit": 21446016,
                "offset": 60463582,
                "sorts": [
                  "cupidatat",
                  "dolor occaecat"
                ]
              }
            },
            "_links": {
              "title": "Links",
              "type": "object",
              "properties": {
                "prev": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/reports?limit=10"
                  }
                },
                "self": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/reports?limit=10"
                  }
                },
                "next": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/reports?limit=10"
                  }
                }
              },
              "required": [
                "self"
              ],
              "example": {
                "prev": {
                  "href": "/reports?limit=10&offset=50"
                },
                "self": {
                  "href": "/reports?limit=10&offset=40"
                },
                "next": {
                  "href": "/reports?limit=10&offset=30"
                }
              }
            }
          },
          "required": [
            "data",
            "_links"
          ],
          "example": {
            "data": [
              {
                "scheduledId": "fb85e943-39da-4d62-afcf-46ed1077ce60",
                "reportName": "voluptate",
                "scheduleType": "DAILY",
                "createdBy": "cupidatat dolore adipisicing quis",
                "createdDate": "3269-06-06T22:03:28.837Z",
                "lastAttemptedDate": "3699-07-10T06:45:56.312Z",
                "customerOrganizationId": 48422050,
                "status": "INACTIVE",
                "parameters": [],
                "reports": [],
                "period": "1_DAY",
                "forOrg": 43909627,
                "forUser": 12354,
                "lastModifiedBy": "john.doe",
                "lastModifiedDate": "2017-07-02T21:59:15.045Z",
                "numberOfFailedAttempts": 1
              },
              {
                "scheduledId": "37f5fa8f-5fe8-40b3-91db-627bc053432c",
                "reportName": "eiusmod ullamco ipsum pariatur laborum",
                "scheduleType": "QUARTERLY",
                "createdBy": "occaecat dolor consectetur",
                "createdDate": "3109-05-27T03:32:30.773Z",
                "lastAttemptedDate": "3115-06-07T03:13:50.038Z",
                "customerOrganizationId": 77997941,
                "status": "INACTIVE",
                "parameters": [
                  {
                    "name": "ex cu",
                    "value": "mollit dolor laboris sint",
                    "type": "ARRAY"
                  },
                  {
                    "name": "sed",
                    "value": "pariatur anim dolor cupidatat consectetur",
                    "type": "INT"
                  },
                  {
                    "name": "ipsum",
                    "value": "minim Excepteur tempor ulla",
                    "type": "INT"
                  },
                  {
                    "name": "Ut laborum",
                    "value": "esse commodo adipisicing sed",
                    "type": "INT"
                  },
                  {
                    "name": "anim Duis elit nisi irure",
                    "value": "cillum",
                    "type": "ARRAY"
                  }
                ],
                "reports": [],
                "period": "7_DAYS"
              },
              {
                "scheduledId": "ca32d0c1-4eee-4dd6-8d29-1401d91ce2af",
                "reportName": "fugiat magna cupidatat",
                "scheduleType": "DAILY",
                "createdBy": "esse tempor sunt mollit aute",
                "createdDate": "4740-12-25T16:47:30.142Z",
                "lastAttemptedDate": "2223-10-26T12:30:20.003Z",
                "customerOrganizationId": 25319222,
                "status": "ACTIVE",
                "parameters": [
                  {
                    "name": "eiusmod exercitation in",
                    "value": "fugiat e",
                    "type": "BOOLEAN",
                    "required": true
                  },
                  {
                    "name": "id irure L",
                    "value": "sed",
                    "type": "ARRAY"
                  },
                  {
                    "name": "eiusmod non proident",
                    "value": "enim",
                    "type": "LONG"
                  },
                  {
                    "name": "exercitation sint sunt",
                    "value": "veniam",
                    "type": "STRING"
                  }
                ],
                "reports": [],
                "forOrg": 37814662,
                "forUser": 12354,
                "lastModifiedBy": "john.doe",
                "lastModifiedDate": "2017-07-02T21:59:15.045Z",
                "numberOfFailedAttempts": 0
              },
              {
                "scheduledId": "384ebadf-6cac-4258-9432-254d97a43edc",
                "reportName": "culpa qui enim quis ipsum",
                "scheduleType": "DAILY",
                "createdBy": "sint",
                "createdDate": "2054-06-06T17:58:19.383Z",
                "lastAttemptedDate": "2777-08-05T04:43:04.000Z",
                "customerOrganizationId": 3386629,
                "status": "ACTIVE",
                "parameters": [
                  {
                    "name": "sint",
                    "value": "amet",
                    "type": "ARRAY"
                  },
                  {
                    "name": "incididunt aute tempor",
                    "value": "anim ullamco",
                    "type": "ARRAY",
                    "required": true
                  }
                ],
                "reports": []
              }
            ],
            "page": {
              "total": 4,
              "limit": 5,
              "offset": 0,
              "sorts": [
                "sint sit dolor",
                "ut est laborum",
                "magna voluptate",
                "velit nulla sed in voluptate"
              ]
            },
            "_links": {
              "self": {
                "href": "esse aute"
              },
              "next": {
                "href": "Duis dolor"
              },
              "prev": {
                "href": "labore velit"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getScheduledReports"
      },
      "task": true
    },
    {
      "name": "deleteScheduledReports",
      "summary": "Delete your scheduled reports",
      "description": "Use this API to delete specific recurring reports of an authenticated user by the recurring reports' scheduled IDs.",
      "input": [
        {
          "name": "scheduledIds",
          "type": "array",
          "info": "Comma separated scheduled ids to be deleted.: array",
          "required": true,
          "schema": {
            "title": "scheduledIds",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Status",
          "type": "object",
          "properties": {
            "status": {
              "type": "boolean",
              "description": "staus of the operation",
              "default": true
            }
          },
          "required": [
            "status"
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteScheduledReports"
      },
      "task": true
    },
    {
      "name": "downloadReports",
      "summary": "Download list of generated reports",
      "description": "Use this method to download a list of generated reports triggered by the authenticated user.",
      "input": [
        {
          "name": "reportIds",
          "type": "array",
          "info": "Comma separated report ids to be deleted.: array",
          "required": true,
          "schema": {
            "title": "reportIds",
            "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": "/downloadReports"
      },
      "task": true
    },
    {
      "name": "getScheduledReport",
      "summary": "Get details of scheduled report",
      "description": "Use this API to get the report details of a specific recurring scheduled report requested by the authenticated user.",
      "input": [
        {
          "name": "scheduledId",
          "type": "string",
          "info": "Scheduled Id for the report entry: string",
          "required": true,
          "schema": {
            "title": "scheduledId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "ScheduledReport",
          "type": "object",
          "properties": {
            "scheduledId": {
              "type": "string",
              "description": "A unique UUID string denoting the id of the scheduled entry",
              "format": "uuid"
            },
            "reportName": {
              "type": "string",
              "description": "Name of the report",
              "minLength": 1
            },
            "scheduleType": {
              "title": "ScheduleType",
              "type": "string",
              "description": "Scheduling strategy for the report to be generated.",
              "enum": [
                "ONE_TIME",
                "DAILY",
                "WEEKLY",
                "MONTHLY",
                "QUARTERLY",
                "ANNUALLY"
              ]
            },
            "period": {
              "title": "Period",
              "type": "string",
              "description": "Date range which the report should be generated",
              "enum": [
                "1_DAY",
                "7_DAYS",
                "14_DAYS",
                "30_DAYS",
                "90_DAYS",
                "180_DAYS",
                "1_YEAR",
                "CUSTOM",
                "NONE"
              ]
            },
            "createdBy": {
              "type": "string",
              "description": "Person/Entity who created this entry first time"
            },
            "createdDate": {
              "type": "string",
              "description": "Time when this entry was first created",
              "format": "date-time"
            },
            "lastAttemptedDate": {
              "type": "string",
              "description": "Last attempted date to trigger the report generation",
              "format": "date-time"
            },
            "customerOrganizationId": {
              "type": "integer",
              "description": "Customer Organization Id",
              "minimum": 0
            },
            "forOrg": {
              "type": "integer",
              "description": "Customer Org Id where report is generated on behalf of",
              "minimum": 1
            },
            "forUser": {
              "type": "string",
              "description": "User key where report is generated on behalf of"
            },
            "lastModifiedBy": {
              "type": "string",
              "description": "Person/Entity who modified this entry last time"
            },
            "lastModifiedDate": {
              "type": "string",
              "description": "Last modified date of this entry",
              "format": "date-time"
            },
            "numberOfFailedAttempts": {
              "type": "integer",
              "description": "Number of times the generation of report were failed",
              "minimum": 0,
              "maximum": 3
            },
            "status": {
              "title": "ScheduleStatus",
              "type": "string",
              "enum": [
                "ACTIVE",
                "INACTIVE",
                "SUSPENDED"
              ],
              "description": "Scheduling Status"
            },
            "parameters": {
              "type": "array",
              "description": "Parameters for the reports to be generated",
              "minItems": 0,
              "items": {
                "title": "Parameter",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Parameter name"
                  },
                  "value": {
                    "type": "string",
                    "description": "Parameter value",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "description": "Parameter type",
                    "enum": [
                      "ARRAY",
                      "STRING",
                      "LONG",
                      "INT",
                      "BOOLEAN",
                      "DOUBLE",
                      "JSON",
                      "JSON_ARRAY"
                    ]
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Flag to indicate the parameter is required or optional"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "example": {
                  "name": "user_key",
                  "value": "143534,908373",
                  "type": "ARRAY",
                  "required": true
                }
              }
            },
            "reports": {
              "type": "array",
              "description": "Array of generated reports",
              "uniqueItems": false,
              "items": {
                "title": "Report",
                "type": "object",
                "properties": {
                  "reportId": {
                    "type": "string",
                    "description": "A unique UUID string denoting the id of the report entry",
                    "format": "uuid"
                  },
                  "scheduledId": {
                    "type": "string",
                    "description": "Scheduled Id for the report entry",
                    "format": "uuid"
                  },
                  "createdBy": {
                    "type": "string",
                    "description": "Person/Entity who created this entry first time"
                  },
                  "createdDate": {
                    "type": "string",
                    "description": "Time when this entry was first created",
                    "format": "date-time"
                  },
                  "lastAccessedBy": {
                    "type": "string",
                    "description": "Person/Entity who accessed this entry last time"
                  },
                  "lastAccessedDate": {
                    "type": "string",
                    "description": "Time when this entry was last accessed",
                    "format": "date-time"
                  },
                  "startTime": {
                    "type": "string",
                    "description": "Processing start time of the report",
                    "format": "date-time"
                  },
                  "endTime": {
                    "type": "string",
                    "description": "Processing end time of the report",
                    "format": "date-time"
                  },
                  "status": {
                    "title": "ReportStatus",
                    "type": "string",
                    "description": "Status of the report",
                    "enum": [
                      "IN_PROGRESS",
                      "DELAYED",
                      "SUCCESS",
                      "ERROR",
                      "INACTIVE"
                    ]
                  },
                  "errorMessage": {
                    "type": "string",
                    "description": "Contains an error message if something is failed."
                  },
                  "location": {
                    "type": "string",
                    "description": "Location of the report once it is generated"
                  },
                  "numberOfDownloads": {
                    "type": "integer",
                    "default": 0,
                    "description": "Number of times this report is downloaded by the customer",
                    "minimum": 0
                  },
                  "numberOfAttempts": {
                    "type": "integer",
                    "description": "Number of times attempted to generate the report",
                    "minimum": 0,
                    "maximum": 3
                  },
                  "parameters": {
                    "type": "array",
                    "description": "Parameters for the reports to be generated",
                    "minItems": 0,
                    "items": {
                      "title": "Parameter",
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Parameter name"
                        },
                        "value": {
                          "type": "string",
                          "description": "Parameter value",
                          "minLength": 1
                        },
                        "type": {
                          "type": "string",
                          "description": "Parameter type",
                          "enum": [
                            "ARRAY",
                            "STRING",
                            "LONG",
                            "INT",
                            "BOOLEAN",
                            "DOUBLE",
                            "JSON",
                            "JSON_ARRAY"
                          ]
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Flag to indicate the parameter is required or optional"
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "example": {
                        "name": "user_key",
                        "value": "143534,908373",
                        "type": "ARRAY",
                        "required": true
                      }
                    }
                  },
                  "publisherInfo": {
                    "type": "object",
                    "description": "Contains report publish data as a json"
                  }
                },
                "required": [
                  "reportId",
                  "scheduledId",
                  "createdBy",
                  "createdDate",
                  "startTime",
                  "status",
                  "numberOfAttempts",
                  "parameters"
                ],
                "example": {
                  "reportId": "91b68c7a-e3d4-40ed-a048-e6ecb7c0a6af",
                  "scheduledId": "5c66965a-f79b-46c5-a723-e13dae91e622",
                  "createdBy": "minim aliquip sit",
                  "createdDate": "3232-10-13T19:06:19.045Z",
                  "lastAccessedBy": "mollit irure aliquip",
                  "lastAccessedDate": "3454-08-17T05:56:04.691Z",
                  "startTime": "3841-08-04T05:51:18.262Z",
                  "endTime": "3907-11-27T08:16:24.458Z",
                  "status": "ERROR",
                  "errorMessage": "do Ex",
                  "location": "dolore et fugiat",
                  "numberOfDownloads": 18013697,
                  "numberOfAttempts": 0,
                  "parameters": [
                    {
                      "name": "ex laborum",
                      "value": "irure ex Lor",
                      "type": "ARRAY"
                    },
                    {
                      "name": "magna Excepteur",
                      "value": "sit",
                      "type": "INT"
                    },
                    {
                      "name": "veniam mollit ea esse",
                      "value": "non esse",
                      "type": "BOOLEAN"
                    },
                    {
                      "name": "in elit veniam do",
                      "value": "ipsum dolor",
                      "type": "ARRAY"
                    }
                  ],
                  "publisherInfo": {}
                }
              }
            }
          },
          "required": [
            "scheduledId",
            "reportName",
            "scheduleType",
            "createdBy",
            "createdDate",
            "lastAttemptedDate",
            "customerOrganizationId",
            "status",
            "parameters",
            "reports"
          ],
          "example": {
            "scheduledId": "806f281c-6295-465e-bd41-04559d4d4960",
            "reportName": "my_report",
            "scheduleType": "WEEKLY",
            "period": "30_DAYS",
            "createdBy": "john.doe",
            "createdDate": "2017-05-14T00:40:59.790Z",
            "lastAttemptedDate": "2018-07-02T21:59:15.045Z",
            "customerOrganizationId": 44010,
            "forOrg": 28120,
            "forUser": 12354,
            "lastModifiedBy": "john.doe",
            "lastModifiedDate": "2017-07-02T21:59:15.045Z",
            "numberOfFailedAttempts": 0,
            "status": "ACTIVE",
            "parameters": [
              {
                "name": "adipisicing",
                "value": "Duis",
                "type": "STRING"
              },
              {
                "name": "esse anim dolor et",
                "value": "velit Excepteur voluptate",
                "type": "ARRAY"
              },
              {
                "name": "exercitation pariatur cupidatat anim in",
                "value": "labore esse",
                "type": "ARRAY"
              },
              {
                "name": "exercitation est",
                "value": "magna quis",
                "type": "DOUBLE"
              },
              {
                "name": "dolor nulla nisi ut eu",
                "value": "Duis mollit Lorem",
                "type": "DOUBLE"
              }
            ],
            "reports": [
              {
                "reportId": "71df1306-94f9-4cbd-b6b0-735098bf7f87",
                "scheduledId": "772e5b73-3814-4604-8ae9-6f3eef114132",
                "createdBy": "ea sint fugi",
                "createdDate": "3738-09-09T05:31:51.735Z",
                "startTime": "3990-09-01T03:46:44.797Z",
                "status": "SUCCESS",
                "numberOfAttempts": 3,
                "parameters": [],
                "publisherInfo": {},
                "lastAccessedBy": "sunt eu aute"
              },
              {
                "reportId": "cff3620a-e3d6-4206-a504-1758bd400501",
                "scheduledId": "4ad6048f-3fc4-4fb9-8b66-22fba0bd62f1",
                "createdBy": "ullamco amet nostrud sint",
                "createdDate": "2918-11-28T03:33:08.736Z",
                "startTime": "4808-02-16T12:09:15.960Z",
                "status": "INACTIVE",
                "numberOfAttempts": 3,
                "parameters": [
                  {
                    "name": "cillum Duis ex cupidatat voluptate",
                    "value": "Ut",
                    "type": "INT"
                  }
                ],
                "location": "laboris nostrud",
                "errorMessage": "qui Excepteur",
                "endTime": "4909-04-15T03:51:50.570Z",
                "numberOfDownloads": 14336105,
                "publisherInfo": {}
              },
              {
                "reportId": "4dbd3bea-25f8-485c-b06e-e9c06883b0d7",
                "scheduledId": "e572e79e-0a56-4052-879f-427ecb40dc85",
                "createdBy": "cupidatat",
                "createdDate": "4434-04-25T17:09:55.402Z",
                "startTime": "4243-01-15T02:51:52.654Z",
                "status": "INACTIVE",
                "numberOfAttempts": 0,
                "parameters": [
                  {
                    "name": "pariatur aliqua ullamco dolor et",
                    "value": "nisi deserunt dolore",
                    "type": "STRING"
                  },
                  {
                    "name": "dolore amet ad",
                    "value": "proident tempor",
                    "type": "LONG"
                  }
                ],
                "lastAccessedBy": "dolore exercitat",
                "errorMessage": "co",
                "endTime": "5058-03-30T22:21:23.213Z"
              },
              {
                "reportId": "bc77cee9-0142-4954-afea-002d333b6440",
                "scheduledId": "98d33b3c-675e-4f1e-bfa7-ffdcd7b0aa18",
                "createdBy": "tempor",
                "createdDate": "2280-02-21T19:11:10.988Z",
                "startTime": "3750-11-06T20:13:33.607Z",
                "status": "ERROR",
                "numberOfAttempts": 1,
                "parameters": [
                  {
                    "name": "qui non minim ut",
                    "value": "ullamco Ut pariatur ipsum",
                    "type": "INT"
                  },
                  {
                    "name": "nulla laborum deserunt",
                    "value": "in dolore culpa consequat",
                    "type": "ARRAY"
                  }
                ],
                "location": "dolor",
                "lastAccessedDate": "4752-10-18T16:02:21.842Z",
                "publisherInfo": {},
                "lastAccessedBy": "sunt ipsu",
                "numberOfDownloads": 51428315
              }
            ]
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getScheduledReport"
      },
      "task": true
    },
    {
      "name": "updateScheduledReport",
      "summary": "Modify scheduled report parameters",
      "description": "Use this method to modify the report parameters and values of an existing scheduled report by the authenticated user.",
      "input": [
        {
          "name": "scheduledId",
          "type": "string",
          "info": "Scheduled Id for the report entry: string",
          "required": true,
          "schema": {
            "title": "scheduledId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"parameters\": [{\"name\": \"string\", \"value\": \"string\", \"type\": \"Must be one of [ARRAY, STRING, LONG, INT, BOOLEAN, DOUBLE, JSON, JSON_ARRAY]\", \"required\": \"boolean\"}], \"scheduleType\": \"Must be one of [ONE_TIME, DAILY, WEEKLY, MONTHLY, QUARTERLY, ANNUALLY]\", \"period\": \"Must be one of [1_DAY, 7_DAYS, 14_DAYS, 30_DAYS, 90_DAYS, 180_DAYS, 1_YEAR, CUSTOM, NONE]\", \"control\": \"Must be one of [ALLOW, DENY]\", \"categories\": \"array\"}",
          "required": false,
          "schema": {
            "title": "ReportRequest",
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Report Name",
                "minLength": 1
              },
              "parameters": {
                "type": "array",
                "description": "List of input parameters",
                "minItems": 0,
                "items": {
                  "title": "Parameter",
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Parameter name"
                    },
                    "value": {
                      "type": "string",
                      "description": "Parameter value",
                      "minLength": 1
                    },
                    "type": {
                      "type": "string",
                      "description": "Parameter type",
                      "enum": [
                        "ARRAY",
                        "STRING",
                        "LONG",
                        "INT",
                        "BOOLEAN",
                        "DOUBLE",
                        "JSON",
                        "JSON_ARRAY"
                      ]
                    },
                    "required": {
                      "type": "boolean",
                      "description": "Flag to indicate the parameter is required or optional"
                    }
                  },
                  "required": [
                    "name",
                    "value"
                  ],
                  "example": {
                    "name": "user_key",
                    "value": "143534,908373",
                    "type": "ARRAY",
                    "required": true
                  }
                }
              },
              "scheduleType": {
                "title": "ScheduleType",
                "type": "string",
                "description": "Scheduling strategy for the report to be generated.",
                "enum": [
                  "ONE_TIME",
                  "DAILY",
                  "WEEKLY",
                  "MONTHLY",
                  "QUARTERLY",
                  "ANNUALLY"
                ]
              },
              "period": {
                "title": "Period",
                "type": "string",
                "description": "Date range which the report should be generated",
                "enum": [
                  "1_DAY",
                  "7_DAYS",
                  "14_DAYS",
                  "30_DAYS",
                  "90_DAYS",
                  "180_DAYS",
                  "1_YEAR",
                  "CUSTOM",
                  "NONE"
                ]
              },
              "control": {
                "type": "string",
                "description": "Indicates whether user is entitled to use this report type.",
                "enum": [
                  "ALLOW",
                  "DENY"
                ]
              },
              "categories": {
                "type": "array",
                "uniqueItems": true,
                "description": "The list of categories this definition belongs to",
                "items": {
                  "type": "string",
                  "enum": [
                    "SECURITY",
                    "SITE_AND_ENVIRONMENT",
                    "ASSET",
                    "POWER",
                    "FINANCE"
                  ]
                }
              }
            },
            "required": [
              "name",
              "parameters",
              "scheduleType",
              "period"
            ],
            "example": {
              "name": "eu exercitation",
              "parameters": [
                {
                  "name": "id sunt",
                  "value": "tempor consequat minim",
                  "type": "INT"
                },
                {
                  "name": "eu consequat minim commodo",
                  "value": "Duis ex laboris",
                  "type": "LONG"
                },
                {
                  "name": "nostrud nulla in minim",
                  "value": "est laborum magna ea",
                  "type": "STRING"
                },
                {
                  "name": "ut ullamco pariatur ex",
                  "value": "laboris Duis commodo culpa",
                  "type": "LONG"
                }
              ],
              "scheduleType": "MONTHLY",
              "period": "30_DAYS"
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "ScheduledReport",
          "type": "object",
          "properties": {
            "scheduledId": {
              "type": "string",
              "description": "A unique UUID string denoting the id of the scheduled entry",
              "format": "uuid"
            },
            "reportName": {
              "type": "string",
              "description": "Name of the report",
              "minLength": 1
            },
            "scheduleType": {
              "title": "ScheduleType",
              "type": "string",
              "description": "Scheduling strategy for the report to be generated.",
              "enum": [
                "ONE_TIME",
                "DAILY",
                "WEEKLY",
                "MONTHLY",
                "QUARTERLY",
                "ANNUALLY"
              ]
            },
            "period": {
              "title": "Period",
              "type": "string",
              "description": "Date range which the report should be generated",
              "enum": [
                "1_DAY",
                "7_DAYS",
                "14_DAYS",
                "30_DAYS",
                "90_DAYS",
                "180_DAYS",
                "1_YEAR",
                "CUSTOM",
                "NONE"
              ]
            },
            "createdBy": {
              "type": "string",
              "description": "Person/Entity who created this entry first time"
            },
            "createdDate": {
              "type": "string",
              "description": "Time when this entry was first created",
              "format": "date-time"
            },
            "lastAttemptedDate": {
              "type": "string",
              "description": "Last attempted date to trigger the report generation",
              "format": "date-time"
            },
            "customerOrganizationId": {
              "type": "integer",
              "description": "Customer Organization Id",
              "minimum": 0
            },
            "forOrg": {
              "type": "integer",
              "description": "Customer Org Id where report is generated on behalf of",
              "minimum": 1
            },
            "forUser": {
              "type": "string",
              "description": "User key where report is generated on behalf of"
            },
            "lastModifiedBy": {
              "type": "string",
              "description": "Person/Entity who modified this entry last time"
            },
            "lastModifiedDate": {
              "type": "string",
              "description": "Last modified date of this entry",
              "format": "date-time"
            },
            "numberOfFailedAttempts": {
              "type": "integer",
              "description": "Number of times the generation of report were failed",
              "minimum": 0,
              "maximum": 3
            },
            "status": {
              "title": "ScheduleStatus",
              "type": "string",
              "enum": [
                "ACTIVE",
                "INACTIVE",
                "SUSPENDED"
              ],
              "description": "Scheduling Status"
            },
            "parameters": {
              "type": "array",
              "description": "Parameters for the reports to be generated",
              "minItems": 0,
              "items": {
                "title": "Parameter",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Parameter name"
                  },
                  "value": {
                    "type": "string",
                    "description": "Parameter value",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "description": "Parameter type",
                    "enum": [
                      "ARRAY",
                      "STRING",
                      "LONG",
                      "INT",
                      "BOOLEAN",
                      "DOUBLE",
                      "JSON",
                      "JSON_ARRAY"
                    ]
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Flag to indicate the parameter is required or optional"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "example": {
                  "name": "user_key",
                  "value": "143534,908373",
                  "type": "ARRAY",
                  "required": true
                }
              }
            },
            "reports": {
              "type": "array",
              "description": "Array of generated reports",
              "uniqueItems": false,
              "items": {
                "title": "Report",
                "type": "object",
                "properties": {
                  "reportId": {
                    "type": "string",
                    "description": "A unique UUID string denoting the id of the report entry",
                    "format": "uuid"
                  },
                  "scheduledId": {
                    "type": "string",
                    "description": "Scheduled Id for the report entry",
                    "format": "uuid"
                  },
                  "createdBy": {
                    "type": "string",
                    "description": "Person/Entity who created this entry first time"
                  },
                  "createdDate": {
                    "type": "string",
                    "description": "Time when this entry was first created",
                    "format": "date-time"
                  },
                  "lastAccessedBy": {
                    "type": "string",
                    "description": "Person/Entity who accessed this entry last time"
                  },
                  "lastAccessedDate": {
                    "type": "string",
                    "description": "Time when this entry was last accessed",
                    "format": "date-time"
                  },
                  "startTime": {
                    "type": "string",
                    "description": "Processing start time of the report",
                    "format": "date-time"
                  },
                  "endTime": {
                    "type": "string",
                    "description": "Processing end time of the report",
                    "format": "date-time"
                  },
                  "status": {
                    "title": "ReportStatus",
                    "type": "string",
                    "description": "Status of the report",
                    "enum": [
                      "IN_PROGRESS",
                      "DELAYED",
                      "SUCCESS",
                      "ERROR",
                      "INACTIVE"
                    ]
                  },
                  "errorMessage": {
                    "type": "string",
                    "description": "Contains an error message if something is failed."
                  },
                  "location": {
                    "type": "string",
                    "description": "Location of the report once it is generated"
                  },
                  "numberOfDownloads": {
                    "type": "integer",
                    "default": 0,
                    "description": "Number of times this report is downloaded by the customer",
                    "minimum": 0
                  },
                  "numberOfAttempts": {
                    "type": "integer",
                    "description": "Number of times attempted to generate the report",
                    "minimum": 0,
                    "maximum": 3
                  },
                  "parameters": {
                    "type": "array",
                    "description": "Parameters for the reports to be generated",
                    "minItems": 0,
                    "items": {
                      "title": "Parameter",
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Parameter name"
                        },
                        "value": {
                          "type": "string",
                          "description": "Parameter value",
                          "minLength": 1
                        },
                        "type": {
                          "type": "string",
                          "description": "Parameter type",
                          "enum": [
                            "ARRAY",
                            "STRING",
                            "LONG",
                            "INT",
                            "BOOLEAN",
                            "DOUBLE",
                            "JSON",
                            "JSON_ARRAY"
                          ]
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Flag to indicate the parameter is required or optional"
                        }
                      },
                      "required": [
                        "name",
                        "value"
                      ],
                      "example": {
                        "name": "user_key",
                        "value": "143534,908373",
                        "type": "ARRAY",
                        "required": true
                      }
                    }
                  },
                  "publisherInfo": {
                    "type": "object",
                    "description": "Contains report publish data as a json"
                  }
                },
                "required": [
                  "reportId",
                  "scheduledId",
                  "createdBy",
                  "createdDate",
                  "startTime",
                  "status",
                  "numberOfAttempts",
                  "parameters"
                ],
                "example": {
                  "reportId": "91b68c7a-e3d4-40ed-a048-e6ecb7c0a6af",
                  "scheduledId": "5c66965a-f79b-46c5-a723-e13dae91e622",
                  "createdBy": "minim aliquip sit",
                  "createdDate": "3232-10-13T19:06:19.045Z",
                  "lastAccessedBy": "mollit irure aliquip",
                  "lastAccessedDate": "3454-08-17T05:56:04.691Z",
                  "startTime": "3841-08-04T05:51:18.262Z",
                  "endTime": "3907-11-27T08:16:24.458Z",
                  "status": "ERROR",
                  "errorMessage": "do Ex",
                  "location": "dolore et fugiat",
                  "numberOfDownloads": 18013697,
                  "numberOfAttempts": 0,
                  "parameters": [
                    {
                      "name": "ex laborum",
                      "value": "irure ex Lor",
                      "type": "ARRAY"
                    },
                    {
                      "name": "magna Excepteur",
                      "value": "sit",
                      "type": "INT"
                    },
                    {
                      "name": "veniam mollit ea esse",
                      "value": "non esse",
                      "type": "BOOLEAN"
                    },
                    {
                      "name": "in elit veniam do",
                      "value": "ipsum dolor",
                      "type": "ARRAY"
                    }
                  ],
                  "publisherInfo": {}
                }
              }
            }
          },
          "required": [
            "scheduledId",
            "reportName",
            "scheduleType",
            "createdBy",
            "createdDate",
            "lastAttemptedDate",
            "customerOrganizationId",
            "status",
            "parameters",
            "reports"
          ],
          "example": {
            "scheduledId": "806f281c-6295-465e-bd41-04559d4d4960",
            "reportName": "my_report",
            "scheduleType": "WEEKLY",
            "period": "30_DAYS",
            "createdBy": "john.doe",
            "createdDate": "2017-05-14T00:40:59.790Z",
            "lastAttemptedDate": "2018-07-02T21:59:15.045Z",
            "customerOrganizationId": 44010,
            "forOrg": 28120,
            "forUser": 12354,
            "lastModifiedBy": "john.doe",
            "lastModifiedDate": "2017-07-02T21:59:15.045Z",
            "numberOfFailedAttempts": 0,
            "status": "ACTIVE",
            "parameters": [
              {
                "name": "adipisicing",
                "value": "Duis",
                "type": "STRING"
              },
              {
                "name": "esse anim dolor et",
                "value": "velit Excepteur voluptate",
                "type": "ARRAY"
              },
              {
                "name": "exercitation pariatur cupidatat anim in",
                "value": "labore esse",
                "type": "ARRAY"
              },
              {
                "name": "exercitation est",
                "value": "magna quis",
                "type": "DOUBLE"
              },
              {
                "name": "dolor nulla nisi ut eu",
                "value": "Duis mollit Lorem",
                "type": "DOUBLE"
              }
            ],
            "reports": [
              {
                "reportId": "71df1306-94f9-4cbd-b6b0-735098bf7f87",
                "scheduledId": "772e5b73-3814-4604-8ae9-6f3eef114132",
                "createdBy": "ea sint fugi",
                "createdDate": "3738-09-09T05:31:51.735Z",
                "startTime": "3990-09-01T03:46:44.797Z",
                "status": "SUCCESS",
                "numberOfAttempts": 3,
                "parameters": [],
                "publisherInfo": {},
                "lastAccessedBy": "sunt eu aute"
              },
              {
                "reportId": "cff3620a-e3d6-4206-a504-1758bd400501",
                "scheduledId": "4ad6048f-3fc4-4fb9-8b66-22fba0bd62f1",
                "createdBy": "ullamco amet nostrud sint",
                "createdDate": "2918-11-28T03:33:08.736Z",
                "startTime": "4808-02-16T12:09:15.960Z",
                "status": "INACTIVE",
                "numberOfAttempts": 3,
                "parameters": [
                  {
                    "name": "cillum Duis ex cupidatat voluptate",
                    "value": "Ut",
                    "type": "INT"
                  }
                ],
                "location": "laboris nostrud",
                "errorMessage": "qui Excepteur",
                "endTime": "4909-04-15T03:51:50.570Z",
                "numberOfDownloads": 14336105,
                "publisherInfo": {}
              },
              {
                "reportId": "4dbd3bea-25f8-485c-b06e-e9c06883b0d7",
                "scheduledId": "e572e79e-0a56-4052-879f-427ecb40dc85",
                "createdBy": "cupidatat",
                "createdDate": "4434-04-25T17:09:55.402Z",
                "startTime": "4243-01-15T02:51:52.654Z",
                "status": "INACTIVE",
                "numberOfAttempts": 0,
                "parameters": [
                  {
                    "name": "pariatur aliqua ullamco dolor et",
                    "value": "nisi deserunt dolore",
                    "type": "STRING"
                  },
                  {
                    "name": "dolore amet ad",
                    "value": "proident tempor",
                    "type": "LONG"
                  }
                ],
                "lastAccessedBy": "dolore exercitat",
                "errorMessage": "co",
                "endTime": "5058-03-30T22:21:23.213Z"
              },
              {
                "reportId": "bc77cee9-0142-4954-afea-002d333b6440",
                "scheduledId": "98d33b3c-675e-4f1e-bfa7-ffdcd7b0aa18",
                "createdBy": "tempor",
                "createdDate": "2280-02-21T19:11:10.988Z",
                "startTime": "3750-11-06T20:13:33.607Z",
                "status": "ERROR",
                "numberOfAttempts": 1,
                "parameters": [
                  {
                    "name": "qui non minim ut",
                    "value": "ullamco Ut pariatur ipsum",
                    "type": "INT"
                  },
                  {
                    "name": "nulla laborum deserunt",
                    "value": "in dolore culpa consequat",
                    "type": "ARRAY"
                  }
                ],
                "location": "dolor",
                "lastAccessedDate": "4752-10-18T16:02:21.842Z",
                "publisherInfo": {},
                "lastAccessedBy": "sunt ipsu",
                "numberOfDownloads": 51428315
              }
            ]
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateScheduledReport"
      },
      "task": true
    },
    {
      "name": "getReportDefinitions",
      "summary": "Get all reports definitions",
      "description": "This API returns all the parameter configurations and applicable values for all the report types supported by Equinix.",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "title": "ReportRequest",
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Report Name",
                "minLength": 1
              },
              "parameters": {
                "type": "array",
                "description": "List of input parameters",
                "minItems": 0,
                "items": {
                  "title": "Parameter",
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Parameter name"
                    },
                    "value": {
                      "type": "string",
                      "description": "Parameter value",
                      "minLength": 1
                    },
                    "type": {
                      "type": "string",
                      "description": "Parameter type",
                      "enum": [
                        "ARRAY",
                        "STRING",
                        "LONG",
                        "INT",
                        "BOOLEAN",
                        "DOUBLE",
                        "JSON",
                        "JSON_ARRAY"
                      ]
                    },
                    "required": {
                      "type": "boolean",
                      "description": "Flag to indicate the parameter is required or optional"
                    }
                  },
                  "required": [
                    "name",
                    "value"
                  ],
                  "example": {
                    "name": "user_key",
                    "value": "143534,908373",
                    "type": "ARRAY",
                    "required": true
                  }
                }
              },
              "scheduleType": {
                "title": "ScheduleType",
                "type": "string",
                "description": "Scheduling strategy for the report to be generated.",
                "enum": [
                  "ONE_TIME",
                  "DAILY",
                  "WEEKLY",
                  "MONTHLY",
                  "QUARTERLY",
                  "ANNUALLY"
                ]
              },
              "period": {
                "title": "Period",
                "type": "string",
                "description": "Date range which the report should be generated",
                "enum": [
                  "1_DAY",
                  "7_DAYS",
                  "14_DAYS",
                  "30_DAYS",
                  "90_DAYS",
                  "180_DAYS",
                  "1_YEAR",
                  "CUSTOM",
                  "NONE"
                ]
              },
              "control": {
                "type": "string",
                "description": "Indicates whether user is entitled to use this report type.",
                "enum": [
                  "ALLOW",
                  "DENY"
                ]
              },
              "categories": {
                "type": "array",
                "uniqueItems": true,
                "description": "The list of categories this definition belongs to",
                "items": {
                  "type": "string",
                  "enum": [
                    "SECURITY",
                    "SITE_AND_ENVIRONMENT",
                    "ASSET",
                    "POWER",
                    "FINANCE"
                  ]
                }
              }
            },
            "required": [
              "name",
              "parameters",
              "scheduleType",
              "period"
            ],
            "example": {
              "name": "eu exercitation",
              "parameters": [
                {
                  "name": "id sunt",
                  "value": "tempor consequat minim",
                  "type": "INT"
                },
                {
                  "name": "eu consequat minim commodo",
                  "value": "Duis ex laboris",
                  "type": "LONG"
                },
                {
                  "name": "nostrud nulla in minim",
                  "value": "est laborum magna ea",
                  "type": "STRING"
                },
                {
                  "name": "ut ullamco pariatur ex",
                  "value": "laboris Duis commodo culpa",
                  "type": "LONG"
                }
              ],
              "scheduleType": "MONTHLY",
              "period": "30_DAYS"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getReportDefinitions"
      },
      "task": true
    },
    {
      "name": "deleteReports",
      "summary": "Delete your generated reports",
      "description": "Use this API to delete specific generated reports of an authenticated user by the generated reports' report IDs.",
      "input": [
        {
          "name": "reportIds",
          "type": "array",
          "info": "Comma separated report ids to be deleted.: array",
          "required": true,
          "schema": {
            "title": "reportIds",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "title": "DownloadableReport",
            "type": "object",
            "properties": {
              "reportId": {
                "type": "string",
                "description": "A unique UUID string denoting the id of the report entry",
                "format": "uuid"
              },
              "scheduledId": {
                "type": "string",
                "description": "Scheduled Id for the report entry",
                "format": "uuid"
              },
              "reportName": {
                "type": "string",
                "description": "Name of the report",
                "minLength": 1
              },
              "fileName": {
                "type": "string",
                "description": "File name of the report",
                "minLength": 1
              },
              "fileType": {
                "type": "string",
                "description": "File type of the report",
                "enum": [
                  "XLS",
                  "CSV",
                  "PDF"
                ],
                "minLength": 1
              },
              "fileSize": {
                "type": "number",
                "description": "Size of the report in bytes",
                "minimum": 0
              },
              "createdFor": {
                "type": "string",
                "description": "Person/Entity whom this entry belongs to"
              },
              "requestedDate": {
                "type": "string",
                "description": "Time when this entry was first requested",
                "format": "date-time"
              },
              "generatedDate": {
                "type": "string",
                "description": "Time when this entry was generated",
                "format": "date-time"
              },
              "status": {
                "title": "ReportStatus",
                "type": "string",
                "description": "Status of the report",
                "enum": [
                  "IN_PROGRESS",
                  "DELAYED",
                  "SUCCESS",
                  "ERROR",
                  "INACTIVE"
                ]
              },
              "numberOfDownloads": {
                "type": "integer",
                "default": 0,
                "description": "Number of times this report is downloaded by the customer",
                "minimum": 0
              }
            },
            "required": [
              "reportId",
              "status"
            ],
            "example": {
              "reportId": "8f204c59-f70f-437b-92d5-dbbde2932de5",
              "scheduledId": "886fc5de-6304-46c7-902c-d946c656c169",
              "reportName": "Duis",
              "fileName": "velit Duis sit",
              "fileType": "XLS",
              "fileSize": 95806395,
              "createdBy": "sint",
              "requestedDate": "2807-08-28T13:34:33.735Z",
              "generatedDate": "2847-09-19T23:25:35.305Z",
              "status": "SUCCESS",
              "numberOfDownloads": 1
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteReports"
      },
      "task": true
    },
    {
      "name": "getReports",
      "summary": "Get your generated reports",
      "description": "Use this method to get a list of reports triggered for generation by the authenticated user.",
      "input": [
        {
          "name": "offset",
          "type": "number",
          "info": "The start index from which the list is created.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Use offset and limit to restrict the number of users in the output. Limit can be used to restrict the number of reports in the response: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "duration",
          "type": "number",
          "info": "Number of days since should reports be searched: 123",
          "required": false,
          "schema": {
            "title": "duration",
            "type": "number"
          }
        },
        {
          "name": "sorts",
          "type": "array",
          "info": "Use sort to get the reports in the response sorted in the particular order. for example, use '-GENERATED_DATE' to sort the reports by generated date in descending order. ...(description truncated): array",
          "required": false,
          "schema": {
            "title": "sorts",
            "type": "array"
          }
        },
        {
          "name": "statuses",
          "type": "array",
          "info": "List of statuses of reports to be searched.: array",
          "required": false,
          "schema": {
            "title": "statuses",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "SearchReportResponse",
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "description": "List of records",
              "minItems": 0,
              "items": {
                "title": "DownloadableReport",
                "type": "object",
                "properties": {
                  "reportId": {
                    "type": "string",
                    "description": "A unique UUID string denoting the id of the report entry",
                    "format": "uuid"
                  },
                  "scheduledId": {
                    "type": "string",
                    "description": "Scheduled Id for the report entry",
                    "format": "uuid"
                  },
                  "reportName": {
                    "type": "string",
                    "description": "Name of the report",
                    "minLength": 1
                  },
                  "fileName": {
                    "type": "string",
                    "description": "File name of the report",
                    "minLength": 1
                  },
                  "fileType": {
                    "type": "string",
                    "description": "File type of the report",
                    "enum": [
                      "XLS",
                      "CSV",
                      "PDF"
                    ],
                    "minLength": 1
                  },
                  "fileSize": {
                    "type": "number",
                    "description": "Size of the report in bytes",
                    "minimum": 0
                  },
                  "createdFor": {
                    "type": "string",
                    "description": "Person/Entity whom this entry belongs to"
                  },
                  "requestedDate": {
                    "type": "string",
                    "description": "Time when this entry was first requested",
                    "format": "date-time"
                  },
                  "generatedDate": {
                    "type": "string",
                    "description": "Time when this entry was generated",
                    "format": "date-time"
                  },
                  "status": {
                    "title": "ReportStatus",
                    "type": "string",
                    "description": "Status of the report",
                    "enum": [
                      "IN_PROGRESS",
                      "DELAYED",
                      "SUCCESS",
                      "ERROR",
                      "INACTIVE"
                    ]
                  },
                  "numberOfDownloads": {
                    "type": "integer",
                    "default": 0,
                    "description": "Number of times this report is downloaded by the customer",
                    "minimum": 0
                  }
                },
                "required": [
                  "reportId",
                  "status"
                ],
                "example": {
                  "reportId": "8f204c59-f70f-437b-92d5-dbbde2932de5",
                  "scheduledId": "886fc5de-6304-46c7-902c-d946c656c169",
                  "reportName": "Duis",
                  "fileName": "velit Duis sit",
                  "fileType": "XLS",
                  "fileSize": 95806395,
                  "createdBy": "sint",
                  "requestedDate": "2807-08-28T13:34:33.735Z",
                  "generatedDate": "2847-09-19T23:25:35.305Z",
                  "status": "SUCCESS",
                  "numberOfDownloads": 1
                }
              }
            },
            "page": {
              "title": "Page",
              "type": "object",
              "properties": {
                "total": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Total number of records",
                  "default": 0
                },
                "limit": {
                  "type": "integer",
                  "minimum": 0,
                  "default": 0,
                  "description": "Number of records per page"
                },
                "offset": {
                  "type": "integer",
                  "minimum": 0,
                  "default": 0,
                  "description": "The page number"
                },
                "sorts": {
                  "type": "array",
                  "description": "Sort fields based on polarity",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "total",
                "limit",
                "offset"
              ],
              "example": {
                "total": 54690858,
                "limit": 21446016,
                "offset": 60463582,
                "sorts": [
                  "cupidatat",
                  "dolor occaecat"
                ]
              }
            },
            "_links": {
              "title": "Links",
              "type": "object",
              "properties": {
                "prev": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/reports?limit=10"
                  }
                },
                "self": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/reports?limit=10"
                  }
                },
                "next": {
                  "title": "ReferenceLink",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "href of the link",
                      "minLength": 1
                    }
                  },
                  "required": [
                    "href"
                  ],
                  "example": {
                    "href": "/reports?limit=10"
                  }
                }
              },
              "required": [
                "self"
              ],
              "example": {
                "prev": {
                  "href": "/reports?limit=10&offset=50"
                },
                "self": {
                  "href": "/reports?limit=10&offset=40"
                },
                "next": {
                  "href": "/reports?limit=10&offset=30"
                }
              }
            }
          },
          "required": [
            "data",
            "_links"
          ],
          "example": {
            "data": [
              {
                "reportId": "0c1ba2a7-053c-4974-b4c1-ad22f5765f03",
                "status": "ERROR"
              },
              {
                "reportId": "c9f8029d-62b0-4a42-b1c9-cb924515f80e",
                "status": "IN_PROGRESS",
                "scheduledId": "69db9183-e9cc-4cd8-aaf8-d0aec8e64d07",
                "createdBy": "in est officia",
                "fileSize": 5997663,
                "requestedDate": "2389-02-21T23:38:54.744Z"
              },
              {
                "reportId": "0d63a95b-3649-49f3-9658-0cf637bf2e54",
                "status": "IN_PROGRESS",
                "requestedDate": "2386-09-09T17:54:06.104Z",
                "fileType": "XLS",
                "createdBy": "ullamco labor",
                "scheduledId": "b84a6bae-3b39-4aef-b6ea-dd3d30b78ef6"
              },
              {
                "reportId": "3190b044-8215-4fc7-a2cf-720bf7df7642",
                "status": "INACTIVE",
                "fileSize": 40635347,
                "createdBy": "eu minim",
                "reportName": "laborum sint aliqua occ",
                "fileType": "CSV"
              }
            ],
            "page": {
              "total": 57630205,
              "limit": 82388200,
              "offset": 86416613,
              "sorts": [
                "esse",
                "cupidatat Ut fugiat ut ad"
              ]
            },
            "_links": {
              "self": {
                "href": "esse in Excepteur do"
              },
              "next": {
                "href": "sunt sit"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getReports"
      },
      "task": true
    },
    {
      "name": "generateReport",
      "summary": "Generate new report from schedule",
      "description": "Use this API to generate a new report from an existing scheduled report of the authenticated user, as identified by its scheduled ID.",
      "input": [
        {
          "name": "scheduledId",
          "type": "string",
          "info": "Scheduled Id to generate a new report: string",
          "required": true,
          "schema": {
            "title": "scheduledId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Report",
          "type": "object",
          "properties": {
            "reportId": {
              "type": "string",
              "description": "A unique UUID string denoting the id of the report entry",
              "format": "uuid"
            },
            "scheduledId": {
              "type": "string",
              "description": "Scheduled Id for the report entry",
              "format": "uuid"
            },
            "createdBy": {
              "type": "string",
              "description": "Person/Entity who created this entry first time"
            },
            "createdDate": {
              "type": "string",
              "description": "Time when this entry was first created",
              "format": "date-time"
            },
            "lastAccessedBy": {
              "type": "string",
              "description": "Person/Entity who accessed this entry last time"
            },
            "lastAccessedDate": {
              "type": "string",
              "description": "Time when this entry was last accessed",
              "format": "date-time"
            },
            "startTime": {
              "type": "string",
              "description": "Processing start time of the report",
              "format": "date-time"
            },
            "endTime": {
              "type": "string",
              "description": "Processing end time of the report",
              "format": "date-time"
            },
            "status": {
              "title": "ReportStatus",
              "type": "string",
              "description": "Status of the report",
              "enum": [
                "IN_PROGRESS",
                "DELAYED",
                "SUCCESS",
                "ERROR",
                "INACTIVE"
              ]
            },
            "errorMessage": {
              "type": "string",
              "description": "Contains an error message if something is failed."
            },
            "location": {
              "type": "string",
              "description": "Location of the report once it is generated"
            },
            "numberOfDownloads": {
              "type": "integer",
              "default": 0,
              "description": "Number of times this report is downloaded by the customer",
              "minimum": 0
            },
            "numberOfAttempts": {
              "type": "integer",
              "description": "Number of times attempted to generate the report",
              "minimum": 0,
              "maximum": 3
            },
            "parameters": {
              "type": "array",
              "description": "Parameters for the reports to be generated",
              "minItems": 0,
              "items": {
                "title": "Parameter",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Parameter name"
                  },
                  "value": {
                    "type": "string",
                    "description": "Parameter value",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "description": "Parameter type",
                    "enum": [
                      "ARRAY",
                      "STRING",
                      "LONG",
                      "INT",
                      "BOOLEAN",
                      "DOUBLE",
                      "JSON",
                      "JSON_ARRAY"
                    ]
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Flag to indicate the parameter is required or optional"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "example": {
                  "name": "user_key",
                  "value": "143534,908373",
                  "type": "ARRAY",
                  "required": true
                }
              }
            },
            "publisherInfo": {
              "type": "object",
              "description": "Contains report publish data as a json"
            }
          },
          "required": [
            "reportId",
            "scheduledId",
            "createdBy",
            "createdDate",
            "startTime",
            "status",
            "numberOfAttempts",
            "parameters"
          ],
          "example": {
            "reportId": "91b68c7a-e3d4-40ed-a048-e6ecb7c0a6af",
            "scheduledId": "5c66965a-f79b-46c5-a723-e13dae91e622",
            "createdBy": "minim aliquip sit",
            "createdDate": "3232-10-13T19:06:19.045Z",
            "lastAccessedBy": "mollit irure aliquip",
            "lastAccessedDate": "3454-08-17T05:56:04.691Z",
            "startTime": "3841-08-04T05:51:18.262Z",
            "endTime": "3907-11-27T08:16:24.458Z",
            "status": "ERROR",
            "errorMessage": "do Ex",
            "location": "dolore et fugiat",
            "numberOfDownloads": 18013697,
            "numberOfAttempts": 0,
            "parameters": [
              {
                "name": "ex laborum",
                "value": "irure ex Lor",
                "type": "ARRAY"
              },
              {
                "name": "magna Excepteur",
                "value": "sit",
                "type": "INT"
              },
              {
                "name": "veniam mollit ea esse",
                "value": "non esse",
                "type": "BOOLEAN"
              },
              {
                "name": "in elit veniam do",
                "value": "ipsum dolor",
                "type": "ARRAY"
              }
            ],
            "publisherInfo": {}
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/generateReport"
      },
      "task": true
    },
    {
      "name": "getReportDefinition",
      "summary": "Get report definition by name",
      "description": "Use this API to return the parameter configurations and applicable values for a specific report type supported by Equinix.",
      "input": [
        {
          "name": "reportName",
          "type": "string",
          "info": "Unique report name of the definition: string",
          "required": true,
          "schema": {
            "title": "reportName",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "ReportRequest",
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Report Name",
              "minLength": 1
            },
            "parameters": {
              "type": "array",
              "description": "List of input parameters",
              "minItems": 0,
              "items": {
                "title": "Parameter",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Parameter name"
                  },
                  "value": {
                    "type": "string",
                    "description": "Parameter value",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "description": "Parameter type",
                    "enum": [
                      "ARRAY",
                      "STRING",
                      "LONG",
                      "INT",
                      "BOOLEAN",
                      "DOUBLE",
                      "JSON",
                      "JSON_ARRAY"
                    ]
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Flag to indicate the parameter is required or optional"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "example": {
                  "name": "user_key",
                  "value": "143534,908373",
                  "type": "ARRAY",
                  "required": true
                }
              }
            },
            "scheduleType": {
              "title": "ScheduleType",
              "type": "string",
              "description": "Scheduling strategy for the report to be generated.",
              "enum": [
                "ONE_TIME",
                "DAILY",
                "WEEKLY",
                "MONTHLY",
                "QUARTERLY",
                "ANNUALLY"
              ]
            },
            "period": {
              "title": "Period",
              "type": "string",
              "description": "Date range which the report should be generated",
              "enum": [
                "1_DAY",
                "7_DAYS",
                "14_DAYS",
                "30_DAYS",
                "90_DAYS",
                "180_DAYS",
                "1_YEAR",
                "CUSTOM",
                "NONE"
              ]
            },
            "control": {
              "type": "string",
              "description": "Indicates whether user is entitled to use this report type.",
              "enum": [
                "ALLOW",
                "DENY"
              ]
            },
            "categories": {
              "type": "array",
              "uniqueItems": true,
              "description": "The list of categories this definition belongs to",
              "items": {
                "type": "string",
                "enum": [
                  "SECURITY",
                  "SITE_AND_ENVIRONMENT",
                  "ASSET",
                  "POWER",
                  "FINANCE"
                ]
              }
            }
          },
          "required": [
            "name",
            "parameters",
            "scheduleType",
            "period"
          ],
          "example": {
            "name": "eu exercitation",
            "parameters": [
              {
                "name": "id sunt",
                "value": "tempor consequat minim",
                "type": "INT"
              },
              {
                "name": "eu consequat minim commodo",
                "value": "Duis ex laboris",
                "type": "LONG"
              },
              {
                "name": "nostrud nulla in minim",
                "value": "est laborum magna ea",
                "type": "STRING"
              },
              {
                "name": "ut ullamco pariatur ex",
                "value": "laboris Duis commodo culpa",
                "type": "LONG"
              }
            ],
            "scheduleType": "MONTHLY",
            "period": "30_DAYS"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getReportDefinition"
      },
      "task": true
    },
    {
      "name": "downloadReport",
      "summary": "Download a generated report",
      "description": "This method downloads a specific generated report that was originally triggered by the authenticated user.",
      "input": [
        {
          "name": "reportId",
          "type": "string",
          "info": "Unique identifier of generated report: string",
          "required": true,
          "schema": {
            "title": "reportId",
            "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": "/downloadReport"
      },
      "task": true
    },
    {
      "name": "getReportById",
      "summary": "Get details of generated report",
      "description": "Use this API to get the details of a report triggered for generated by the authenticated user.",
      "input": [
        {
          "name": "reportId",
          "type": "string",
          "info": "Unique identifier of generated report: string",
          "required": true,
          "schema": {
            "title": "reportId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Report",
          "type": "object",
          "properties": {
            "reportId": {
              "type": "string",
              "description": "A unique UUID string denoting the id of the report entry",
              "format": "uuid"
            },
            "scheduledId": {
              "type": "string",
              "description": "Scheduled Id for the report entry",
              "format": "uuid"
            },
            "createdBy": {
              "type": "string",
              "description": "Person/Entity who created this entry first time"
            },
            "createdDate": {
              "type": "string",
              "description": "Time when this entry was first created",
              "format": "date-time"
            },
            "lastAccessedBy": {
              "type": "string",
              "description": "Person/Entity who accessed this entry last time"
            },
            "lastAccessedDate": {
              "type": "string",
              "description": "Time when this entry was last accessed",
              "format": "date-time"
            },
            "startTime": {
              "type": "string",
              "description": "Processing start time of the report",
              "format": "date-time"
            },
            "endTime": {
              "type": "string",
              "description": "Processing end time of the report",
              "format": "date-time"
            },
            "status": {
              "title": "ReportStatus",
              "type": "string",
              "description": "Status of the report",
              "enum": [
                "IN_PROGRESS",
                "DELAYED",
                "SUCCESS",
                "ERROR",
                "INACTIVE"
              ]
            },
            "errorMessage": {
              "type": "string",
              "description": "Contains an error message if something is failed."
            },
            "location": {
              "type": "string",
              "description": "Location of the report once it is generated"
            },
            "numberOfDownloads": {
              "type": "integer",
              "default": 0,
              "description": "Number of times this report is downloaded by the customer",
              "minimum": 0
            },
            "numberOfAttempts": {
              "type": "integer",
              "description": "Number of times attempted to generate the report",
              "minimum": 0,
              "maximum": 3
            },
            "parameters": {
              "type": "array",
              "description": "Parameters for the reports to be generated",
              "minItems": 0,
              "items": {
                "title": "Parameter",
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Parameter name"
                  },
                  "value": {
                    "type": "string",
                    "description": "Parameter value",
                    "minLength": 1
                  },
                  "type": {
                    "type": "string",
                    "description": "Parameter type",
                    "enum": [
                      "ARRAY",
                      "STRING",
                      "LONG",
                      "INT",
                      "BOOLEAN",
                      "DOUBLE",
                      "JSON",
                      "JSON_ARRAY"
                    ]
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Flag to indicate the parameter is required or optional"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "example": {
                  "name": "user_key",
                  "value": "143534,908373",
                  "type": "ARRAY",
                  "required": true
                }
              }
            },
            "publisherInfo": {
              "type": "object",
              "description": "Contains report publish data as a json"
            }
          },
          "required": [
            "reportId",
            "scheduledId",
            "createdBy",
            "createdDate",
            "startTime",
            "status",
            "numberOfAttempts",
            "parameters"
          ],
          "example": {
            "reportId": "91b68c7a-e3d4-40ed-a048-e6ecb7c0a6af",
            "scheduledId": "5c66965a-f79b-46c5-a723-e13dae91e622",
            "createdBy": "minim aliquip sit",
            "createdDate": "3232-10-13T19:06:19.045Z",
            "lastAccessedBy": "mollit irure aliquip",
            "lastAccessedDate": "3454-08-17T05:56:04.691Z",
            "startTime": "3841-08-04T05:51:18.262Z",
            "endTime": "3907-11-27T08:16:24.458Z",
            "status": "ERROR",
            "errorMessage": "do Ex",
            "location": "dolore et fugiat",
            "numberOfDownloads": 18013697,
            "numberOfAttempts": 0,
            "parameters": [
              {
                "name": "ex laborum",
                "value": "irure ex Lor",
                "type": "ARRAY"
              },
              {
                "name": "magna Excepteur",
                "value": "sit",
                "type": "INT"
              },
              {
                "name": "veniam mollit ea esse",
                "value": "non esse",
                "type": "BOOLEAN"
              },
              {
                "name": "in elit veniam do",
                "value": "ipsum dolor",
                "type": "ARRAY"
              }
            ],
            "publisherInfo": {}
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getReportById"
      },
      "task": true
    },
    {
      "name": "outboundShipmentSubmit",
      "summary": "Schedule outbound shipment",
      "description": "The Post shipment outbound API creates an outbound shipment order for outbound shipment of equipment from any IBX that the user has access to. This can only be done under a user with 'Shipments' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"contacts\": [{\"contactType\": \"Must be one of [TECHNICAL, ORDERING, NOTIFICATION]\", \"userName\": \"string\", \"name\": \"string\", \"email\": \"string\", \"workPhoneCountryCode\": \"string\", \"workPhone\": \"string\", \"workPhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\", \"mobilePhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"workPhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\", \"mobilePhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\"}], \"customerReferenceNumber\": \"object\", \"purchaseOrder\": {\"startDate\": \"string\", \"endDate\": \"string\", \"number\": \"string\", \"price\": {\"amount\": 123}}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\"}]}, \"serviceDetails\": {\"outboundRequestDescription\": \"string\", \"estimatedDateTime\": \"string\", \"shipmentDetails\": {\"outboundType\": \"Must be one of [CARRIER, CUSTOMER_CARRY]\", \"carrierName\": \"Must be one of [UPS, FEDEX, DHL, OTHER]\", \"trackingNumber\": \"string\", \"noOfBoxes\": 123, \"declaredValue\": \"string\", \"labelExists\": \"boolean\", \"shipToAddress\": {\"name\": \"string\", \"address\": \"string\", \"city\": \"string\", \"state\": \"string\", \"country\": \"string\", \"zipCode\": \"string\", \"phoneNumber\": \"string\", \"carrierAccountNumber\": \"string\"}, \"otherCarrierName\": \"string\", \"uploadedLabel\": \"undefined\", \"insureShipment\": \"boolean\", \"pickUpFromCageSuite\": \"boolean\", \"description\": \"string\"}}, \"attachments\": [{\"id\": \"string\", \"name\": \"string\"}]}",
          "required": false,
          "schema": {
            "title": "Outbound Shipment Request",
            "type": "object",
            "example": {
              "attachments": [],
              "ibxLocation": {
                "cages": [
                  {
                    "cage": "AM1:0G:00EQ11-1",
                    "cabinets": [],
                    "accountNumber": "108812"
                  }
                ],
                "ibx": "AM1"
              },
              "purchaseOrder": {},
              "serviceDetails": {
                "estimatedDateTime": "2018-11-28T19:09:30.211Z",
                "shipmentDetails": {
                  "outboundType": "CARRIER",
                  "noOfBoxes": 3,
                  "carrierName": "DHL",
                  "trackingNumber": "33,333",
                  "declaredValue": "3",
                  "labelExists": false,
                  "shipToAddress": {
                    "address": "1188 test address",
                    "carrierAccountNumber": "111",
                    "city": "Sunnyvale",
                    "country": "US",
                    "name": "test",
                    "state": "CALIFORNIA",
                    "zipCode": "94085",
                    "phoneNumber": "+1 1331313"
                  }
                }
              },
              "contacts": [
                {
                  "contactType": "ORDERING",
                  "userName": "jondoe@test.com"
                },
                {
                  "contactType": "NOTIFICATION",
                  "userName": "jondoe@test.com"
                },
                {
                  "contactType": "TECHNICAL",
                  "userName": "jondoe@test.com"
                }
              ]
            },
            "properties": {
              "contacts": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "title": "Contact Info",
                  "type": "object",
                  "properties": {
                    "contactType": {
                      "type": "string",
                      "description": "Contact Type, possible values are ORDERING, NOTIFICATION, TECHNICAL",
                      "enum": [
                        "TECHNICAL",
                        "ORDERING",
                        "NOTIFICATION"
                      ],
                      "example": "TECHNICAL"
                    },
                    "userName": {
                      "type": "string",
                      "description": "User Name",
                      "minLength": 1
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[\\s.]*([^\\s.][\\s.]*){0,100}$",
                      "description": "Technical Contact Name",
                      "example": "David"
                    },
                    "email": {
                      "title": "emailDef",
                      "type": "string",
                      "description": "Contact Email",
                      "example": "toanupdixit@gmail.com"
                    },
                    "workPhoneCountryCode": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "workPhone": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "maxLength": 40,
                      "example": "111-111-1111"
                    },
                    "workPhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "mobilePhoneCountryCode": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "mobilePhone": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "maxLength": 40,
                      "example": "111-111-1112"
                    },
                    "mobilePhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "workPhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    },
                    "mobilePhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    }
                  },
                  "required": [
                    "contactType"
                  ]
                }
              },
              "customerReferenceNumber": {
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "cust-ref-123",
                "type": "object"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "properties": {
                  "startDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Purchase Order Start Date",
                    "example": "2017-10-09T02:47:42.320Z"
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Purchase Order End Date",
                    "example": "2017-10-10T02:47:42.320Z"
                  },
                  "number": {
                    "type": "string",
                    "pattern": "^(.{1,30})$",
                    "description": "Purchase Order Number",
                    "example": "1-1234567890"
                  },
                  "price": {
                    "title": "Price",
                    "type": "object",
                    "description": "The \"amount\" attribute denotes how much money the Purchase Order contains. This \"amount\" is measured in the currency type listed in the customer's account.",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "description": "Price",
                        "minimum": 0,
                        "maximum": 999999999999999
                      }
                    }
                  }
                }
              },
              "ibxLocation": {
                "title": "ibxLocation",
                "type": "object",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ],
                "example": {
                  "ibx": "PA2",
                  "cages": [
                    {
                      "cage": "PA2:02:002MC1"
                    }
                  ]
                }
              },
              "serviceDetails": {
                "title": "Outbound Service Detail",
                "type": "object",
                "properties": {
                  "outboundRequestDescription": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "estimatedDateTime": {
                    "type": "string",
                    "description": "Date and time of received event (ISO Date)<br> Cannot in Past. ",
                    "format": "date-time"
                  },
                  "shipmentDetails": {
                    "type": "object",
                    "required": [
                      "outboundType"
                    ],
                    "properties": {
                      "outboundType": {
                        "type": "string",
                        "enum": [
                          "CARRIER",
                          "CUSTOMER_CARRY"
                        ],
                        "description": "Outbound Type",
                        "example": "CARRIER"
                      },
                      "carrierName": {
                        "type": "string",
                        "enum": [
                          "UPS",
                          "FEDEX",
                          "DHL",
                          "OTHER"
                        ]
                      },
                      "trackingNumber": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "noOfBoxes": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100000
                      },
                      "declaredValue": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 20
                      },
                      "labelExists": {
                        "type": "boolean"
                      },
                      "shipToAddress": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "address": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "city": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "state": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "country": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "zipCode": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "phoneNumber": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 20
                          },
                          "carrierAccountNumber": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          }
                        },
                        "required": [
                          "name",
                          "address",
                          "city",
                          "state",
                          "country",
                          "zipCode",
                          "phoneNumber",
                          "carrierAccountNumber"
                        ]
                      },
                      "otherCarrierName": {
                        "type": "string",
                        "minLength": 2,
                        "maxLength": 50
                      },
                      "uploadedLabel": {
                        "type": "object"
                      },
                      "insureShipment": {
                        "type": "boolean"
                      },
                      "pickUpFromCageSuite": {
                        "type": "boolean"
                      },
                      "description": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      }
                    }
                  }
                },
                "required": [
                  "estimatedDateTime",
                  "shipmentDetails"
                ]
              },
              "attachments": {
                "type": "array",
                "description": "Attachments",
                "maxItems": 5,
                "items": {
                  "title": "Attachment",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Attachment ID",
                      "minLength": 1,
                      "example": "eb9ab7e9-3785-41e4-af24-74b8dc37b254"
                    },
                    "name": {
                      "type": "string",
                      "description": "Attachment filename",
                      "minLength": 1,
                      "example": "uecp-finance-service-api-swagger.yml"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            },
            "required": [
              "serviceDetails",
              "ibxLocation",
              "contacts"
            ]
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Shipment Order Response",
          "type": "object",
          "properties": {
            "OrderReferenceId": {
              "type": "string",
              "description": "Order Reference Id"
            },
            "orderNumber": {
              "type": "string",
              "description": "Order Number",
              "example": "1-108124419634"
            },
            "Id": {
              "type": "string",
              "description": "Order Id"
            },
            "SRNumber": {
              "type": "string",
              "description": "SR Number"
            }
          },
          "required": [
            "orderNumber"
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/outboundShipmentSubmit"
      },
      "task": true
    },
    {
      "name": "getLocation",
      "summary": "Get Shipment Locations",
      "description": "The Get shipment locations API returns all available IBX locations, cages, and cabinets where the user has 'Shipments' permission.",
      "input": [
        {
          "name": "detail",
          "type": "boolean",
          "info": "When enable this flag returns detailed permission with Cage & Cabinets. Default value is false: boolean",
          "required": false,
          "schema": {
            "title": "detail",
            "type": "boolean"
          }
        },
        {
          "name": "ibxs",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "ibxs",
            "type": "string"
          }
        },
        {
          "name": "cages",
          "type": "string",
          "info": ": string",
          "required": false,
          "schema": {
            "title": "cages",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "locations": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getLocation"
      },
      "task": true
    },
    {
      "name": "shipmentInbound",
      "summary": "Schedule inbound shipment",
      "description": "The Post shipment inbound API creates an inbound shipment order for inbound shipment of equipment to any IBX that the user has access to. This can only be done under a user with 'Shipments' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"contacts\": [{\"contactType\": \"Must be one of [TECHNICAL, ORDERING, NOTIFICATION]\", \"userName\": \"string\", \"name\": \"string\", \"email\": \"string\", \"workPhoneCountryCode\": \"string\", \"workPhone\": \"string\", \"workPhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\", \"mobilePhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"workPhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\", \"mobilePhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\"}], \"customerReferenceNumber\": \"object\", \"purchaseOrder\": {\"startDate\": \"string\", \"endDate\": \"string\", \"number\": \"string\", \"price\": {\"amount\": 123}}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\"}]}, \"attachments\": [{\"id\": \"string\", \"name\": \"string\"}], \"serviceDetails\": {\"shipmentDetails\": {\"noOfBoxes\": 123, \"isOverSized\": \"boolean\", \"description\": \"string\", \"trackingNumber\": \"array\", \"inboundType\": \"Must be one of [CARRIER, CUSTOMER_CARRY]\", \"carrierName\": \"Must be one of [FEDEX, DHL, UPS, OTHER]\", \"otherCarrierName\": \"string\"}, \"deliverToCage\": \"boolean\", \"inboundRequestDescription\": \"string\", \"storageId\": \"string\", \"estimatedDateTime\": \"string\"}}",
          "required": false,
          "schema": {
            "title": "Inbound Shipment Request",
            "type": "object",
            "example": {
              "attachments": [],
              "contacts": [
                {
                  "contactType": "ORDERING",
                  "userName": "jondoe@test.com"
                },
                {
                  "contactType": "NOTIFICATION",
                  "userName": "jondoe@test.com"
                },
                {
                  "contactType": "TECHNICAL",
                  "userName": "jondoe@test.com"
                }
              ],
              "customerReferenceNumber": "RQT0036422",
              "ibxLocation": {
                "ibx": "LD8",
                "cages": [
                  {
                    "cage": "LD8:02:02MC2T",
                    "accountNumber": "111"
                  }
                ]
              },
              "purchaseOrder": {
                "startDate": "2018-04-09T02:47:42.320Z",
                "endDate": "2018-10-19T20:29:25.682Z",
                "number": "6",
                "price": {
                  "amount": 12.5
                }
              },
              "serviceDetails": {
                "estimatedDateTime": "2018-10-15T05:00:00.420-08:00",
                "shipmentDetails": {
                  "noOfBoxes": 10,
                  "isOverSized": true,
                  "description": "hello",
                  "trackingNumber": [
                    "1",
                    "2"
                  ],
                  "inboundType": "CARRIER",
                  "carrierName": "OTHER",
                  "otherCarrierName": "test"
                },
                "deliverToCage": true,
                "inboundRequestDescription": "hello"
              }
            },
            "properties": {
              "contacts": {
                "type": "array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal. Only username and contactType are valid for ordering and notification contacts, all other attributes will be ignored. <br> <br> Technical contact is optional. workPhoneCountryCode, workPhone and workPhonePrefToCall attributes are mandatory for Technical Contact(when Provided).  <br><br>  If notification contact is not available to pass, please use ordering contact as notification contact also. <br> ",
                "minItems": 2,
                "items": {
                  "title": "Contact Info",
                  "type": "object",
                  "properties": {
                    "contactType": {
                      "type": "string",
                      "description": "Contact Type, possible values are ORDERING, NOTIFICATION, TECHNICAL",
                      "enum": [
                        "TECHNICAL",
                        "ORDERING",
                        "NOTIFICATION"
                      ],
                      "example": "TECHNICAL"
                    },
                    "userName": {
                      "type": "string",
                      "description": "User Name",
                      "minLength": 1
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[\\s.]*([^\\s.][\\s.]*){0,100}$",
                      "description": "Technical Contact Name",
                      "example": "David"
                    },
                    "email": {
                      "title": "emailDef",
                      "type": "string",
                      "description": "Contact Email",
                      "example": "toanupdixit@gmail.com"
                    },
                    "workPhoneCountryCode": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "workPhone": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "maxLength": 40,
                      "example": "111-111-1111"
                    },
                    "workPhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "mobilePhoneCountryCode": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "mobilePhone": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "maxLength": 40,
                      "example": "111-111-1112"
                    },
                    "mobilePhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "workPhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    },
                    "mobilePhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    }
                  },
                  "required": [
                    "contactType"
                  ]
                },
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ]
              },
              "customerReferenceNumber": {
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "cust-ref-123",
                "type": "object"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "properties": {
                  "startDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Purchase Order Start Date",
                    "example": "2017-10-09T02:47:42.320Z"
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Purchase Order End Date",
                    "example": "2017-10-10T02:47:42.320Z"
                  },
                  "number": {
                    "type": "string",
                    "pattern": "^(.{1,30})$",
                    "description": "Purchase Order Number",
                    "example": "1-1234567890"
                  },
                  "price": {
                    "title": "Price",
                    "type": "object",
                    "description": "The \"amount\" attribute denotes how much money the Purchase Order contains. This \"amount\" is measured in the currency type listed in the customer's account.",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "description": "Price",
                        "minimum": 0,
                        "maximum": 999999999999999
                      }
                    }
                  }
                }
              },
              "ibxLocation": {
                "title": "ibxLocation",
                "type": "object",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ],
                "example": {
                  "ibx": "PA2",
                  "cages": [
                    {
                      "cage": "PA2:02:002MC1"
                    }
                  ]
                }
              },
              "attachments": {
                "type": "array",
                "description": "Attachments",
                "maxItems": 5,
                "items": {
                  "title": "Attachment",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Attachment ID",
                      "minLength": 1,
                      "example": "eb9ab7e9-3785-41e4-af24-74b8dc37b254"
                    },
                    "name": {
                      "type": "string",
                      "description": "Attachment filename",
                      "minLength": 1,
                      "example": "uecp-finance-service-api-swagger.yml"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              },
              "serviceDetails": {
                "title": "Inbound Service Detail",
                "type": "object",
                "example": {
                  "estimatedDateTime": "2018-10-15T05:00:00.420-08:00",
                  "shipmentDetails": {
                    "noOfBoxes": 10,
                    "isOverSized": true,
                    "description": "hello",
                    "trackingNumber": [
                      "1235467869",
                      "1",
                      "4",
                      "5"
                    ],
                    "inboundType": "CARRIER",
                    "carrierName": "OTHER",
                    "otherCarrierName": "test"
                  },
                  "deliverToCage": true,
                  "inboundRequestDescription": "hello"
                },
                "properties": {
                  "shipmentDetails": {
                    "type": "object",
                    "required": [
                      "noOfBoxes",
                      "inboundType"
                    ],
                    "properties": {
                      "noOfBoxes": {
                        "type": "integer",
                        "description": "No of boxes",
                        "maximum": 10000000000000000000
                      },
                      "isOverSized": {
                        "type": "boolean",
                        "description": "if Box is oversized",
                        "example": true
                      },
                      "description": {
                        "type": "string",
                        "description": "description of inbound shipment",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "trackingNumber": {
                        "type": "array",
                        "minItems": 0,
                        "maxItems": 10,
                        "description": "Tracking number",
                        "example": "1,2,3",
                        "items": {
                          "type": "string",
                          "minLength": 0,
                          "maxLength": 100
                        }
                      },
                      "inboundType": {
                        "type": "string",
                        "enum": [
                          "CARRIER",
                          "CUSTOMER_CARRY"
                        ],
                        "description": "Inbound Type",
                        "example": "CARRIER"
                      },
                      "carrierName": {
                        "type": "string",
                        "enum": [
                          "FEDEX",
                          "DHL",
                          "UPS",
                          "OTHER"
                        ],
                        "description": "Carrier Name of shipment",
                        "example": "FEDEX"
                      },
                      "otherCarrierName": {
                        "type": "string",
                        "description": "Other Carrier Name",
                        "minLength": 2,
                        "maxLength": 50
                      }
                    }
                  },
                  "deliverToCage": {
                    "type": "boolean",
                    "description": "Deliver To cage",
                    "example": true
                  },
                  "inboundRequestDescription": {
                    "type": "string",
                    "description": "Scope of work",
                    "minLength": 1,
                    "maxLength": 4000
                  },
                  "storageId": {
                    "type": "string",
                    "description": "Storage ID",
                    "example": 123
                  },
                  "estimatedDateTime": {
                    "type": "string",
                    "format": "date-time",
                    "description": "estimatedDateTime of Shipment (ISO Date)<br> Cannot in Past. ",
                    "example": "2018-10-15T05:00:00.420-08:00"
                  }
                },
                "required": [
                  "shipmentDetails",
                  "estimatedDateTime"
                ]
              }
            },
            "required": [
              "serviceDetails",
              "ibxLocation",
              "contacts"
            ]
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Shipment Order Response",
          "type": "object",
          "properties": {
            "OrderReferenceId": {
              "type": "string",
              "description": "Order Reference Id"
            },
            "orderNumber": {
              "type": "string",
              "description": "Order Number",
              "example": "1-108124419634"
            },
            "Id": {
              "type": "string",
              "description": "Order Id"
            },
            "SRNumber": {
              "type": "string",
              "description": "SR Number"
            }
          },
          "required": [
            "orderNumber"
          ]
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/shipmentInbound"
      },
      "task": true
    },
    {
      "name": "shipmentPending",
      "summary": "Schedule pending inbound shipment",
      "description": "This API is used to submit the Pending Inbound Shipment order. This can only be done under a user with 'Shipments' permission. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"shipmentDetails\": [{\"storageId\": \"string\", \"cage\": \"string\", \"accountNumber\": \"string\", \"deliverToCage\": \"boolean\", \"additionalDetails\": \"string\", \"customerReferenceNumber\": \"undefined\", \"purchaseInformation\": \"string\"}], \"contacts\": [{\"contactType\": \"Must be one of [TECHNICAL, ORDERING, NOTIFICATION]\", \"userName\": \"string\", \"name\": \"string\", \"email\": \"string\", \"workPhoneCountryCode\": \"string\", \"workPhone\": \"string\", \"workPhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\", \"mobilePhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"workPhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\", \"mobilePhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\"}]}",
          "required": false,
          "schema": {
            "title": "Pending Storage Request",
            "type": "object",
            "properties": {
              "shipmentDetails": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "storageId": {
                      "type": "string"
                    },
                    "cage": {
                      "type": "string"
                    },
                    "accountNumber": {
                      "type": "string"
                    },
                    "deliverToCage": {
                      "type": "boolean"
                    },
                    "additionalDetails": {
                      "type": "string",
                      "description": "Scope of work",
                      "minLength": 1,
                      "maxLength": 4000
                    },
                    "customerReferenceNumber": {
                      "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                      "minLength": 1,
                      "maxLength": 50,
                      "example": "cust-ref-123"
                    },
                    "purchaseInformation": {
                      "type": "string",
                      "description": "Purchase Order Number",
                      "example": "1234567890",
                      "minLength": 1,
                      "maxLength": 30
                    }
                  },
                  "required": [
                    "storageId",
                    "cage",
                    "accountNumber",
                    "deliverToCage"
                  ]
                }
              },
              "contacts": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "title": "Contact Info",
                  "type": "object",
                  "properties": {
                    "contactType": {
                      "type": "string",
                      "description": "Contact Type, possible values are ORDERING, NOTIFICATION, TECHNICAL",
                      "enum": [
                        "TECHNICAL",
                        "ORDERING",
                        "NOTIFICATION"
                      ],
                      "example": "TECHNICAL"
                    },
                    "userName": {
                      "type": "string",
                      "description": "User Name",
                      "minLength": 1
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[\\s.]*([^\\s.][\\s.]*){0,100}$",
                      "description": "Technical Contact Name",
                      "example": "David"
                    },
                    "email": {
                      "title": "emailDef",
                      "type": "string",
                      "description": "Contact Email",
                      "example": "toanupdixit@gmail.com"
                    },
                    "workPhoneCountryCode": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "workPhone": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "maxLength": 40,
                      "example": "111-111-1111"
                    },
                    "workPhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "mobilePhoneCountryCode": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "mobilePhone": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "maxLength": 40,
                      "example": "111-111-1112"
                    },
                    "mobilePhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "workPhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    },
                    "mobilePhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    }
                  },
                  "required": [
                    "contactType"
                  ]
                }
              }
            },
            "required": [
              "shipmentDetails",
              "contacts"
            ],
            "example": {
              "contacts": [
                {
                  "contactType": "ORDERING",
                  "userName": "jondoe@test.com"
                },
                {
                  "contactType": "NOTIFICATION",
                  "userName": "jondoe@test.com"
                }
              ],
              "shipmentDetails": [
                {
                  "storageId": "1-275PQCAS",
                  "cage": "CH1:05:313",
                  "deliverToCage": true,
                  "accountNumber": "133333"
                },
                {
                  "storageId": "1-275PQCGBF",
                  "cage": "SV1:05:31113",
                  "deliverToCage": false,
                  "accountNumber": "133335"
                }
              ]
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Pending Storage Order Response",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "OrderReferenceId": {
                "type": "string",
                "description": "Order Reference Id"
              },
              "orderNumber": {
                "type": "string",
                "description": "Order Number",
                "example": "1-108124419634"
              },
              "Id": {
                "type": "string",
                "description": "Order Id"
              },
              "SRNumber": {
                "type": "string",
                "description": "SR Number"
              },
              "storageID": {
                "type": "string"
              },
              "Ibx": {
                "type": "string"
              },
              "cage": {
                "type": "string"
              },
              "accountNumber": {
                "type": "string"
              },
              "trackingNumber": {
                "type": "string"
              }
            },
            "required": [
              "orderNumber",
              "storageID",
              "Ibx",
              "cage",
              "accountNumber",
              "trackingNumber"
            ]
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/shipmentPending"
      },
      "task": true
    },
    {
      "name": "handleSmartHandOrder",
      "summary": "Order Smarthands Equipment Install",
      "description": "The Post API orders equipment installation per customer specifications by an Equinix IBX Technician. This can only be done by a user with 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"deviceLocation\": \"string\", \"elevationDrawingAttached\": \"boolean\", \"installationPoint\": \"string\", \"installedEquipmentPhotoRequired\": \"boolean\", \"mountHardwareIncluded\": \"boolean\", \"patchDevices\": \"boolean\", \"patchingInfo\": \"string\", \"powerItOn\": \"boolean\", \"needSupportFromASubmarineCableStationEngineer\": \"undefined\", \"scopeOfWork\": \"undefined\"}}",
          "required": false,
          "schema": {
            "title": "Equipment Install Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "properties": {
                  "deviceLocation": {
                    "type": "string",
                    "description": "Device Location",
                    "example": "abc location"
                  },
                  "elevationDrawingAttached": {
                    "type": "boolean",
                    "description": "Elevation drawing attached?",
                    "example": false
                  },
                  "installationPoint": {
                    "type": "string",
                    "description": "Installation Point",
                    "example": "abc"
                  },
                  "installedEquipmentPhotoRequired": {
                    "type": "boolean",
                    "description": "Installed Equipment Photo Required?",
                    "example": false
                  },
                  "mountHardwareIncluded": {
                    "type": "boolean",
                    "description": "Mount hardware included?",
                    "example": true
                  },
                  "patchDevices": {
                    "type": "boolean",
                    "description": "Patch Devices?",
                    "example": true
                  },
                  "patchingInfo": {
                    "type": "string",
                    "description": "Patching info",
                    "example": "Patch my equipment"
                  },
                  "powerItOn": {
                    "type": "boolean",
                    "description": "Power it on?",
                    "example": true
                  },
                  "needSupportFromASubmarineCableStationEngineer": {
                    "type": "object"
                  },
                  "scopeOfWork": {
                    "type": "object"
                  }
                },
                "required": [
                  "deviceLocation",
                  "elevationDrawingAttached",
                  "installationPoint",
                  "installedEquipmentPhotoRequired",
                  "mountHardwareIncluded",
                  "patchDevices",
                  "powerItOn",
                  "scopeOfWork"
                ]
              }
            },
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "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": "/handleSmartHandOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandShipmentUnpackOrder",
      "summary": "Order Smarthands Shipment Unpack",
      "description": "The Post API requests for inbound shipment unpacking and packaging disposal. This can only be done by a user with 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"inboundShipmentOrderNumber\": \"string\", \"copyOfPackingSlipNeeded\": \"boolean\", \"scopeOfWork\": \"undefined\", \"discardShipmentMaterial\": \"boolean\"}}",
          "required": false,
          "schema": {
            "title": "Shipment Unpack Request",
            "type": "object",
            "required": [
              "serviceDetails",
              "ibxLocation",
              "contacts",
              "schedule"
            ],
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Shipment Unpacking",
                "properties": {
                  "inboundShipmentOrderNumber": {
                    "type": "string",
                    "description": "Inbound Shipment Order Number",
                    "pattern": "^[ A-Za-z0-9~!|\\[\\]@#$%^&*()_+:\"<>?\\/.,;'=\\-\\{\\}`]{1,50}$",
                    "example": "1-12122121"
                  },
                  "copyOfPackingSlipNeeded": {
                    "type": "boolean",
                    "description": "Copy of Packaging Slip Needed?",
                    "example": false
                  },
                  "scopeOfWork": {
                    "type": "object"
                  },
                  "discardShipmentMaterial": {
                    "type": "boolean",
                    "description": "Discard Shipment Material?",
                    "example": false
                  }
                },
                "required": [
                  "inboundShipmentOrderNumber",
                  "discardShipmentMaterial",
                  "copyOfPackingSlipNeeded",
                  "scopeOfWork"
                ]
              }
            }
          }
        }
      ],
      "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": "/handleSmartHandShipmentUnpackOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandMoveJumperCableOrder",
      "summary": "Order Smarthands Move Jumper Cable",
      "description": "The Post API orders a patch cables to be moved between devices by an Equinix IBX Technician. This can only be done by a user with 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"quantity\": \"Must be one of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12+]\", \"cableId\": \"string\", \"currentDeviceDetails\": \"undefined\", \"newDeviceDetails\": \"undefined\", \"scopeOfWork\": \"undefined\"}}",
          "required": false,
          "schema": {
            "title": "Move Jumper Cable Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Move Jumper Cable Service Details Object. Please fill out the Cable ID, Current Device (Name, Slot, Port) and New Device (Name, Slot, Port) details for each jumper cable and attach it to the form or complete scope of work text box when 'Quantity' is greater than 1. You may mix jumper types but if you require more than 12 jumpers ran, the site will contact you for scheduling of your request based on parts and availability. Please select the best option for your scheduling needs. If 'Quantity' is 1, then below 'currentDeviceDetails' and 'newDeviceDetails' objects are mandatory.",
                "properties": {
                  "quantity": {
                    "type": "string",
                    "description": "Quantity.",
                    "enum": [
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "12+"
                    ]
                  },
                  "cableId": {
                    "type": "string",
                    "maxLength": 200,
                    "description": "Enter Cable ID or ‘None’ if not applicable. This field is mandatory if 'Quantity' is 1.",
                    "example": "A01-5-10"
                  },
                  "currentDeviceDetails": {
                    "type": "object"
                  },
                  "newDeviceDetails": {
                    "type": "object"
                  },
                  "scopeOfWork": {
                    "type": "object"
                  }
                },
                "required": [
                  "quantity",
                  "scopeOfWork"
                ]
              }
            },
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "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": "/handleSmartHandMoveJumperCableOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandCageEscortOrder",
      "summary": "Order Smarthands Cage Escort",
      "description": "The Post API orders an IBX security escort for a visitor to access your cage after you have scheduled a work visit to said IBX. This can only be done by a user with 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"durationVisit\": \"Must be one of [30 Minutes, 60 Minutes, 90 Minutes, 2 Hours, 2 Hours 30 Minutes, 3 Hours, 3 Hours 30 Minutes, 4 Hours]\", \"openCabinetForVisitor\": \"boolean\", \"scopeOfWork\": \"undefined\", \"supervisionReqForVisitor\": \"boolean\", \"workVisitOrderNumber\": \"string\"}}",
          "required": false,
          "schema": {
            "title": "Cage Escort Request",
            "type": "object",
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ],
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Escort to Open Cage/Open Cabinet",
                "properties": {
                  "durationVisit": {
                    "type": "string",
                    "description": "Duration of the visit for the Visitor",
                    "enum": [
                      "30 Minutes",
                      "60 Minutes",
                      "90 Minutes",
                      "2 Hours",
                      "2 Hours 30 Minutes",
                      "3 Hours",
                      "3 Hours 30 Minutes",
                      "4 Hours"
                    ]
                  },
                  "openCabinetForVisitor": {
                    "type": "boolean",
                    "description": "Open the Cabinet for the Visitor?",
                    "example": false
                  },
                  "scopeOfWork": {
                    "type": "object"
                  },
                  "supervisionReqForVisitor": {
                    "type": "boolean",
                    "description": "Supervision Required For the Visitor?",
                    "example": false
                  },
                  "workVisitOrderNumber": {
                    "type": "string",
                    "description": "Work Visit Order Number",
                    "pattern": "^[ A-Za-z0-9~!|\\[\\]@#$%^&*()_+:\"<>?\\/.,;'=\\-\\{\\}`]{1,200}$",
                    "example": "1-108050984499"
                  }
                },
                "required": [
                  "durationVisit",
                  "openCabinetForVisitor",
                  "scopeOfWork",
                  "supervisionReqForVisitor",
                  "workVisitOrderNumber"
                ]
              }
            }
          }
        }
      ],
      "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": "/handleSmartHandCageEscortOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandLocatePackageOrder",
      "summary": "Order Smarthands Locate Package",
      "description": "The Post API requests the location of your packages at the IBX. This can only be done by a user with 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"shipmentOrderNumber\": \"string\", \"trackingNumber\": \"string\", \"possibleLocation\": \"string\", \"packageDescription\": \"string\", \"scopeOfWork\": \"undefined\"}}",
          "required": false,
          "schema": {
            "title": "Locate Package Request",
            "type": "object",
            "required": [
              "serviceDetails",
              "ibxLocation",
              "contacts",
              "schedule"
            ],
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Shipment Unpacking",
                "properties": {
                  "shipmentOrderNumber": {
                    "type": "string",
                    "description": "Inbound Shipment Order Number",
                    "pattern": "^[ A-Za-z0-9~!|\\[\\]@#$%^&*()_+:\"<>?\\/.,;'=\\-\\{\\}`]{1,50}$",
                    "example": "1-1111111111"
                  },
                  "trackingNumber": {
                    "type": "string",
                    "description": "Tracking Number",
                    "pattern": "^[ A-Za-z0-9~!|\\[\\]@#$%^&*()_+:\"<>?\\/.,;'=\\-\\{\\}`]{1,200}$",
                    "example": "323-12121"
                  },
                  "possibleLocation": {
                    "type": "string",
                    "description": "Possible Location",
                    "pattern": "^[ A-Za-z0-9~!|\\[\\]@#$%^&*()_+:\"<>?\\/.,;'=\\-\\{\\}`]{1,200}$",
                    "example": "Near cabinet 1010"
                  },
                  "packageDescription": {
                    "type": "string",
                    "description": "Package Description",
                    "pattern": "^[ A-Za-z0-9~!|\\[\\]@#$%^&*()_+:\"<>?\\/.,;'=\\-\\{\\}`]{1,200}$",
                    "example": "It's small box with 1kg weight."
                  },
                  "scopeOfWork": {
                    "type": "object"
                  }
                },
                "required": [
                  "shipmentOrderNumber",
                  "trackingNumber",
                  "possibleLocation",
                  "packageDescription",
                  "scopeOfWork"
                ]
              }
            }
          }
        }
      ],
      "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": "/handleSmartHandLocatePackageOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandPicturesDocumentOrder",
      "summary": "Order Smarthands Pictures Document",
      "description": "The Post API requests an IBX technician to provide cage-related pictures or documentation at cages where the user has 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"cameraProvidedBy\": \"Must be one of [Equinix, Customer]\", \"specificDateAndTime\": \"boolean\", \"documentOnly\": \"boolean\", \"description\": \"string\", \"scopeOfWork\": \"undefined\"}}",
          "required": false,
          "schema": {
            "title": "Pictures Document Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "properties": {
                  "cameraProvidedBy": {
                    "type": "string",
                    "description": "Who is providing the camera? If documentOnly is false, this field is mandatory.",
                    "enum": [
                      "Equinix",
                      "Customer"
                    ]
                  },
                  "specificDateAndTime": {
                    "type": "boolean",
                    "description": "Would you like to request a specific date and time? If true, Scheduling should not be STANDARD. If documentOnly is false, this field is mandatory.",
                    "example": false
                  },
                  "documentOnly": {
                    "type": "boolean",
                    "description": "Do you need documents or pictures? Set true if you need documents.",
                    "example": true
                  },
                  "description": {
                    "type": "string",
                    "maxLength": 200,
                    "description": "Descrption of the Photo/Document. If documentOnly is false, this field is mandatory.",
                    "example": "Cage Photo"
                  },
                  "scopeOfWork": {
                    "type": "object"
                  }
                },
                "required": [
                  "documentOnly",
                  "scopeOfWork"
                ]
              }
            },
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "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": "/handleSmartHandPicturesDocumentOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandPatchCableInstallOrder",
      "summary": "Order Smarthands Patch Cable Install",
      "description": "The Post smarthands patch Cable Install API orders patch cable installations per customer specifications by an Equinix IBX Technician. This can only be done by a user with 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"crossConnects\": \"array\"}}",
          "required": false,
          "schema": {
            "title": "Patch Cable Install Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "minItems": 1,
                          "maxItems": 1,
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber",
                        "cabinets"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "properties": {
                  "crossConnects": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "crossConnects"
                ]
              }
            },
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "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": "/handleSmartHandPatchCableInstallOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandPatchCableRemovalOrder",
      "summary": "Order Smarthands Patch Cable Removal",
      "description": "The Post API orders to patch cable removal per customer specifications by an Equinix IBX Technician. This can only be done by a user with 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"crossConnects\": \"array\"}}",
          "required": false,
          "schema": {
            "title": "Patch Cable Removal Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "minItems": 1,
                          "maxItems": 1,
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber",
                        "cabinets"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "properties": {
                  "crossConnects": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  }
                },
                "required": [
                  "crossConnects"
                ]
              }
            },
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "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": "/handleSmartHandPatchCableRemovalOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandCageCleanupOrder",
      "summary": "Order Smarthands Cage Cleanup",
      "description": "The Post smarthands cage Cleanup API orders trash removal or cage cleanup from a specific cage in the IBX where the user has 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": [{\"contactType\": \"Must be one of [TECHNICAL, ORDERING, NOTIFICATION]\", \"userName\": \"string\", \"name\": \"string\", \"email\": \"string\", \"workPhoneCountryCode\": \"string\", \"workPhone\": \"string\", \"workPhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\", \"mobilePhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"workPhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\", \"mobilePhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\"}], \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"permissionToDiscardBoxes\": \"boolean\", \"dampMoistMopRequired\": \"boolean\", \"scopeOfWork\": \"undefined\"}}",
          "required": false,
          "schema": {
            "title": "Cage Cleanup Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "items": {
                  "title": "Contact Info",
                  "type": "object",
                  "description": "Use this model to build contact object. Ordering and notification contacts are are always equinix registered contacts and we only expect username and rest of the details will be looked up. It is important to know that when username is provided all other attributes apart from contactType will be ignored ",
                  "example": {
                    "contactType": "TECHNICAL",
                    "name": "Jane Smith",
                    "email": "jane_smith@test.com",
                    "workPhoneCountryCode": "+1",
                    "workPhone": "408123456",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhoneCountryCode": "+1",
                    "mobilePhone": "408123456",
                    "mobilePhonePrefToCall": "ANYTIME"
                  },
                  "properties": {
                    "contactType": {
                      "type": "string",
                      "description": "Contact Type, possible values are ORDERING, NOTIFICATION, TECHNICAL",
                      "enum": [
                        "TECHNICAL",
                        "ORDERING",
                        "NOTIFICATION"
                      ],
                      "example": "TECHNICAL"
                    },
                    "userName": {
                      "type": "string",
                      "description": "User Name",
                      "example": "kmo00re@abc.com"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[\\s.]*([^\\s.][\\s.]*){0,100}$",
                      "description": "Full Name of the Contact, Eg. 'First_Name' + 'Last_Name'",
                      "example": "Jane Smith"
                    },
                    "email": {
                      "type": "string",
                      "description": "Valid email address of the contact",
                      "maxLength": 100
                    },
                    "workPhoneCountryCode": {
                      "type": "string",
                      "description": "Country Code of Primary Phone of the contact",
                      "minLength": 1,
                      "maxLength": 6,
                      "pattern": "^\\+[0-9]{1,6}$"
                    },
                    "workPhone": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "minLength": 1,
                      "maxLength": 40,
                      "pattern": "^[0-9\\.\\-() ]{2,40}(?:(x|ext)[0-9\\.\\-() ]{1,10})?$"
                    },
                    "workPhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "mobilePhoneCountryCode": {
                      "type": "string",
                      "description": "Country Code of Mobile Phone of the contact",
                      "minLength": 1,
                      "maxLength": 6,
                      "pattern": "^\\+[0-9]{1,6}$"
                    },
                    "mobilePhone": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "minLength": 1,
                      "maxLength": 40,
                      "pattern": "^[0-9\\.\\-() ]{2,40}(?:(x|ext)[0-9\\.\\-() ]{1,10})?$"
                    },
                    "mobilePhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "workPhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    },
                    "mobilePhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    }
                  },
                  "required": [
                    "contactType"
                  ]
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Cage Cleanup",
                "required": [
                  "permissionToDiscardBoxes",
                  "dampMoistMopRequired",
                  "scopeOfWork"
                ],
                "properties": {
                  "permissionToDiscardBoxes": {
                    "type": "boolean",
                    "description": "Permission To Discard Boxes?",
                    "example": false
                  },
                  "dampMoistMopRequired": {
                    "description": "Is Damp Moist Mop Requested?",
                    "example": true,
                    "type": "boolean"
                  },
                  "scopeOfWork": {
                    "type": "object"
                  }
                }
              }
            },
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "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": "/handleSmartHandCageCleanupOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandCableRequestOrder",
      "summary": "Order Smarthands Cable Request",
      "description": "The Post smarthands cable Request API orders cables per customer specifications. This can only be done under a user with 'Smart Hands' permission. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"mediaType\": \"Must be one of [Multi-mode 62.5mic, Multi-mode 50mic, Single-mode, Cat-5, Cat-6, Coax, POTS, T1, E1]\", \"connectorType\": \"Must be one of [RJ45, SC, LC, BNC, Other]\", \"length\": \"string\", \"quantity\": \"Must be one of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, >10]\", \"scopeOfWork\": \"undefined\"}}",
          "required": false,
          "schema": {
            "title": "Request Cables - Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Please fill out the Media Type, Connector Type and Length (Specify in cm or ft) for each jumper cable and attach it to the form or complete scope of work text box when 'Quantity' is greater than 1. You may mix jumper types but if you require more than 10 cables, the site will contact you for scheduling of your request based on parts and availability. Please select the best option for your scheduling needs. If 'Quantity' is 1, then below 'Media Type', 'Connector Type' and 'Length (feet/cm)' objects are mandatory.",
                "properties": {
                  "mediaType": {
                    "type": "string",
                    "description": "Media Type.",
                    "enum": [
                      "Multi-mode 62.5mic",
                      "Multi-mode 50mic",
                      "Single-mode",
                      "Cat-5",
                      "Cat-6",
                      "Coax",
                      "POTS",
                      "T1",
                      "E1"
                    ]
                  },
                  "connectorType": {
                    "type": "string",
                    "description": "Connector Type.",
                    "enum": [
                      "RJ45",
                      "SC",
                      "LC",
                      "BNC",
                      "Other"
                    ]
                  },
                  "length": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50,
                    "description": "Length (feet/cm).",
                    "example": "20 ft"
                  },
                  "quantity": {
                    "type": "string",
                    "description": "Quantity",
                    "enum": [
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      ">10"
                    ]
                  },
                  "scopeOfWork": {
                    "type": "object"
                  }
                },
                "required": [
                  "quantity",
                  "scopeOfWork"
                ]
              }
            },
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "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": "/handleSmartHandCableRequestOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandRunJumperCableOrder",
      "summary": "Order Smarthands Run Jumper Cable",
      "description": "The Post smarthands API orders a jumper cables to be run between devices by an Equinix IBX Technician. This can only be done by a user with 'Smart Hands' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"quantity\": \"Must be one of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 12+]\", \"jumperType\": \"Must be one of [Jumper, Pre-Wiring, Patch Cable, Other]\", \"mediaType\": \"Must be one of [Multi-mode 62.5mic, Multi-mode 50mic, Single-mode, Cat-5, Cat-6, Coax, POTS, T1, E1]\", \"connector\": \"Must be one of [RJ45, SC, LC, BNC, Other]\", \"cableId\": \"string\", \"provideTxRxLightLevels\": \"boolean\", \"deviceDetails\": \"array\", \"scopeOfWork\": \"undefined\"}}",
          "required": false,
          "schema": {
            "title": "Move Jumper Cable Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Move Jumper Cable Service Details Object. Please fill out the Media Type, Connector Type, Cable ID(optional), 'Should Equinix provide you Tx/Rx light levels, Yes Or No?', Devices to Connect details for Device#1 (Name/Panel, Device Slot, Device Ports) and Device#2(Optional) (Name/Panel, Device Slot, Device Ports) details for each jumper cable and attach it to the form or complete scope of work text box when 'Quantity' is greater than 1. If any device is being shipped to Equinix, please include the shipment number. You may mix jumper types but if you require more than 12 jumpers ran, the site will contact you for scheduling of your request based on parts and availability. Please select the best option for your scheduling needs. If ‘Quantity’ is 1, then ‘Jumper Type’, Media Type, Connector Type, 'Should Equinix provide you Tx/Rx light levels?' and Device details are mandatory.",
                "properties": {
                  "quantity": {
                    "type": "string",
                    "description": "Quantity.",
                    "enum": [
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "12+"
                    ]
                  },
                  "jumperType": {
                    "type": "string",
                    "description": "Jumper Type",
                    "enum": [
                      "Jumper",
                      "Pre-Wiring",
                      "Patch Cable",
                      "Other"
                    ]
                  },
                  "mediaType": {
                    "type": "string",
                    "description": "Media Type",
                    "enum": [
                      "Multi-mode 62.5mic",
                      "Multi-mode 50mic",
                      "Single-mode",
                      "Cat-5",
                      "Cat-6",
                      "Coax",
                      "POTS",
                      "T1",
                      "E1"
                    ]
                  },
                  "connector": {
                    "type": "string",
                    "description": "Connector Type",
                    "enum": [
                      "RJ45",
                      "SC",
                      "LC",
                      "BNC",
                      "Other"
                    ]
                  },
                  "cableId": {
                    "type": "string",
                    "maxLength": 200,
                    "description": "Cable ID",
                    "example": "A01-5-10"
                  },
                  "provideTxRxLightLevels": {
                    "type": "boolean",
                    "description": "Provide Tx/Rx Light Levels",
                    "example": true
                  },
                  "deviceDetails": {
                    "type": "array",
                    "items": {
                      "type": "object"
                    }
                  },
                  "scopeOfWork": {
                    "type": "object"
                  }
                },
                "required": [
                  "quantity",
                  "scopeOfWork"
                ]
              }
            },
            "required": [
              "ibxLocation",
              "contacts",
              "schedule",
              "serviceDetails"
            ]
          }
        }
      ],
      "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": "/handleSmartHandRunJumperCableOrder"
      },
      "task": true
    },
    {
      "name": "handleSmartHandOthersOrder",
      "summary": "Order Smarthands Other",
      "description": "The Post smarthands other API requests an unlisted Smart Hands order at an IBX location where the user has 'Smart Hands' permission. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"purchaseOrder\": {\"number\": \"string\", \"purchaseOrderType\": \"Must be one of [EXISTING, EXEMPTED]\"}, \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": \"array\", \"schedule\": {\"scheduleType\": \"Must be one of [STANDARD, EXPEDITED, SCHEDULED_MAINTENANCE]\", \"requestedStartDate\": \"string\", \"requestedCompletionDate\": \"string\"}, \"attachments\": \"array\", \"serviceDetails\": {\"scopeOfWork\": \"undefined\"}}",
          "required": false,
          "schema": {
            "title": "Other Request",
            "type": "object",
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "title": "Customer Reference Number",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "RSS41244"
              },
              "purchaseOrder": {
                "title": "Purchase Order",
                "type": "object",
                "description": "Use this model to pass purchase order reference information. When purchase order selection type is EXEMTED, number is not required",
                "properties": {
                  "number": {
                    "type": "string",
                    "maxLength": 20,
                    "description": "Purchase Order Number",
                    "example": "123455"
                  },
                  "purchaseOrderType": {
                    "type": "string",
                    "enum": [
                      "EXISTING",
                      "EXEMPTED"
                    ],
                    "description": "Purchase Order Selection Type"
                  }
                },
                "required": [
                  "purchaseOrderType"
                ]
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "AM1:01:001MC3:0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "title": "Order Contacts Array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal.",
                "minItems": 3,
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "email": "jane_smith@test.com",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ],
                "items": {
                  "type": "object"
                }
              },
              "schedule": {
                "title": "Schedule Info",
                "type": "object",
                "description": "Use this model to pass the scheduling option that best meets your needs. Please remember that additional approvals or fees may be required for expedited requests.",
                "properties": {
                  "scheduleType": {
                    "type": "string",
                    "description": "<u>STANDARD:</u> <br>Choose this option and we will complete your request in the standard turnaround time pending install base readiness. Most requests are processed within 24 to 72 hours. Requests will be processed on a first come, first served basis unless they are expedited. RequestedStartDate and requestedCompletionDate ignored for standard scheduling <br><br> <u>EXPEDITED:</u> Choose this option and Equinix will prioritize your request and attempt to fulfill it as soon as reasonably possible. Additional fees may apply. RequestedCompletionDate is mandatory for expedite scheduling. RequestedStartDate is ignored for expedite scheduling. <br><br> <u>SCHEDULED_MAINTENANCE:</u> Choose this option to schedule a request for a specific date and time, including today. RequestedStartDate and requestedCompletionDate are mandatory for schedule maintenance",
                    "enum": [
                      "STANDARD",
                      "EXPEDITED",
                      "SCHEDULED_MAINTENANCE"
                    ]
                  },
                  "requestedStartDate": {
                    "description": "Requested Start Date Time (ISO Date)<br> Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "requestedCompletionDate": {
                    "description": "Requested Completion Date Time (ISO Date)<br>Cannot Past Date.",
                    "type": "string",
                    "format": "date-time",
                    "example": "2017-04-05T12:00:00Z"
                  }
                },
                "required": [
                  "scheduleType"
                ]
              },
              "attachments": {
                "type": "array",
                "title": "Attachments Array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API. Maximum size of an attachment is 2MB with the following formats - bmp, jpg, jpeg, gif, png, tif, tiff, txt, doc, docx, xls, xlsx, ppt, pps, ppsx, pdf, and vsd.",
                "maxItems": 5,
                "items": {
                  "type": "object"
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Other",
                "required": [
                  "scopeOfWork"
                ],
                "properties": {
                  "scopeOfWork": {
                    "type": "object"
                  }
                }
              }
            },
            "required": [
              "serviceDetails",
              "schedule",
              "contacts",
              "ibxLocation"
            ]
          }
        }
      ],
      "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": "/handleSmartHandOthersOrder"
      },
      "task": true
    },
    {
      "name": "smartHandTypes",
      "summary": "Get Smart Hands Types",
      "description": "The Get smarthands types API returns all Smart Hands services available to the user with 'Smart Hands' permission. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "smarthands": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/smartHandTypes"
      },
      "task": true
    },
    {
      "name": "getTroubleTicketType",
      "summary": "Get Trouble Ticket Types",
      "description": "The Get trouble ticket types API retrieves all the trouble ticket categories supported by Equinix for a user with Trouble Ticket permission. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "category",
          "type": "string",
          "info": "To get results by trouble ticket category.: Must be one of [Cross Connect, Network, Power, Environment, Hardware, Security, Managed Services, Smartview]",
          "required": false,
          "schema": {
            "title": "category",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "object",
          "properties": {
            "troubleTicketTypes": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getTroubleTicketType"
      },
      "task": true
    },
    {
      "name": "placeTroubleTicketOrder",
      "summary": "Order Trouble ticket",
      "description": "The Post trouble ticket API creates a trouble ticket under a user with 'Trouble Ticket' permission. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"customerReferenceNumber\": \"string\", \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"accountNumber\": \"string\", \"cabinets\": \"array\"}]}, \"contacts\": [{\"contactType\": \"Must be one of [TECHNICAL, ORDERING, NOTIFICATION]\", \"userName\": \"string\", \"name\": \"string\", \"email\": \"string\", \"workPhoneCountryCode\": \"string\", \"workPhone\": \"string\", \"workPhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\", \"mobilePhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"workPhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\", \"mobilePhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\"}], \"attachments\": [{\"id\": \"string\", \"name\": \"string\"}], \"serviceDetails\": {\"incidentDateTime\": \"string\", \"problemCode\": \"Must be one of [cc01, cc02, cc03, net01, net02, env01, env02, env03, env04, hdw01, pwr01, pwr02, sec01, sec02, ms01, ms04, ms05, ms06, ms07, ms08, ms12, ms13, sv04, sv02, sv03, sv05, sv01]\", \"serviceName\": \"Must be one of [Firewall Issue, VPN Issue, Load Balancer Issue, DDoS Mitigation Issue, Storage Issue, Performance Issue, Backup to disk Issue, Backup to tape Issue, Missing Tape, Device Monitoring Issue, OS Issue, Network Device Issue, Other]\", \"callMeFromCage\": \"boolean\", \"needSupportFromASubmarineCableStationEngineer\": \"boolean\", \"additionalDetails\": \"string\"}}",
          "required": false,
          "schema": {
            "title": "Trouble Ticket Order Request",
            "type": "object",
            "required": [
              "ibxLocation",
              "serviceDetails",
              "contacts"
            ],
            "properties": {
              "customerReferenceNumber": {
                "type": "string",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "maxLength": 50
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "description": "IBX, Cage, Accounts and Cabinet  information",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "example": "AM1",
                    "minLength": 1,
                    "maxLength": 10
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "example": "AM1:01:001MC3",
                          "minLength": 1
                        },
                        "accountNumber": {
                          "type": "string",
                          "example": "12345",
                          "minLength": 1
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "0102"
                          }
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "contacts": {
                "type": "array",
                "minLength": 2,
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Ordering contact and notification contact are mandatory.Only one ordering contact, technical contact are allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal",
                "items": {
                  "title": "Contact Info",
                  "type": "object",
                  "properties": {
                    "contactType": {
                      "type": "string",
                      "description": "Contact Type, possible values are ORDERING, NOTIFICATION, TECHNICAL",
                      "enum": [
                        "TECHNICAL",
                        "ORDERING",
                        "NOTIFICATION"
                      ],
                      "example": "TECHNICAL"
                    },
                    "userName": {
                      "type": "string",
                      "description": "User Name",
                      "example": "kmo00re@abc.com"
                    },
                    "name": {
                      "type": "string",
                      "description": "Technical Contact Name",
                      "example": "David"
                    },
                    "email": {
                      "title": "emailDef",
                      "type": "string",
                      "description": "Contact Email",
                      "maxLength": 100
                    },
                    "workPhoneCountryCode": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "workPhone": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "maxLength": 40,
                      "example": "111-111-1111"
                    },
                    "workPhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "mobilePhoneCountryCode": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "mobilePhone": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "maxLength": 40,
                      "example": "111-111-1112"
                    },
                    "mobilePhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "workPhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    },
                    "mobilePhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    }
                  },
                  "required": [
                    "contactType"
                  ]
                }
              },
              "attachments": {
                "type": "array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API",
                "items": {
                  "title": "Attachment",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Attachement Id generated from Attachment Api",
                      "minLength": 1,
                      "example": "eb9ab7e9-3785-41e4-af24-112dff"
                    },
                    "name": {
                      "type": "string",
                      "description": "Attachment file name. Please make sure to select an attachment name which is used while uploading via the attachment api.",
                      "minLength": 1,
                      "example": "eb9ab7e9-3785-41e4-af24-asfsa5424"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              },
              "serviceDetails": {
                "type": "object",
                "description": "Use this object to pass all trouble related information.",
                "required": [
                  "incidentDateTime",
                  "problemCode"
                ],
                "properties": {
                  "incidentDateTime": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Date and time of received event (ISO Date)<br> Cannot be in the future. ",
                    "example": "2017-04-05T12:00:00Z"
                  },
                  "problemCode": {
                    "type": "string",
                    "enum": [
                      "cc01",
                      "cc02",
                      "cc03",
                      "net01",
                      "net02",
                      "env01",
                      "env02",
                      "env03",
                      "env04",
                      "hdw01",
                      "pwr01",
                      "pwr02",
                      "sec01",
                      "sec02",
                      "ms01",
                      "ms04",
                      "ms05",
                      "ms06",
                      "ms07",
                      "ms08",
                      "ms12",
                      "ms13",
                      "sv04",
                      "sv02",
                      "sv03",
                      "sv05",
                      "sv01"
                    ],
                    "description": "Code matching the problem description. For more details see API /orders/troubleticket/types"
                  },
                  "serviceName": {
                    "type": "string",
                    "enum": [
                      "Firewall Issue",
                      "VPN Issue",
                      "Load Balancer Issue",
                      "DDoS Mitigation Issue",
                      "Storage Issue",
                      "Performance Issue",
                      "Backup to disk Issue",
                      "Backup to tape Issue",
                      "Missing Tape",
                      "Device Monitoring Issue",
                      "OS Issue",
                      "Network Device Issue",
                      "Other"
                    ],
                    "description": "Subcategory for managed services. It will be a mandatory field for managed services trouble ticket",
                    "example": "Firewall Issue"
                  },
                  "callMeFromCage": {
                    "type": "boolean",
                    "description": "Allow the technician to call from the cage.",
                    "example": false
                  },
                  "needSupportFromASubmarineCableStationEngineer": {
                    "type": "boolean",
                    "description": "This flag is only applicable to Submarine Cable IBXs",
                    "example": false
                  },
                  "additionalDetails": {
                    "type": "string",
                    "description": "Use this field to enter any information that applies to this trouble ticket request.",
                    "minLength": 1,
                    "maxLength": 4000
                  }
                }
              }
            },
            "example": {
              "customerReferenceNumber": "RQT0036422",
              "ibxLocation": {
                "ibx": "CH1",
                "cages": [
                  {
                    "cage": "CH1:05:000750",
                    "accountNumber": "12345",
                    "cabinets": [
                      "CH1:05:000750:01"
                    ]
                  }
                ]
              },
              "serviceDetails": {
                "incidentDateTime": "2019-04-10T13:45:59.123Z",
                "problemCode": "ms13",
                "serviceName": "OS Issue",
                "callMeFromCage": true,
                "additionalDetails": "test"
              },
              "contacts": [
                {
                  "contactType": "ORDERING",
                  "userName": "test"
                },
                {
                  "contactType": "NOTIFICATION",
                  "userName": "test"
                },
                {
                  "contactType": "TECHNICAL",
                  "userName": "test",
                  "workPhone": "1111111",
                  "workPhonePrefToCall": "ANYTIME",
                  "mobilePhone": "1111111",
                  "mobilePhonePrefToCall": "ANYTIME"
                }
              ],
              "attachments": [
                {
                  "id": "eb9ab7e9-3785-41e4-af24-74b8dc37b254",
                  "name": "test.pdf"
                }
              ]
            }
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Trouble Ticket Response",
          "type": "object",
          "properties": {
            "OrderNumber": {
              "type": "string",
              "description": "Order Number",
              "example": "1-108124419634"
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/placeTroubleTicketOrder"
      },
      "task": true
    },
    {
      "name": "searchUser",
      "summary": "Search Users in Organization",
      "description": "This API returns all users in your organization based on the given parameters. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.",
      "input": [
        {
          "name": "q",
          "type": "array",
          "info": "Free-text search string: array",
          "required": false,
          "schema": {
            "title": "q",
            "type": "array"
          }
        },
        {
          "name": "filters",
          "type": "array",
          "info": "Apply the free-text search string to specified fields. When not specified, all predefined filter fields will be matched. When the free-text search string is not given, th...(description truncated): array",
          "required": false,
          "schema": {
            "title": "filters",
            "type": "array"
          }
        },
        {
          "name": "searchType",
          "type": "string",
          "info": "Control how the free-text search string should be applied. When not specified, the default searchType is 'CONTAINS'. When the free-text search string is not given, the se...(description truncated): Must be one of [CONTAINS, EXACT_MATCH, STARTS_WITH, ENDS_WITH]",
          "required": false,
          "schema": {
            "title": "searchType",
            "type": "string"
          }
        },
        {
          "name": "statuses",
          "type": "array",
          "info": "Search users with any of the statuses. When not specified, the default statuses include NEW, APPROVED, ACTIVE, INACTIVE and LOCKED.: array",
          "required": false,
          "schema": {
            "title": "statuses",
            "type": "array"
          }
        },
        {
          "name": "favoriteOnly",
          "type": "boolean",
          "info": "Search only favorite users. When not specified or set as FALSE, the search ignores whether a user is a favorite of the logged-in user.: boolean",
          "required": false,
          "schema": {
            "title": "favoriteOnly",
            "type": "boolean"
          }
        },
        {
          "name": "forOrg",
          "type": "string",
          "info": "Search user for a particular organization. It accepts an organization ID or 'ALL'. When not specified, the search will be limited to the logged-in user's organization.: string",
          "required": false,
          "schema": {
            "title": "forOrg",
            "type": "string"
          }
        },
        {
          "name": "permissions",
          "type": "array",
          "info": "Search users using permission codes. Multiple permissions can be provided with comma separated values in each. Users having any of the permissions within one parameter wi...(description truncated): array",
          "required": false,
          "schema": {
            "title": "permissions",
            "type": "array"
          }
        },
        {
          "name": "permissibleIbxs",
          "type": "array",
          "info": "Search users with the specified permission on any of the IBXs. When not specified, the search ignores this criteria.: array",
          "required": false,
          "schema": {
            "title": "permissibleIbxs",
            "type": "array"
          }
        },
        {
          "name": "permissibleCages",
          "type": "array",
          "info": "Search users with the specified permission on any of the Cages. When not specified, the search ignores this criteria.: array",
          "required": false,
          "schema": {
            "title": "permissibleCages",
            "type": "array"
          }
        },
        {
          "name": "roles",
          "type": "array",
          "info": "Search users with any of the roles. When not specified, the search ignores this criteria.: array",
          "required": false,
          "schema": {
            "title": "roles",
            "type": "array"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Use offset and limit to restrict the number of users in the output. Offset controls the number of users to be skipped when returning the response. The default value is 0.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Use offset and limit to restrict the number of users in the output. Limit restricts the number of users in the response. The default value is 10.: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        },
        {
          "name": "sorts",
          "type": "array",
          "info": "Sort the users in the response in a particular order. For descending order, prefix the field name with '-'. For example, use 'FIRST_NAME' to sort the users by first name ...(description truncated): array",
          "required": false,
          "schema": {
            "title": "sorts",
            "type": "array"
          }
        },
        {
          "name": "isOnboarded",
          "type": "boolean",
          "info": "Search users by whether they have been onboarded. When not specified, the search ignores this criteria. A user is onboarded when he/she has created his/her password, serv...(description truncated): boolean",
          "required": false,
          "schema": {
            "title": "isOnboarded",
            "type": "boolean"
          }
        },
        {
          "name": "hasPortalAccess",
          "type": "boolean",
          "info": "Search users by whether they have access to portals. When not specified, the search ignores this criteria.: boolean",
          "required": false,
          "schema": {
            "title": "hasPortalAccess",
            "type": "boolean"
          }
        },
        {
          "name": "isManageable",
          "type": "boolean",
          "info": "Search users by whether the acting user has manage permission on them. When not specified, the search ignores this criteria.: boolean",
          "required": false,
          "schema": {
            "title": "isManageable",
            "type": "boolean"
          }
        },
        {
          "name": "excludeSelf",
          "type": "boolean",
          "info": "Search users excluding the acting user in the response.: boolean",
          "required": false,
          "schema": {
            "title": "excludeSelf",
            "type": "boolean"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Search User Response Type",
          "type": "object",
          "properties": {
            "data": {
              "type": "array",
              "items": {
                "title": "User Response Type",
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "Username or desired username - Auto-generated if the user does not enter the data.",
                    "example": "username_1"
                  },
                  "firstName": {
                    "type": "string",
                    "description": "First name",
                    "example": "John"
                  },
                  "lastName": {
                    "type": "string",
                    "description": "Last name",
                    "example": "Doe"
                  },
                  "localFullName": {
                    "type": "string",
                    "description": "Local name of the user",
                    "example": "John Hübner"
                  },
                  "locale": {
                    "type": "string",
                    "description": "Language",
                    "example": "EN_US"
                  },
                  "timeZone": {
                    "type": "string",
                    "description": "Timezone of the user",
                    "example": "America/Los_Angeles"
                  },
                  "role": {
                    "type": "string",
                    "description": "Role of the user. Possible values are MASTER_ADMIN, IBX_ADMIN, USER",
                    "example": "MASTER_ADMIN"
                  },
                  "company": {
                    "title": "Company Type",
                    "type": "object",
                    "properties": {
                      "companyName": {
                        "type": "string",
                        "description": "Name of the company",
                        "example": "My Company Inc."
                      },
                      "localCompanyName": {
                        "type": "string",
                        "description": "Local name of the company in multi-languages",
                        "example": "My Company Local Name"
                      },
                      "orgId": {
                        "type": "string",
                        "description": "Org Id of the user",
                        "example": "12345"
                      },
                      "orgName": {
                        "type": "string",
                        "description": "Organization name in the system",
                        "example": "My Organization Inc."
                      },
                      "affiliatedOrgs": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "123",
                          "456"
                        ]
                      }
                    }
                  },
                  "contact": {
                    "title": "Contact Type",
                    "type": "object",
                    "properties": {
                      "email": {
                        "type": "string",
                        "format": "email",
                        "maxLength": 100,
                        "pattern": "^[A-Za-z0-9.!#$%&'*+\\-/=?^_`{|}~]+@[A-Za-z0-9.&\\-_]+\\.[À-ÿA-Za-z0-9]{2,10}$",
                        "description": "Email Address",
                        "example": "abc@email.com"
                      },
                      "secondaryEmail": {
                        "type": "string",
                        "format": "email",
                        "maxLength": 100,
                        "pattern": "^[A-Za-z0-9.!#$%&'*+\\-/=?^_`{|}~]+@[A-Za-z0-9.&\\-_]+\\.[À-ÿA-Za-z0-9]{2,10}$",
                        "description": "Email Address",
                        "example": "abc@email.com"
                      },
                      "fax": {
                        "title": "Phone Number Type",
                        "type": "object",
                        "properties": {
                          "countryCode": {
                            "type": "string",
                            "description": "Country Code",
                            "enum": [
                              "+1",
                              "+81",
                              "+31",
                              "+49",
                              "+41",
                              "+44",
                              "+86",
                              "+61",
                              "+55",
                              "+33",
                              "+852",
                              "+971",
                              "+65",
                              "+62",
                              "+39",
                              "+93",
                              "+355",
                              "+213",
                              "+376",
                              "+244",
                              "+672",
                              "+54",
                              "+374",
                              "+297",
                              "+43",
                              "+994",
                              "+973",
                              "+880",
                              "+375",
                              "+32",
                              "+501",
                              "+229",
                              "+975",
                              "+591",
                              "+387",
                              "+267",
                              "+246",
                              "+673",
                              "+359",
                              "+226",
                              "+257",
                              "+855",
                              "+237",
                              "+238",
                              "+236",
                              "+235",
                              "+56",
                              "+57",
                              "+269",
                              "+682",
                              "+506",
                              "+385",
                              "+53",
                              "+599",
                              "+357",
                              "+420",
                              "+243",
                              "+45",
                              "+253",
                              "+670",
                              "+593",
                              "+20",
                              "+503",
                              "+240",
                              "+291",
                              "+372",
                              "+251",
                              "+500",
                              "+298",
                              "+679",
                              "+358",
                              "+689",
                              "+241",
                              "+220",
                              "+995",
                              "+233",
                              "+350",
                              "+30",
                              "+299",
                              "+502",
                              "+224",
                              "+245",
                              "+592",
                              "+509",
                              "+504",
                              "+36",
                              "+354",
                              "+91",
                              "+98",
                              "+964",
                              "+353",
                              "+972",
                              "+225",
                              "+962",
                              "+254",
                              "+686",
                              "+965",
                              "+996",
                              "+856",
                              "+371",
                              "+961",
                              "+266",
                              "+231",
                              "+218",
                              "+423",
                              "+370",
                              "+352",
                              "+853",
                              "+389",
                              "+261",
                              "+265",
                              "+60",
                              "+960",
                              "+223",
                              "+356",
                              "+692",
                              "+222",
                              "+230",
                              "+262",
                              "+52",
                              "+691",
                              "+373",
                              "+377",
                              "+976",
                              "+382",
                              "+212",
                              "+258",
                              "+95",
                              "+264",
                              "+674",
                              "+977",
                              "+687",
                              "+64",
                              "+505",
                              "+227",
                              "+234",
                              "+683",
                              "+850",
                              "+47",
                              "+968",
                              "+92",
                              "+680",
                              "+507",
                              "+675",
                              "+595",
                              "+51",
                              "+63",
                              "+48",
                              "+351",
                              "+974",
                              "+242",
                              "+40",
                              "+7",
                              "+250",
                              "+590",
                              "+290",
                              "+508",
                              "+685",
                              "+378",
                              "+239",
                              "+966",
                              "+221",
                              "+381",
                              "+248",
                              "+232",
                              "+421",
                              "+386",
                              "+677",
                              "+252",
                              "+27",
                              "+82",
                              "+34",
                              "+94",
                              "+249",
                              "+597",
                              "+268",
                              "+46",
                              "+963",
                              "+886",
                              "+992",
                              "+255",
                              "+66",
                              "+228",
                              "+690",
                              "+676",
                              "+216",
                              "+90",
                              "+993",
                              "+688",
                              "+256",
                              "+380",
                              "+598",
                              "+998",
                              "+678",
                              "+379",
                              "+58",
                              "+84",
                              "+681",
                              "+967",
                              "+260",
                              "+263"
                            ],
                            "example": "+1"
                          },
                          "phoneNumber": {
                            "type": "string",
                            "description": "Phone number allowed special characters are -.() and spaces. First character should either be numeric digit or '('. Last character should only be a numeric digit.",
                            "example": "11111111",
                            "maxLength": 30,
                            "pattern": "^[0-9(]+[0-9-.()\\s]+[0-9]+$"
                          }
                        },
                        "required": [
                          "countryCode",
                          "phoneNumber"
                        ]
                      },
                      "mobilePhone": {
                        "title": "Phone Number Type",
                        "type": "object",
                        "properties": {
                          "countryCode": {
                            "type": "string",
                            "description": "Country Code",
                            "enum": [
                              "+1",
                              "+81",
                              "+31",
                              "+49",
                              "+41",
                              "+44",
                              "+86",
                              "+61",
                              "+55",
                              "+33",
                              "+852",
                              "+971",
                              "+65",
                              "+62",
                              "+39",
                              "+93",
                              "+355",
                              "+213",
                              "+376",
                              "+244",
                              "+672",
                              "+54",
                              "+374",
                              "+297",
                              "+43",
                              "+994",
                              "+973",
                              "+880",
                              "+375",
                              "+32",
                              "+501",
                              "+229",
                              "+975",
                              "+591",
                              "+387",
                              "+267",
                              "+246",
                              "+673",
                              "+359",
                              "+226",
                              "+257",
                              "+855",
                              "+237",
                              "+238",
                              "+236",
                              "+235",
                              "+56",
                              "+57",
                              "+269",
                              "+682",
                              "+506",
                              "+385",
                              "+53",
                              "+599",
                              "+357",
                              "+420",
                              "+243",
                              "+45",
                              "+253",
                              "+670",
                              "+593",
                              "+20",
                              "+503",
                              "+240",
                              "+291",
                              "+372",
                              "+251",
                              "+500",
                              "+298",
                              "+679",
                              "+358",
                              "+689",
                              "+241",
                              "+220",
                              "+995",
                              "+233",
                              "+350",
                              "+30",
                              "+299",
                              "+502",
                              "+224",
                              "+245",
                              "+592",
                              "+509",
                              "+504",
                              "+36",
                              "+354",
                              "+91",
                              "+98",
                              "+964",
                              "+353",
                              "+972",
                              "+225",
                              "+962",
                              "+254",
                              "+686",
                              "+965",
                              "+996",
                              "+856",
                              "+371",
                              "+961",
                              "+266",
                              "+231",
                              "+218",
                              "+423",
                              "+370",
                              "+352",
                              "+853",
                              "+389",
                              "+261",
                              "+265",
                              "+60",
                              "+960",
                              "+223",
                              "+356",
                              "+692",
                              "+222",
                              "+230",
                              "+262",
                              "+52",
                              "+691",
                              "+373",
                              "+377",
                              "+976",
                              "+382",
                              "+212",
                              "+258",
                              "+95",
                              "+264",
                              "+674",
                              "+977",
                              "+687",
                              "+64",
                              "+505",
                              "+227",
                              "+234",
                              "+683",
                              "+850",
                              "+47",
                              "+968",
                              "+92",
                              "+680",
                              "+507",
                              "+675",
                              "+595",
                              "+51",
                              "+63",
                              "+48",
                              "+351",
                              "+974",
                              "+242",
                              "+40",
                              "+7",
                              "+250",
                              "+590",
                              "+290",
                              "+508",
                              "+685",
                              "+378",
                              "+239",
                              "+966",
                              "+221",
                              "+381",
                              "+248",
                              "+232",
                              "+421",
                              "+386",
                              "+677",
                              "+252",
                              "+27",
                              "+82",
                              "+34",
                              "+94",
                              "+249",
                              "+597",
                              "+268",
                              "+46",
                              "+963",
                              "+886",
                              "+992",
                              "+255",
                              "+66",
                              "+228",
                              "+690",
                              "+676",
                              "+216",
                              "+90",
                              "+993",
                              "+688",
                              "+256",
                              "+380",
                              "+598",
                              "+998",
                              "+678",
                              "+379",
                              "+58",
                              "+84",
                              "+681",
                              "+967",
                              "+260",
                              "+263"
                            ],
                            "example": "+1"
                          },
                          "phoneNumber": {
                            "type": "string",
                            "description": "Phone number allowed special characters are -.() and spaces. First character should either be numeric digit or '('. Last character should only be a numeric digit.",
                            "example": "11111111",
                            "maxLength": 30,
                            "pattern": "^[0-9(]+[0-9-.()\\s]+[0-9]+$"
                          }
                        },
                        "required": [
                          "countryCode",
                          "phoneNumber"
                        ]
                      },
                      "primaryPhone": {
                        "title": "Phone Number Type",
                        "type": "object",
                        "properties": {
                          "countryCode": {
                            "type": "string",
                            "description": "Country Code",
                            "enum": [
                              "+1",
                              "+81",
                              "+31",
                              "+49",
                              "+41",
                              "+44",
                              "+86",
                              "+61",
                              "+55",
                              "+33",
                              "+852",
                              "+971",
                              "+65",
                              "+62",
                              "+39",
                              "+93",
                              "+355",
                              "+213",
                              "+376",
                              "+244",
                              "+672",
                              "+54",
                              "+374",
                              "+297",
                              "+43",
                              "+994",
                              "+973",
                              "+880",
                              "+375",
                              "+32",
                              "+501",
                              "+229",
                              "+975",
                              "+591",
                              "+387",
                              "+267",
                              "+246",
                              "+673",
                              "+359",
                              "+226",
                              "+257",
                              "+855",
                              "+237",
                              "+238",
                              "+236",
                              "+235",
                              "+56",
                              "+57",
                              "+269",
                              "+682",
                              "+506",
                              "+385",
                              "+53",
                              "+599",
                              "+357",
                              "+420",
                              "+243",
                              "+45",
                              "+253",
                              "+670",
                              "+593",
                              "+20",
                              "+503",
                              "+240",
                              "+291",
                              "+372",
                              "+251",
                              "+500",
                              "+298",
                              "+679",
                              "+358",
                              "+689",
                              "+241",
                              "+220",
                              "+995",
                              "+233",
                              "+350",
                              "+30",
                              "+299",
                              "+502",
                              "+224",
                              "+245",
                              "+592",
                              "+509",
                              "+504",
                              "+36",
                              "+354",
                              "+91",
                              "+98",
                              "+964",
                              "+353",
                              "+972",
                              "+225",
                              "+962",
                              "+254",
                              "+686",
                              "+965",
                              "+996",
                              "+856",
                              "+371",
                              "+961",
                              "+266",
                              "+231",
                              "+218",
                              "+423",
                              "+370",
                              "+352",
                              "+853",
                              "+389",
                              "+261",
                              "+265",
                              "+60",
                              "+960",
                              "+223",
                              "+356",
                              "+692",
                              "+222",
                              "+230",
                              "+262",
                              "+52",
                              "+691",
                              "+373",
                              "+377",
                              "+976",
                              "+382",
                              "+212",
                              "+258",
                              "+95",
                              "+264",
                              "+674",
                              "+977",
                              "+687",
                              "+64",
                              "+505",
                              "+227",
                              "+234",
                              "+683",
                              "+850",
                              "+47",
                              "+968",
                              "+92",
                              "+680",
                              "+507",
                              "+675",
                              "+595",
                              "+51",
                              "+63",
                              "+48",
                              "+351",
                              "+974",
                              "+242",
                              "+40",
                              "+7",
                              "+250",
                              "+590",
                              "+290",
                              "+508",
                              "+685",
                              "+378",
                              "+239",
                              "+966",
                              "+221",
                              "+381",
                              "+248",
                              "+232",
                              "+421",
                              "+386",
                              "+677",
                              "+252",
                              "+27",
                              "+82",
                              "+34",
                              "+94",
                              "+249",
                              "+597",
                              "+268",
                              "+46",
                              "+963",
                              "+886",
                              "+992",
                              "+255",
                              "+66",
                              "+228",
                              "+690",
                              "+676",
                              "+216",
                              "+90",
                              "+993",
                              "+688",
                              "+256",
                              "+380",
                              "+598",
                              "+998",
                              "+678",
                              "+379",
                              "+58",
                              "+84",
                              "+681",
                              "+967",
                              "+260",
                              "+263"
                            ],
                            "example": "+1"
                          },
                          "phoneNumber": {
                            "type": "string",
                            "description": "Phone number allowed special characters are -.() and spaces. First character should either be numeric digit or '('. Last character should only be a numeric digit.",
                            "example": "11111111",
                            "maxLength": 30,
                            "pattern": "^[0-9(]+[0-9-.()\\s]+[0-9]+$"
                          }
                        },
                        "required": [
                          "countryCode",
                          "phoneNumber"
                        ]
                      }
                    },
                    "required": [
                      "email",
                      "primaryPhone"
                    ]
                  },
                  "setting": {
                    "title": "User Setting Type",
                    "type": "object",
                    "properties": {
                      "initialActivationTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Date and time of the first activation of the user",
                        "example": "2017-04-05T12:00:00Z"
                      },
                      "activationTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Date and time of the activation of the user if any",
                        "example": "2017-04-05T12:00:00Z"
                      },
                      "inactivationTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Date and time of the deactivation of the user if any",
                        "example": "2017-04-05T12:00:00Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "Status of the User",
                        "enum": [
                          "ACTIVE",
                          "NEW",
                          "APPROVED",
                          "INACTIVE",
                          "TERMINATED",
                          "REJECTED",
                          "LOCKED"
                        ]
                      },
                      "securityProfileStatus": {
                        "type": "string",
                        "description": "Status to indicate whether user have completed the security profile to enter the ibx",
                        "enum": [
                          "COMPLETED",
                          "NOT_COMPLETED",
                          "NA"
                        ]
                      },
                      "terminationTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Date and time of the termination of the user if any",
                        "example": "2017-04-05T12:00:00Z"
                      },
                      "terminationReason": {
                        "type": "string",
                        "description": "Reason of termination",
                        "example": "Left the job"
                      }
                    }
                  },
                  "audit": {
                    "title": "Audit Type",
                    "type": "object",
                    "properties": {
                      "createdTimestamp": {
                        "type": "string",
                        "description": "Creation date and time of the user",
                        "format": "date-time"
                      },
                      "updatedTimestamp": {
                        "type": "string",
                        "description": "Updated time of the user",
                        "format": "date-time"
                      }
                    }
                  },
                  "flags": {
                    "title": "User Flags Type",
                    "type": "object",
                    "properties": {
                      "isFavorite": {
                        "type": "boolean",
                        "description": "Flag to Indicate whether the user is marked as favorite or not",
                        "example": true
                      },
                      "isIbxAdmin": {
                        "type": "boolean",
                        "description": "Flag to Indicate whether the user is marked as IBX administrators or not",
                        "example": true
                      },
                      "isMasterAdmin": {
                        "type": "boolean",
                        "description": "Flag to Indicate whether the user is marked as master administrators or not",
                        "example": true
                      },
                      "isLocked": {
                        "type": "boolean",
                        "description": "Flag to indicate whether the user is locked or not.",
                        "example": true
                      },
                      "isSecurityQuestionSet": {
                        "type": "boolean",
                        "description": "Flag to indicate whether the user has set security question or not",
                        "example": true
                      },
                      "isOnboarded": {
                        "type": "boolean",
                        "description": "Flag to indicate whether the user has completed the onboarding process i.e. security questions & answers, user pin, and user password are all set",
                        "example": true
                      },
                      "isPortalAccess": {
                        "type": "boolean",
                        "description": "Flag to indicate whether the user has any portal permission",
                        "example": true
                      },
                      "isManageable": {
                        "type": "boolean",
                        "description": "Flag to indicate whether the logged-in user has manage permission on the user",
                        "example": true
                      },
                      "isResellerContact": {
                        "type": "boolean",
                        "description": "Flag to indicate whether the user is a reseller contact for any subcustomer",
                        "example": true
                      }
                    }
                  }
                }
              }
            },
            "page": {
              "title": "Page Info Type",
              "type": "object",
              "properties": {
                "total": {
                  "type": "integer",
                  "description": "total number of the records",
                  "example": 150
                },
                "limit": {
                  "type": "integer",
                  "description": "number of the records limited in the result ",
                  "example": 20
                },
                "offset": {
                  "type": "integer",
                  "description": "Offset number of the start record in the result ",
                  "example": 20
                },
                "sorts": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Sort Criteria applied on the result",
                  "example": [
                    "-FIRST_NAME"
                  ]
                }
              }
            },
            "_links": {
              "title": "Links Type",
              "type": "object",
              "properties": {
                "self": {
                  "title": "Link Type",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "URI of the resource",
                      "example": "/users/username_1/"
                    }
                  }
                },
                "next": {
                  "title": "Link Type",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "URI of the resource",
                      "example": "/users/username_1/"
                    }
                  }
                },
                "prev": {
                  "title": "Link Type",
                  "type": "object",
                  "properties": {
                    "href": {
                      "type": "string",
                      "description": "URI of the resource",
                      "example": "/users/username_1/"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/searchUser"
      },
      "task": true
    },
    {
      "name": "workVisitOrder",
      "summary": "Schedule Work Visit",
      "description": "The Post work visit API creates a work visit request to grant IBX visitors access for up to two weeks. This can only be done under a user with 'IBX Access Services Request' permission.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"contacts\": [{\"contactType\": \"Must be one of [TECHNICAL, ORDERING, NOTIFICATION]\", \"userName\": \"string\", \"name\": \"string\", \"email\": \"string\", \"workPhoneCountryCode\": \"string\", \"workPhone\": \"string\", \"workPhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\", \"mobilePhonePrefToCall\": \"Must be one of [NEVER, ANYTIME, MY_BUSINESS_HOURS, IBX_BUSINESS_HOURS, BUSINESS_HOURS]\", \"workPhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\", \"mobilePhoneTimeZone\": \"Must be one of [Atlantic/Canary, Europe/Dublin, Europe/London, Europe/Lisbon, Africa/Algiers, Europe/Berlin, Europe/Amsterdam, Europe/Copenhagen, Europe/Madrid, Europe/Paris, Europe/Stockholm, Europe/Zurich, Europe/Warsaw, Africa/Cairo, Africa/Johannesburg, Europe/Sofia, Africa/Nairobi, Asia/Jerusalem, Europe/Istanbul, Europe/Moscow, Asia/Riyadh, Asia/Dubai, Asia/Kabul, Asia/Tehran, Asia/Karachi, Indian/Maldives, Asia/Kolkata, Asia/Kathmandu, Asia/Omsk, Asia/Rangoon, Asia/Jakarta, Asia/Ho_Chi_Minh, Asia/Brunei, Asia/Hong_Kong, Asia/Kuala_Lumpur, Asia/Manila, Asia/Shanghai, Asia/Singapore, Asia/Taipei, Australia/Perth, Asia/Seoul, Asia/Tokyo, Australia/Darwin, Australia/Brisbane, Pacific/Guam, Australia/Adelaide, Australia/Sydney, Pacific/Auckland, Pacific/Chatham, Indian/Christmas, America/Scoresbysund, Atlantic/South_Georgia, America/Sao_Paulo, America/Detroit, America/New_York, America/Puerto_Rico, America/Toronto, America/Bogota, America/Chicago, America/Winnipeg, America/Denver, America/Edmonton, America/Mexico_City, America/Los_Angeles, America/Vancouver, America/Phoenix, America/Anchorage, Pacific/Gambier, Pacific/Marquesas, Pacific/Honolulu, Pacific/Fiji, Asia/Muscat, America/Argentina/Buenos_Aires, America/Caracas, Etc/GMT+12, UTC, GMT, America/Santiago, America/St_Johns, Asia/Almaty, Asia/Bankgkok, Asia/Calcutta, Asia/Magadan, Asia/Yekaterinburg, Australia/Eucla, Australia/Lord_Howe, Europe/Bratislava, Europe/Brussels, Europe/Prague, Europe/Rome, Pacific/Kiritimati, Pacific/Midway, Pacific/Tongatapu]\"}], \"customerReferenceNumber\": \"string\", \"ibxLocation\": {\"ibx\": \"string\", \"cages\": [{\"cage\": \"string\", \"cabinets\": \"array\", \"accountNumber\": \"string\"}]}, \"attachments\": [{\"id\": \"string\", \"name\": \"string\"}], \"serviceDetails\": {\"additionalDetails\": \"string\", \"schedule\": {\"startDateTime\": \"string\", \"endDateTime\": \"string\"}, \"visitors\": [{\"userName\": \"string\", \"firstName\": \"string\", \"lastName\": \"string\", \"company\": \"string\", \"email\": \"string\", \"mobilePhoneCountryCode\": \"string\", \"mobilePhone\": \"string\"}], \"openCabinet\": \"boolean\", \"supervisionRequired\": \"boolean\"}}",
          "required": false,
          "schema": {
            "title": "Work Visit Request",
            "type": "object",
            "properties": {
              "contacts": {
                "type": "array",
                "description": "Use this array to pass ordering contact, notification contacts and technical contact. Only one ordering contact, technical contact is allowed. One or more notification contacts are allowed. Ordering and notification contacts are always registered customers with the customer portal. Only username and contactType are valid for ordering and notification contacts, all other attributes will be ignored. <br> <br> Technical contact is optional. workPhoneCountryCode, workPhone and workPhonePrefToCall attributes are mandatory for Technical Contact(when Provided).  <br><br>  If notification contact is not available to pass, please use ordering contact as notification contact also. <br> ",
                "minItems": 2,
                "items": {
                  "title": "Contact Info",
                  "type": "object",
                  "properties": {
                    "contactType": {
                      "type": "string",
                      "description": "Contact Type, possible values are ORDERING, NOTIFICATION, TECHNICAL",
                      "enum": [
                        "TECHNICAL",
                        "ORDERING",
                        "NOTIFICATION"
                      ],
                      "example": "TECHNICAL"
                    },
                    "userName": {
                      "type": "string",
                      "description": "User Name",
                      "example": "kmo00re@abc.com"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "^[\\s.]*([^\\s.][\\s.]*){0,100}$",
                      "description": "Technical Contact Name",
                      "example": "David"
                    },
                    "email": {
                      "title": "emailDef",
                      "type": "string",
                      "description": "Contact Email",
                      "maxLength": 100
                    },
                    "workPhoneCountryCode": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "workPhone": {
                      "type": "string",
                      "description": "Primary Phone of the contact",
                      "pattern": "^[0-9\\.\\-() ]{2,40}(?:(x|ext).+)?$",
                      "example": "111-111-1111"
                    },
                    "workPhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "mobilePhoneCountryCode": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^\\+[0-9]{1,6}$",
                      "example": "+1"
                    },
                    "mobilePhone": {
                      "type": "string",
                      "description": "Mobile Phone of the contact",
                      "pattern": "^[0-9\\.\\-() ]{2,40}(?:(x|ext).+)?$",
                      "example": "111-111-1112"
                    },
                    "mobilePhonePrefToCall": {
                      "type": "string",
                      "description": "Possible values are NEVER, ANYTIME, BUSINESS_HOURS, MY_BUSINESS_HOURS,IBX_BUSINESS_HOURS. But BUSINESS_HOURS is deprecated and will be removed in future release",
                      "enum": [
                        "NEVER",
                        "ANYTIME",
                        "MY_BUSINESS_HOURS",
                        "IBX_BUSINESS_HOURS",
                        "BUSINESS_HOURS"
                      ],
                      "example": "ANYTIME"
                    },
                    "workPhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    },
                    "mobilePhoneTimeZone": {
                      "title": "TimeZoneEnum",
                      "type": "string",
                      "description": "Time Zone Enum values.",
                      "example": "America/Los_Angeles",
                      "enum": [
                        "Atlantic/Canary",
                        "Europe/Dublin",
                        "Europe/London",
                        "Europe/Lisbon",
                        "Africa/Algiers",
                        "Europe/Berlin",
                        "Europe/Amsterdam",
                        "Europe/Copenhagen",
                        "Europe/Madrid",
                        "Europe/Paris",
                        "Europe/Stockholm",
                        "Europe/Zurich",
                        "Europe/Warsaw",
                        "Africa/Cairo",
                        "Africa/Johannesburg",
                        "Europe/Sofia",
                        "Africa/Nairobi",
                        "Asia/Jerusalem",
                        "Europe/Istanbul",
                        "Europe/Moscow",
                        "Asia/Riyadh",
                        "Asia/Dubai",
                        "Asia/Kabul",
                        "Asia/Tehran",
                        "Asia/Karachi",
                        "Indian/Maldives",
                        "Asia/Kolkata",
                        "Asia/Kathmandu",
                        "Asia/Omsk",
                        "Asia/Rangoon",
                        "Asia/Jakarta",
                        "Asia/Ho_Chi_Minh",
                        "Asia/Brunei",
                        "Asia/Hong_Kong",
                        "Asia/Kuala_Lumpur",
                        "Asia/Manila",
                        "Asia/Shanghai",
                        "Asia/Singapore",
                        "Asia/Taipei",
                        "Australia/Perth",
                        "Asia/Seoul",
                        "Asia/Tokyo",
                        "Australia/Darwin",
                        "Australia/Brisbane",
                        "Pacific/Guam",
                        "Australia/Adelaide",
                        "Australia/Sydney",
                        "Pacific/Auckland",
                        "Pacific/Chatham",
                        "Indian/Christmas",
                        "America/Scoresbysund",
                        "Atlantic/South_Georgia",
                        "America/Sao_Paulo",
                        "America/Detroit",
                        "America/New_York",
                        "America/Puerto_Rico",
                        "America/Toronto",
                        "America/Bogota",
                        "America/Chicago",
                        "America/Winnipeg",
                        "America/Denver",
                        "America/Edmonton",
                        "America/Mexico_City",
                        "America/Los_Angeles",
                        "America/Vancouver",
                        "America/Phoenix",
                        "America/Anchorage",
                        "Pacific/Gambier",
                        "Pacific/Marquesas",
                        "Pacific/Honolulu",
                        "Pacific/Fiji",
                        "Asia/Muscat",
                        "America/Argentina/Buenos_Aires",
                        "America/Caracas",
                        "Etc/GMT+12",
                        "UTC",
                        "GMT",
                        "America/Santiago",
                        "America/St_Johns",
                        "Asia/Almaty",
                        "Asia/Bankgkok",
                        "Asia/Calcutta",
                        "Asia/Magadan",
                        "Asia/Yekaterinburg",
                        "Australia/Eucla",
                        "Australia/Lord_Howe",
                        "Europe/Bratislava",
                        "Europe/Brussels",
                        "Europe/Prague",
                        "Europe/Rome",
                        "Pacific/Kiritimati",
                        "Pacific/Midway",
                        "Pacific/Tongatapu"
                      ]
                    }
                  },
                  "required": [
                    "contactType"
                  ]
                },
                "example": [
                  {
                    "contactType": "ORDERING",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "NOTIFICATION",
                    "userName": "jondoe@test.com"
                  },
                  {
                    "contactType": "TECHNICAL",
                    "name": "John Doe",
                    "workPhone": "1111111",
                    "workPhonePrefToCall": "ANYTIME",
                    "mobilePhone": "1111111",
                    "mobilePhonePrefToCall": "ANYTIME"
                  }
                ]
              },
              "customerReferenceNumber": {
                "type": "string",
                "description": "You may use numbers and text in this field to enter reference information for your records. This will also appear in your reports and details. You may use this information to search for this content on the submitted requests page.",
                "minLength": 1,
                "maxLength": 50,
                "example": "cust-ref-123"
              },
              "ibxLocation": {
                "title": "IBX Location",
                "type": "object",
                "properties": {
                  "ibx": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10,
                    "example": "AM1"
                  },
                  "cages": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "type": "object",
                      "properties": {
                        "cage": {
                          "type": "string",
                          "minLength": 1,
                          "example": "AM1:0G:00E"
                        },
                        "cabinets": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "0101"
                          }
                        },
                        "accountNumber": {
                          "type": "string",
                          "minLength": 1,
                          "example": "12345"
                        }
                      },
                      "required": [
                        "cage",
                        "accountNumber"
                      ]
                    }
                  }
                },
                "required": [
                  "ibx",
                  "cages"
                ]
              },
              "attachments": {
                "type": "array",
                "description": "Use this to pass uploaded attachments. Attachments need to be uploaded using the attachments API",
                "maxItems": 5,
                "items": {
                  "title": "Attachment",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Attachement Id",
                      "minLength": 1,
                      "example": "eb9ab7e9-3785-41e4-af24-74b8dc37b254"
                    },
                    "name": {
                      "type": "string",
                      "description": "Attachment file name",
                      "minLength": 1,
                      "example": "uecp-finance-service-api-swagger.yml"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              },
              "serviceDetails": {
                "title": "Service Detail",
                "type": "object",
                "properties": {
                  "additionalDetails": {
                    "type": "string",
                    "description": "Any additional information related to work visit",
                    "minLength": 1,
                    "maxLength": 4000,
                    "example": "Additional notes related to order"
                  },
                  "schedule": {
                    "type": "object",
                    "description": "A work visit ticket is active for up to two weeks. For durations longer than two weeks, request security access order",
                    "properties": {
                      "startDateTime": {
                        "type": "string",
                        "description": "Start Date Time (ISO Date)<br> Cannot Past Date.",
                        "format": "date-time",
                        "example": "2017-04-05T10:00:00Z"
                      },
                      "endDateTime": {
                        "type": "string",
                        "description": "End Date Time (ISO Date)<br>Cannot Past Date.",
                        "format": "date-time",
                        "example": "2017-04-05T12:00:00Z"
                      }
                    },
                    "required": [
                      "startDateTime",
                      "endDateTime"
                    ]
                  },
                  "visitors": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 50,
                    "minLength": 1,
                    "items": {
                      "title": "Visitor",
                      "type": "object",
                      "description": "Vistor Information, either username or (firstname,lastname,company) are mandatory",
                      "properties": {
                        "userName": {
                          "type": "string",
                          "description": "Equinix registered username. when username passed other attributes for vistor model will be ignored."
                        },
                        "firstName": {
                          "type": "string",
                          "maxLength": 30,
                          "example": "John"
                        },
                        "lastName": {
                          "type": "string",
                          "maxLength": 30,
                          "example": "Doe"
                        },
                        "company": {
                          "type": "string",
                          "maxLength": 80,
                          "example": "Test Organization"
                        },
                        "email": {
                          "type": "string",
                          "description": "Visitor Email",
                          "example": "abc@xyz.com"
                        },
                        "mobilePhoneCountryCode": {
                          "type": "string",
                          "description": "Mobile country code of the visitor",
                          "pattern": "^\\+[0-9]{1,6}$",
                          "example": "+1"
                        },
                        "mobilePhone": {
                          "type": "string",
                          "description": "Phone number allowed special characters are -.() and spaces. First character should either be numeric digit or '('. Last character should only be a numeric digit.",
                          "maxLength": 40,
                          "example": "111-111-1112",
                          "pattern": "^[0-9(]+[0-9-.()\\s]+[0-9]+$"
                        }
                      }
                    },
                    "example": [
                      {
                        "firstName": "John",
                        "lastName": "Doe",
                        "company": "Test Organization",
                        "email": "abc@xyz.com",
                        "mobilePhoneCountryCode": 1,
                        "mobilePhone": "111-111-1112"
                      },
                      {
                        "userName": "testuser@test.com"
                      }
                    ]
                  },
                  "openCabinet": {
                    "type": "boolean",
                    "default": "false"
                  },
                  "supervisionRequired": {
                    "type": "boolean",
                    "default": "false"
                  }
                },
                "required": [
                  "visitors",
                  "schedule"
                ]
              }
            },
            "required": [
              "ibxLocation",
              "serviceDetails",
              "contacts"
            ]
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "Work Visit Order Item Response",
          "type": "object",
          "properties": {
            "successes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "ibxLocation": {
                    "type": "object",
                    "properties": {
                      "ibx": {
                        "type": "string"
                      },
                      "cageDetails": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "cage": {
                              "type": "string"
                            },
                            "accountNumber": {
                              "type": "string"
                            },
                            "cabinets": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "cabinet": {
                                    "type": "string"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "response": {
                    "type": "object",
                    "properties": {
                      "OrderNumber": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/workVisitOrder"
      },
      "task": true
    }
  ],
  "views": []
}