{
  "id": "@itentialopensource/adapter-calix_cloud_devportal",
  "type": "Adapter",
  "export": "CalixCloudDevportal",
  "title": "Calix_cloud_devportal",
  "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": "getCalloutcomeSubscriberCallOutcome",
      "summary": "Get call outcome data",
      "description": "Get call outcome data for Calix partners",
      "input": [
        {
          "name": "subscriberLocationId",
          "type": "string",
          "info": "Subscriber location id: string",
          "required": true,
          "schema": {
            "title": "subscriberLocationId",
            "type": "string"
          }
        },
        {
          "name": "extref",
          "type": "string",
          "info": "extref value to retrieve call outcome data: string",
          "required": true,
          "schema": {
            "title": "extref",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "description": "Call outcome data",
            "required": [
              "SubscriberId",
              "DeviceId",
              "CallType",
              "Status",
              "RootCause",
              "SubRootCause",
              "Notes"
            ],
            "properties": {
              "SubscriberId": {
                "type": "string",
                "description": "ID of the subscriber",
                "example": 12345
              },
              "DeviceId": {
                "type": "string",
                "description": "ID of the device",
                "example": "CLXN123"
              },
              "CallType": {
                "type": "string",
                "description": "Call type",
                "example": "InBound"
              },
              "Status": {
                "type": "string",
                "description": "Status of the call outcome data",
                "example": "Resolved"
              },
              "RootCause": {
                "type": "string",
                "description": "Root cause of the ticket",
                "example": "Wi-Fi, Hardware"
              },
              "SubRootCause": {
                "type": "string",
                "description": "Sub root cause of the ticket",
                "example": "Wi-Fi interference, Faulty Device"
              },
              "Notes": {
                "type": "string",
                "description": "Description of the ticket",
                "example": "Free text input"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCalloutcomeSubscriberCallOutcome"
      },
      "task": true
    },
    {
      "name": "getCaleaAccessLogs",
      "summary": "Get the Hotspot access logs by subscriber ID or client MAC address.",
      "description": "Get the Hotspot access logs by subscriber ID or client MAC address.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": "Filter Hotspot access logs by the subscriber ID. One of `subscriberId` and `clientMACAddress` must be provided when get the access log.: string",
          "required": false,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "clientMACAddress",
          "type": "string",
          "info": "Filter Hotspot access logs by the client MAC address. One of `subscriberId` and `clientMACAddress` must be provided when get the access log.: string",
          "required": false,
          "schema": {
            "title": "clientMACAddress",
            "type": "string"
          }
        },
        {
          "name": "startDate",
          "type": "string",
          "info": "The start date of the access logs (included). If not set, it use the `endDate - 6`, and timestamps of access logs will be in range `[startDate, endDate]`. The date format...(description truncated): string",
          "required": false,
          "schema": {
            "title": "startDate",
            "type": "string"
          }
        },
        {
          "name": "endDate",
          "type": "string",
          "info": "The end date of the access logs (included). The timestamps of access logs will be in range `[startDate, endDate]`. If not set, it will use today's date. The date format s...(description truncated): 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": "array",
          "items": {
            "type": "object",
            "properties": {
              "date": {
                "description": "The date of the access log.",
                "type": "string",
                "example": "20221018"
              },
              "gatewayMACAddress": {
                "description": "The MAC address of the gateway.",
                "type": "string",
                "example": "b8:94:70:29:9b:ec"
              },
              "eventType": {
                "description": "The type of access event. Currently, supported types are `\"connect\"`, `\"disconnect\"`, and `\"auth_reject\"`.",
                "type": "string",
                "example": "connect"
              },
              "reasonCode": {
                "description": "The reason code from RADIUS server for `\"disconnect\"` and `\"auth_reject\"` event.",
                "type": "string",
                "example": "3"
              },
              "clientInfoVersion": {
                "description": "The client info version.",
                "type": "string",
                "example": "1"
              },
              "serialNumber": {
                "description": "The serial number, aka FSAN.",
                "type": "string",
                "example": "CXNK00FF9BB7"
              },
              "classOfService": {
                "description": "The CoS of the hotspot client.",
                "type": "string",
                "example": "15"
              },
              "communityName": {
                "description": "The community name.",
                "type": "string",
                "example": "temp"
              },
              "timestamp": {
                "description": "The timestamp of the access event/log.",
                "type": "string",
                "example": "1666123521562"
              },
              "subscriberId": {
                "description": "The subscriber ID.",
                "type": "string",
                "example": "6e4f5013-993a-4590-aab7-7afbdee5c215"
              },
              "radioFrequencyBand": {
                "description": "The radio frequency band that the client uses to access the hotspot.",
                "type": "string",
                "example": "5"
              },
              "clientName": {
                "description": "The client name.",
                "type": "string",
                "example": "iPhone"
              },
              "clientType": {
                "description": "The client type.",
                "type": "string",
                "example": "Smart Phone"
              },
              "clientOS": {
                "description": "The client OS.",
                "type": "string",
                "example": "iOS"
              },
              "clientMACAddress": {
                "description": "The client MAC address.",
                "type": "string",
                "example": "cc:08:8d:65:e8:71"
              },
              "clientIPAddress": {
                "description": "The client IP address.",
                "type": "string",
                "example": "172.29.11.149"
              },
              "clientModel": {
                "description": "The client model.",
                "type": "string",
                "example": "iPhone"
              },
              "clientVendor": {
                "description": "The client vendor.",
                "type": "string",
                "example": "Apple"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCaleaAccessLogs"
      },
      "task": true
    },
    {
      "name": "getNetPerfTestCafIITest",
      "summary": "Retrieve all existing CAF II tests, or a single test instance by orgId and name, or for a given dat",
      "description": "This is for externl troubleshooting purposes only.\nWhen creating a new test or changing the name of an existing name, a client needs to make sure the name is unique within the org.\nThe uniqueness check can be done by retrieving existing test with the \"name\" query parameter.\nThe response body will always be a JSON array with 0 or more test instance(s).",
      "input": [
        {
          "name": "name",
          "type": "string",
          "info": "Name of an existing test instance: string",
          "required": false,
          "schema": {
            "title": "name",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "description": "A CAF II Test Instance",
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "_id string"
              },
              "status": {
                "description": "Status of the test",
                "type": "string",
                "enum": [
                  "Scheduled",
                  "Suspended",
                  "In Progress",
                  "Completed"
                ]
              }
            },
            "allOf": [
              {
                "required": [
                  "devices",
                  "name",
                  "numberOfDays",
                  "startDate",
                  "timezone"
                ],
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Name of the test, which must be unique within the org",
                    "example": "CA-2019-Q1-Gold-Internet"
                  },
                  "description": {
                    "type": "string",
                    "description": "A free-form string that describes this test",
                    "example": "2019 Q1 Northern California Gold Internet Subscribers"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "ID String of the timezone used for the test. Must be one of the following timezone IDs.",
                    "example": "America/Chicago",
                    "enum": [
                      "America/Los_Angeles",
                      "America/Denver",
                      "America/Chicago",
                      "America/New_York"
                    ]
                  },
                  "primaryOoklaServerId": {
                    "type": "string",
                    "description": "ID of the primary Ookla server. This field is mandatory if 1 or more Calix CPE(s) are selected."
                  },
                  "secondaryOoklaServerId": {
                    "type": "string",
                    "description": "ID of the secondary Ookla server. This field is optional if 1 or more Calix CPE(s) are selected."
                  },
                  "serviceTierDownloadSpeed": {
                    "minimum": 1,
                    "type": "integer",
                    "description": "Service Tier Download Speed in kbps"
                  },
                  "serviceTierUploadSpeed": {
                    "minimum": 1,
                    "type": "integer",
                    "description": "Service Tier Upload Speed in kbps"
                  },
                  "speedThreshold": {
                    "maximum": 100,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Speed test threshold %. Default to 80%."
                  },
                  "latencyThreshold": {
                    "minimum": 1,
                    "type": "integer",
                    "default": 100,
                    "description": "Latency test threshold in"
                  },
                  "downloadUrl": {
                    "type": "string",
                    "description": "TR143 Download URL"
                  },
                  "uploadUrl": {
                    "type": "string",
                    "description": "TR143 Upload URL"
                  },
                  "uploadFileSize": {
                    "type": "integer",
                    "description": "TR143 Upload File Size",
                    "minimum": 1
                  },
                  "startDate": {
                    "type": "string",
                    "description": "Start Date of the Test"
                  },
                  "numberOfDays": {
                    "maximum": 7,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Number of Days that the test need to run"
                  },
                  "startHour": {
                    "maximum": 23,
                    "minimum": 0,
                    "type": "integer",
                    "description": "Start Hour of the Test. Default to 18 (e.g. 6PM)"
                  },
                  "numberOfHours": {
                    "default": 6,
                    "maximum": 6,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Number of Hours that the test need to run each day. The default value is 6 if startHour is no greater than 18; otherwise, it's 24 minus startHour."
                  },
                  "devices": {
                    "maxItems": 100,
                    "minItems": 1,
                    "type": "array",
                    "example": [
                      "CXNK00112233",
                      "CXNK004E6DEF"
                    ],
                    "items": {
                      "type": "string",
                      "description": "Up to 100 FSAN/serial numbers of CPE devices. Each item in the devices array is the serial number of a CPE device."
                    }
                  }
                },
                "description": "A CAF II Test Request Instance",
                "example": {
                  "name": "CA_10M/1M",
                  "description": "2019 Q1 Northern California Gold Internet Subscribers",
                  "timezone": "America/Chicago",
                  "primaryOoklaServerId": "1234",
                  "speedThreshold": 80,
                  "latencyThreshold": 10,
                  "serviceTierDownloadSpeed": 1000000,
                  "serviceTierUploadSpeed": 1000000,
                  "downloadUrl": "http://9.9.9.9/download/10M",
                  "uploadUrl": "http://9.9.9.9/upload",
                  "uploadFileSize": 1000000,
                  "startDate": "2018-12-12",
                  "numberOfDays": 7,
                  "startHour": 18,
                  "numberOfHours": 6,
                  "devices": [
                    "CXNK00112233",
                    "CXNK004E6DEF"
                  ]
                }
              }
            ]
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getNetPerfTestCafIITest"
      },
      "task": true
    },
    {
      "name": "postNetPerfTestCafIITest",
      "summary": "Create a new CAF II Test instance",
      "description": "Create a new CAF II Test instance",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "A new CAF II Test instance.\n\nPlease do not include any of the internally generated field in the below list:\n* _id\n* status: {\"name\": \"string\", \"description\": \"string\", \"timezone\": \"Must be one of [America/Los_Angeles, America/Denver, America/Chicago, America/New_York]\", \"primaryOoklaServerId\": \"string\", \"secondaryOoklaServerId\": \"string\", \"serviceTierDownloadSpeed\": 123, \"serviceTierUploadSpeed\": 123, \"speedThreshold\": 123, \"latencyThreshold\": 123, \"downloadUrl\": \"string\", \"uploadUrl\": \"string\", \"uploadFileSize\": 123, \"startDate\": \"string\", \"numberOfDays\": 123, \"startHour\": 123, \"numberOfHours\": 123, \"devices\": \"array\"}",
          "required": true,
          "schema": {
            "required": [
              "devices",
              "name",
              "numberOfDays",
              "startDate",
              "timezone"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the test, which must be unique within the org",
                "example": "CA-2019-Q1-Gold-Internet"
              },
              "description": {
                "type": "string",
                "description": "A free-form string that describes this test",
                "example": "2019 Q1 Northern California Gold Internet Subscribers"
              },
              "timezone": {
                "type": "string",
                "description": "ID String of the timezone used for the test. Must be one of the following timezone IDs.",
                "example": "America/Chicago",
                "enum": [
                  "America/Los_Angeles",
                  "America/Denver",
                  "America/Chicago",
                  "America/New_York"
                ]
              },
              "primaryOoklaServerId": {
                "type": "string",
                "description": "ID of the primary Ookla server. This field is mandatory if 1 or more Calix CPE(s) are selected."
              },
              "secondaryOoklaServerId": {
                "type": "string",
                "description": "ID of the secondary Ookla server. This field is optional if 1 or more Calix CPE(s) are selected."
              },
              "serviceTierDownloadSpeed": {
                "minimum": 1,
                "type": "integer",
                "description": "Service Tier Download Speed in kbps"
              },
              "serviceTierUploadSpeed": {
                "minimum": 1,
                "type": "integer",
                "description": "Service Tier Upload Speed in kbps"
              },
              "speedThreshold": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "description": "Speed test threshold %. Default to 80%."
              },
              "latencyThreshold": {
                "minimum": 1,
                "type": "integer",
                "default": 100,
                "description": "Latency test threshold in"
              },
              "downloadUrl": {
                "type": "string",
                "description": "TR143 Download URL"
              },
              "uploadUrl": {
                "type": "string",
                "description": "TR143 Upload URL"
              },
              "uploadFileSize": {
                "type": "integer",
                "description": "TR143 Upload File Size",
                "minimum": 1
              },
              "startDate": {
                "type": "string",
                "description": "Start Date of the Test"
              },
              "numberOfDays": {
                "maximum": 7,
                "minimum": 1,
                "type": "integer",
                "description": "Number of Days that the test need to run"
              },
              "startHour": {
                "maximum": 23,
                "minimum": 0,
                "type": "integer",
                "description": "Start Hour of the Test. Default to 18 (e.g. 6PM)"
              },
              "numberOfHours": {
                "default": 6,
                "maximum": 6,
                "minimum": 1,
                "type": "integer",
                "description": "Number of Hours that the test need to run each day. The default value is 6 if startHour is no greater than 18; otherwise, it's 24 minus startHour."
              },
              "devices": {
                "maxItems": 100,
                "minItems": 1,
                "type": "array",
                "example": [
                  "CXNK00112233",
                  "CXNK004E6DEF"
                ],
                "items": {
                  "type": "string",
                  "description": "Up to 100 FSAN/serial numbers of CPE devices. Each item in the devices array is the serial number of a CPE device."
                }
              }
            },
            "description": "A CAF II Test Request Instance",
            "example": {
              "name": "CA_10M/1M",
              "description": "2019 Q1 Northern California Gold Internet Subscribers",
              "timezone": "America/Chicago",
              "primaryOoklaServerId": "1234",
              "speedThreshold": 80,
              "latencyThreshold": 10,
              "serviceTierDownloadSpeed": 1000000,
              "serviceTierUploadSpeed": 1000000,
              "downloadUrl": "http://9.9.9.9/download/10M",
              "uploadUrl": "http://9.9.9.9/upload",
              "uploadFileSize": 1000000,
              "startDate": "2018-12-12",
              "numberOfDays": 7,
              "startHour": 18,
              "numberOfHours": 6,
              "devices": [
                "CXNK00112233",
                "CXNK004E6DEF"
              ]
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postNetPerfTestCafIITest"
      },
      "task": true
    },
    {
      "name": "getNetPerfTestCafIITestId",
      "summary": "Retrieve an existing CAF II test by _id string",
      "description": "Retrieve an existing CAF II test by _id string",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "The _id string of an existing CAF II test instance: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getNetPerfTestCafIITestId"
      },
      "task": true
    },
    {
      "name": "putNetPerfTestCafIITestId",
      "summary": "Update an existing test",
      "description": "Misc notes:\n - Editing is not allowed once test has started.",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "The _id string of an existing test: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Updated test: {\"_id\": \"string\", \"status\": \"Must be one of [Scheduled, Suspended, In Progress, Completed]\"}",
          "required": true,
          "schema": {
            "description": "A CAF II Test Instance",
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "_id string"
              },
              "status": {
                "description": "Status of the test",
                "type": "string",
                "enum": [
                  "Scheduled",
                  "Suspended",
                  "In Progress",
                  "Completed"
                ]
              }
            },
            "allOf": [
              {
                "required": [
                  "devices",
                  "name",
                  "numberOfDays",
                  "startDate",
                  "timezone"
                ],
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Name of the test, which must be unique within the org",
                    "example": "CA-2019-Q1-Gold-Internet"
                  },
                  "description": {
                    "type": "string",
                    "description": "A free-form string that describes this test",
                    "example": "2019 Q1 Northern California Gold Internet Subscribers"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "ID String of the timezone used for the test. Must be one of the following timezone IDs.",
                    "example": "America/Chicago",
                    "enum": [
                      "America/Los_Angeles",
                      "America/Denver",
                      "America/Chicago",
                      "America/New_York"
                    ]
                  },
                  "primaryOoklaServerId": {
                    "type": "string",
                    "description": "ID of the primary Ookla server. This field is mandatory if 1 or more Calix CPE(s) are selected."
                  },
                  "secondaryOoklaServerId": {
                    "type": "string",
                    "description": "ID of the secondary Ookla server. This field is optional if 1 or more Calix CPE(s) are selected."
                  },
                  "serviceTierDownloadSpeed": {
                    "minimum": 1,
                    "type": "integer",
                    "description": "Service Tier Download Speed in kbps"
                  },
                  "serviceTierUploadSpeed": {
                    "minimum": 1,
                    "type": "integer",
                    "description": "Service Tier Upload Speed in kbps"
                  },
                  "speedThreshold": {
                    "maximum": 100,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Speed test threshold %. Default to 80%."
                  },
                  "latencyThreshold": {
                    "minimum": 1,
                    "type": "integer",
                    "default": 100,
                    "description": "Latency test threshold in"
                  },
                  "downloadUrl": {
                    "type": "string",
                    "description": "TR143 Download URL"
                  },
                  "uploadUrl": {
                    "type": "string",
                    "description": "TR143 Upload URL"
                  },
                  "uploadFileSize": {
                    "type": "integer",
                    "description": "TR143 Upload File Size",
                    "minimum": 1
                  },
                  "startDate": {
                    "type": "string",
                    "description": "Start Date of the Test"
                  },
                  "numberOfDays": {
                    "maximum": 7,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Number of Days that the test need to run"
                  },
                  "startHour": {
                    "maximum": 23,
                    "minimum": 0,
                    "type": "integer",
                    "description": "Start Hour of the Test. Default to 18 (e.g. 6PM)"
                  },
                  "numberOfHours": {
                    "default": 6,
                    "maximum": 6,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Number of Hours that the test need to run each day. The default value is 6 if startHour is no greater than 18; otherwise, it's 24 minus startHour."
                  },
                  "devices": {
                    "maxItems": 100,
                    "minItems": 1,
                    "type": "array",
                    "example": [
                      "CXNK00112233",
                      "CXNK004E6DEF"
                    ],
                    "items": {
                      "type": "string",
                      "description": "Up to 100 FSAN/serial numbers of CPE devices. Each item in the devices array is the serial number of a CPE device."
                    }
                  }
                },
                "description": "A CAF II Test Request Instance",
                "example": {
                  "name": "CA_10M/1M",
                  "description": "2019 Q1 Northern California Gold Internet Subscribers",
                  "timezone": "America/Chicago",
                  "primaryOoklaServerId": "1234",
                  "speedThreshold": 80,
                  "latencyThreshold": 10,
                  "serviceTierDownloadSpeed": 1000000,
                  "serviceTierUploadSpeed": 1000000,
                  "downloadUrl": "http://9.9.9.9/download/10M",
                  "uploadUrl": "http://9.9.9.9/upload",
                  "uploadFileSize": 1000000,
                  "startDate": "2018-12-12",
                  "numberOfDays": 7,
                  "startHour": 18,
                  "numberOfHours": 6,
                  "devices": [
                    "CXNK00112233",
                    "CXNK004E6DEF"
                  ]
                }
              }
            ],
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putNetPerfTestCafIITestId"
      },
      "task": true
    },
    {
      "name": "deleteNetPerfTestCafIITestId",
      "summary": "Delete an existing CAF II test by _id string",
      "description": "Delete an existing CAF II test by _id string",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "The _id string of an existing test: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteNetPerfTestCafIITestId"
      },
      "task": true
    },
    {
      "name": "putNetPerfTestCafIITestIdSuspend",
      "summary": "Suspend an existing test",
      "description": "Suspend an existing test",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "The _id string of an existing test: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putNetPerfTestCafIITestIdSuspend"
      },
      "task": true
    },
    {
      "name": "putNetPerfTestCafIITestIdResume",
      "summary": "Resume an existing test",
      "description": "Resume an existing test",
      "input": [
        {
          "name": "id",
          "type": "string",
          "info": "The _id string of an existing test: string",
          "required": true,
          "schema": {
            "title": "id",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putNetPerfTestCafIITestIdResume"
      },
      "task": true
    },
    {
      "name": "getNetPerfTestOoklaServer",
      "summary": "Retrieve all Ookla servers",
      "description": "Retrieve all Ookla servers",
      "input": [
        {
          "name": "country",
          "type": "string",
          "info": "Country name. Default to US only: Must be one of [US, Canada, All]",
          "required": false,
          "schema": {
            "title": "country",
            "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": "string",
                "description": "_id string of the Ookla server object"
              },
              "host": {
                "type": "string",
                "description": "Hostname or IP address of the Ookla server"
              },
              "cityState": {
                "type": "string",
                "description": "What city/state/country this test server is physically located"
              },
              "asn": {
                "type": "integer",
                "description": "AS Number"
              },
              "fccDesignatedAsn": {
                "type": "boolean",
                "description": "Indicate whether or not this Ookla server's ASN is one of the FCC designated ASN's"
              }
            },
            "example": {
              "_id": "13516",
              "cityState": "Orlando, FL",
              "host": "mco.speedtest.sbcglobal.net",
              "asn": 7108,
              "fccDesignatedAsn": true
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getNetPerfTestOoklaServer"
      },
      "task": true
    },
    {
      "name": "getNetPerfTestTestResultZipExternal",
      "summary": "Retrieve both Speed Test and Latency Test results as a zip file",
      "description": "Click on the 'Download File -> Name the file as 'test.zip' and Save as Zip'",
      "input": [
        {
          "name": "testId",
          "type": "string",
          "info": "The internal id string for an existing CAF II test instance: string",
          "required": true,
          "schema": {
            "title": "testId",
            "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": "/getNetPerfTestTestResultZipExternal"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribers",
      "summary": "Retrieve all subscriber(s) that match all the given query criteria",
      "description": "Misc Notes:\n  - When querying via the \"devices\" query parameter, all other query parameters will be ignored\n  - The list of associated device(s), e.g. the \"devices\" field, will not be included in the response. To include the \"devices\" field in the response, the \"withDevices\" query parameter must be set to true explicitly\n  - The list of service(s), e.g. the \"services\" field, will not be included in the response. To include the \"services\" field in the response, the \"withServices\" query parameter ...(description truncated)",
      "input": [
        {
          "name": "devices",
          "type": "string",
          "info": "Comma separated list of device id string(s). If more than 1 device is listed, subscribers that are associated with *ANY* of the deivce in the list will be returned.\n\nFor ...(description truncated): string",
          "required": false,
          "schema": {
            "title": "devices",
            "type": "string"
          }
        },
        {
          "name": "account",
          "type": "string",
          "info": "Account ID: string",
          "required": false,
          "schema": {
            "title": "account",
            "type": "string"
          }
        },
        {
          "name": "phone",
          "type": "string",
          "info": "Phone Number: string",
          "required": false,
          "schema": {
            "title": "phone",
            "type": "string"
          }
        },
        {
          "name": "email",
          "type": "string",
          "info": "Email: string",
          "required": false,
          "schema": {
            "title": "email",
            "type": "string"
          }
        },
        {
          "name": "region",
          "type": "string",
          "info": "Region: string",
          "required": false,
          "schema": {
            "title": "region",
            "type": "string"
          }
        },
        {
          "name": "billingStatus",
          "type": "string",
          "info": "Billing status:\n   * `Active` - Subscriber is an active user and current on bill payments. Subscribed broadband service is enabled and functional.\n   * `Disconnected` - S...(description truncated): Must be one of [Active, Disconnected, Suspended, Deactivated]",
          "required": false,
          "schema": {
            "title": "billingStatus",
            "type": "string"
          }
        },
        {
          "name": "withDevices",
          "type": "boolean",
          "info": "Include the `devices` field in the response: boolean",
          "required": false,
          "schema": {
            "title": "withDevices",
            "type": "boolean"
          }
        },
        {
          "name": "withServices",
          "type": "boolean",
          "info": "Include the `services` field in the response: boolean",
          "required": false,
          "schema": {
            "title": "withServices",
            "type": "boolean"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Number of subscriber records to skip when there are many subscriber records matching the query criteria. This is needed for pagination. Default to 0: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Max Number of subscriber records in the response when there are many subscriber records matching the query criteria. This is needed for pagination. Valid range of this pa...(description truncated): 123",
          "required": false,
          "schema": {
            "title": "limit",
            "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": "/getBillingSubscribers"
      },
      "task": true
    },
    {
      "name": "postBillingSubscribers",
      "summary": "Create a new subscriber.",
      "description": "Create a new subscriber.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The new subscriber record.\n\nThe following field(s) are mandatory for all create requests:\n  - subscriberLocationId\n\nPlease note that  the new subsccriber record in the re...(description truncated): {\"subscriberLocationId\": \"string\", \"account\": \"string\", \"name\": \"string\", \"firstName\": \"string\", \"lastName\": \"string\", \"phone\": \"string\", \"email\": \"string\", \"serviceAddress\": \"string\", \"street\": \"string\", \"streetLine2\": \"string\", \"city\": \"string\", \"state\": \"string\", \"postcode\": \"string\", \"country\": \"string\", \"billingAddress\": \"string\", \"billingStreet\": \"string\", \"billingStreetLine2\": \"string\", \"billingCity\": \"string\", \"billingState\": \"string\", \"billingPostcode\": \"string\", \"billingCountry\": \"string\", \"billingStatus\": \"Must be one of [Active, Disconnected, Suspended, Deactivated]\", \"region\": \"string\", \"location\": \"string\", \"lat\": 123, \"lon\": 123, \"customerType\": \"Must be one of [Residential, Business]\", \"attainableRate\": 123, \"optout\": \"boolean\", \"field1\": \"string\", \"field2\": \"string\", \"field3\": \"string\", \"field4\": \"string\", \"field5\": \"string\", \"highValue\": \"boolean\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriberLocationId": {
                "type": "string",
                "description": "A string that uniquelly identifies the subscriber location in the system.",
                "example": "11152501:123 Main St"
              },
              "account": {
                "type": "string",
                "description": "Subscriber's account ID. Multiple subscriber records can have the same account id",
                "example": "11152500"
              },
              "name": {
                "type": "string",
                "description": "Subscriber's full name. This is deprecated, recommend to use `firstName` and `lastName`",
                "example": "Andrew Green"
              },
              "firstName": {
                "type": "string",
                "description": "Subscriber's first name.",
                "example": "Andrew"
              },
              "lastName": {
                "type": "string",
                "description": "Subscriber's last name.",
                "example": "Green"
              },
              "phone": {
                "type": "string",
                "description": "Subscriber's phone number. Multiple subscriber records can have the same phone number.",
                "example": "101-234-6673"
              },
              "email": {
                "type": "string",
                "description": "Subscriber's email address. Multiple subscriber records can have the same email.",
                "example": "abc@hotmail.com"
              },
              "serviceAddress": {
                "type": "string",
                "description": "**DEPRECATED** This is a full Service address which includes street/city/state/country/postcode. This field is *deprecated*, and it is recommended to use individual address fields like `street`, `city`, `state`, `postcode`, `country`.\n",
                "example": "123 Main St, San Jose, CA USA"
              },
              "street": {
                "type": "string",
                "description": "Street of the service address",
                "example": "1900 Country Dr"
              },
              "streetLine2": {
                "type": "string",
                "description": "Street line 2 of the service address",
                "example": "APT 201 3rd Building"
              },
              "city": {
                "type": "string",
                "description": "City of the service address",
                "example": "Grayslake"
              },
              "state": {
                "type": "string",
                "description": "State of the service address",
                "example": "IL"
              },
              "postcode": {
                "type": "string",
                "description": "Post code of service address",
                "example": "60030"
              },
              "country": {
                "type": "string",
                "description": "Country of the service address",
                "example": "USA"
              },
              "billingAddress": {
                "type": "string",
                "description": "**DEPRECATED** This is a full Billing Address that includes street/city/state/country/postcode. This field is *deprecated*, and it is recommended to use individual billing address fields like `billingStreet`, `billingCity`, `billingState`, `billingPostcode`, `billingCountry`.\n",
                "example": "PO Box 123 San Jose, CA 12345"
              },
              "billingStreet": {
                "type": "string",
                "description": "Street of the billing address",
                "example": "1900 Country Dr"
              },
              "billingStreetLine2": {
                "type": "string",
                "description": "Street line 2 of the billing address",
                "example": "APT 201 3rd Building"
              },
              "billingCity": {
                "type": "string",
                "description": "City of the billing address",
                "example": "Grayslake"
              },
              "billingState": {
                "type": "string",
                "description": "State of the billing address",
                "example": "IL"
              },
              "billingPostcode": {
                "type": "string",
                "description": "Post code of billing address",
                "example": "60030"
              },
              "billingCountry": {
                "type": "string",
                "description": "Country of the billing address",
                "example": "USA"
              },
              "billingStatus": {
                "type": "string",
                "description": "Billing status of the subscriber. Possible values:\n  * `Active` - Subscriber is an active user and current on bill payments. Subscribed broadband service is enabled and functional.\n  * `Disconnected` - Subscriber has been disconnected and no service is available.\n  * `Suspended` - This status represents a subscriber that has their services suspended due to lack of payment.\n  * `Deactivated` - Less frequent than the above 3 states but this state represents individuals that are seasonal broadband users. They pay less during off-season relative to on-season.\n\n**Note**: These flags are for tracking purposes only and each of the above actions has to be taken separately in the relevant system.\n",
                "enum": [
                  "Active",
                  "Disconnected",
                  "Suspended",
                  "Deactivated"
                ]
              },
              "region": {
                "type": "string",
                "description": "The `region` is a high-level grouping/tag of subscribers in Marketing Cloud. It can be used to distinguish major markets, serving areas, or even subsidiary operating companies. The values are free-form.\n",
                "example": "Bay Area"
              },
              "location": {
                "type": "string",
                "description": "Within a `region`, a `location` is a smaller division (sub category), similar to a neighborhood, remote, or wire center. This allows precision targeting of subscribers and comparison of similar subscribers within a small area.\n",
                "example": "Financial District in San Francisco"
              },
              "lat": {
                "type": "number",
                "description": "The latitude of the service address of the subscriber.",
                "example": 45.468388
              },
              "lon": {
                "type": "number",
                "description": "The longtitude of the service address of the subscriber.",
                "example": -132.33104
              },
              "customerType": {
                "type": "string",
                "description": "Indicates if this is a Business or Residential subscriber.",
                "enum": [
                  "Residential",
                  "Business"
                ]
              },
              "attainableRate": {
                "type": "integer",
                "description": "Attainable Data Rate. For example the max DS train rate for a DSL line."
              },
              "optout": {
                "type": "boolean",
                "description": "Indicates if this subscriber has opted out of marketing communications."
              },
              "field1": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "field2": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "field3": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "field4": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "field5": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "highValue": {
                "type": "boolean",
                "description": "flag if this subscriber a high valued one. False by default.",
                "example": false
              }
            },
            "description": "This object defines the payload of subscriber creation/update requests",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingSubscribers"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberId",
      "summary": "Retrieve an existing subscriber by subscriberId",
      "description": "Retrieve an existing subscriber by subscriberId",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "includeDeviceData",
          "type": "boolean",
          "info": "Include the `deviceData` field in the response.: boolean",
          "required": false,
          "schema": {
            "title": "includeDeviceData",
            "type": "boolean"
          }
        },
        {
          "name": "includeDecommissionedDevices",
          "type": "boolean",
          "info": "Include decommissioned devices in `deviceData` field in the response, if and only if `includeDeviceData==true`.: boolean",
          "required": false,
          "schema": {
            "title": "includeDecommissionedDevices",
            "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": "/getBillingSubscribersSubscriberId"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberId",
      "summary": "Update an existing subscriber by subscriberId.",
      "description": "Misc Notes:\n  - If there are currently 1 or more device(s) assocated with the subcriber, and the update request does not contain the \"devices\" field, the \"devices\" field will be preserved during the update.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "The updated subscriber record: {\"subscriberLocationId\": \"string\", \"account\": \"string\", \"name\": \"string\", \"firstName\": \"string\", \"lastName\": \"string\", \"phone\": \"string\", \"email\": \"string\", \"serviceAddress\": \"string\", \"street\": \"string\", \"streetLine2\": \"string\", \"city\": \"string\", \"state\": \"string\", \"postcode\": \"string\", \"country\": \"string\", \"billingAddress\": \"string\", \"billingStreet\": \"string\", \"billingStreetLine2\": \"string\", \"billingCity\": \"string\", \"billingState\": \"string\", \"billingPostcode\": \"string\", \"billingCountry\": \"string\", \"billingStatus\": \"Must be one of [Active, Disconnected, Suspended, Deactivated]\", \"region\": \"string\", \"location\": \"string\", \"lat\": 123, \"lon\": 123, \"customerType\": \"Must be one of [Residential, Business]\", \"attainableRate\": 123, \"optout\": \"boolean\", \"field1\": \"string\", \"field2\": \"string\", \"field3\": \"string\", \"field4\": \"string\", \"field5\": \"string\", \"highValue\": \"boolean\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriberLocationId": {
                "type": "string",
                "description": "A string that uniquelly identifies the subscriber location in the system.",
                "example": "11152501:123 Main St"
              },
              "account": {
                "type": "string",
                "description": "Subscriber's account ID. Multiple subscriber records can have the same account id",
                "example": "11152500"
              },
              "name": {
                "type": "string",
                "description": "Subscriber's full name. This is deprecated, recommend to use `firstName` and `lastName`",
                "example": "Andrew Green"
              },
              "firstName": {
                "type": "string",
                "description": "Subscriber's first name.",
                "example": "Andrew"
              },
              "lastName": {
                "type": "string",
                "description": "Subscriber's last name.",
                "example": "Green"
              },
              "phone": {
                "type": "string",
                "description": "Subscriber's phone number. Multiple subscriber records can have the same phone number.",
                "example": "101-234-6673"
              },
              "email": {
                "type": "string",
                "description": "Subscriber's email address. Multiple subscriber records can have the same email.",
                "example": "abc@hotmail.com"
              },
              "serviceAddress": {
                "type": "string",
                "description": "**DEPRECATED** This is a full Service address which includes street/city/state/country/postcode. This field is *deprecated*, and it is recommended to use individual address fields like `street`, `city`, `state`, `postcode`, `country`.\n",
                "example": "123 Main St, San Jose, CA USA"
              },
              "street": {
                "type": "string",
                "description": "Street of the service address",
                "example": "1900 Country Dr"
              },
              "streetLine2": {
                "type": "string",
                "description": "Street line 2 of the service address",
                "example": "APT 201 3rd Building"
              },
              "city": {
                "type": "string",
                "description": "City of the service address",
                "example": "Grayslake"
              },
              "state": {
                "type": "string",
                "description": "State of the service address",
                "example": "IL"
              },
              "postcode": {
                "type": "string",
                "description": "Post code of service address",
                "example": "60030"
              },
              "country": {
                "type": "string",
                "description": "Country of the service address",
                "example": "USA"
              },
              "billingAddress": {
                "type": "string",
                "description": "**DEPRECATED** This is a full Billing Address that includes street/city/state/country/postcode. This field is *deprecated*, and it is recommended to use individual billing address fields like `billingStreet`, `billingCity`, `billingState`, `billingPostcode`, `billingCountry`.\n",
                "example": "PO Box 123 San Jose, CA 12345"
              },
              "billingStreet": {
                "type": "string",
                "description": "Street of the billing address",
                "example": "1900 Country Dr"
              },
              "billingStreetLine2": {
                "type": "string",
                "description": "Street line 2 of the billing address",
                "example": "APT 201 3rd Building"
              },
              "billingCity": {
                "type": "string",
                "description": "City of the billing address",
                "example": "Grayslake"
              },
              "billingState": {
                "type": "string",
                "description": "State of the billing address",
                "example": "IL"
              },
              "billingPostcode": {
                "type": "string",
                "description": "Post code of billing address",
                "example": "60030"
              },
              "billingCountry": {
                "type": "string",
                "description": "Country of the billing address",
                "example": "USA"
              },
              "billingStatus": {
                "type": "string",
                "description": "Billing status of the subscriber. Possible values:\n  * `Active` - Subscriber is an active user and current on bill payments. Subscribed broadband service is enabled and functional.\n  * `Disconnected` - Subscriber has been disconnected and no service is available.\n  * `Suspended` - This status represents a subscriber that has their services suspended due to lack of payment.\n  * `Deactivated` - Less frequent than the above 3 states but this state represents individuals that are seasonal broadband users. They pay less during off-season relative to on-season.\n\n**Note**: These flags are for tracking purposes only and each of the above actions has to be taken separately in the relevant system.\n",
                "enum": [
                  "Active",
                  "Disconnected",
                  "Suspended",
                  "Deactivated"
                ]
              },
              "region": {
                "type": "string",
                "description": "The `region` is a high-level grouping/tag of subscribers in Marketing Cloud. It can be used to distinguish major markets, serving areas, or even subsidiary operating companies. The values are free-form.\n",
                "example": "Bay Area"
              },
              "location": {
                "type": "string",
                "description": "Within a `region`, a `location` is a smaller division (sub category), similar to a neighborhood, remote, or wire center. This allows precision targeting of subscribers and comparison of similar subscribers within a small area.\n",
                "example": "Financial District in San Francisco"
              },
              "lat": {
                "type": "number",
                "description": "The latitude of the service address of the subscriber.",
                "example": 45.468388
              },
              "lon": {
                "type": "number",
                "description": "The longtitude of the service address of the subscriber.",
                "example": -132.33104
              },
              "customerType": {
                "type": "string",
                "description": "Indicates if this is a Business or Residential subscriber.",
                "enum": [
                  "Residential",
                  "Business"
                ]
              },
              "attainableRate": {
                "type": "integer",
                "description": "Attainable Data Rate. For example the max DS train rate for a DSL line."
              },
              "optout": {
                "type": "boolean",
                "description": "Indicates if this subscriber has opted out of marketing communications."
              },
              "field1": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "field2": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "field3": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "field4": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "field5": {
                "type": "string",
                "description": "Free-form Field that the service provider can use to store any custom information"
              },
              "highValue": {
                "type": "boolean",
                "description": "flag if this subscriber a high valued one. False by default.",
                "example": false
              }
            },
            "description": "This object defines the payload of subscriber creation/update requests",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSubscribersSubscriberId"
      },
      "task": true
    },
    {
      "name": "deleteBillingSubscribersSubscriberId",
      "summary": "Delete an existing subscriber by subscriberId",
      "description": "Delete an existing subscriber by subscriberId",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/deleteBillingSubscribersSubscriberId"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdDevices",
      "summary": "Retrieve associated device list for a subscriber location",
      "description": "Retrieve associated device list for a subscriber location",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdDevices"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdDevices",
      "summary": "Update associated device list",
      "description": "Update the entire list of device(s) that are associated with a subscriber with the new list in the request body",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "deviceList",
          "type": "string",
          "info": "The new list of device(s) to be associated with the subscriber.\n\nThe format of this list will be comma-separated strings, for example \"deviceList=CXNK00112233,CXNK4455667...(description truncated): string",
          "required": true,
          "schema": {
            "title": "deviceList",
            "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": "/putBillingSubscribersSubscriberIdDevices"
      },
      "task": true
    },
    {
      "name": "postBillingSubscribersSubscriberIdDevices",
      "summary": "Add a device id to an existing subscriber's associated device list",
      "description": "Add a device id to an existing subscriber's associated device list",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "deviceId",
          "type": "string",
          "info": "A string that identifies a CPE device. Could be an SN/FSAN, a MAC address, or a Calix Registration ID\n* SN/FSAN device id strings, for example 'CXNK00112233', will be con...(description truncated): string",
          "required": true,
          "schema": {
            "title": "deviceId",
            "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": "/postBillingSubscribersSubscriberIdDevices"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdDevicesDeviceId",
      "summary": "Replace a device ID in an exsiting subscriber's associated device list with another device ID",
      "description": "Replace a device ID in an exsiting subscriber's associated device list with another device ID",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "deviceId",
          "type": "string",
          "info": "The existing device ID string: string",
          "required": true,
          "schema": {
            "title": "deviceId",
            "type": "string"
          }
        },
        {
          "name": "newDeviceId",
          "type": "string",
          "info": "The new device ID string: string",
          "required": true,
          "schema": {
            "title": "newDeviceId",
            "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": "/putBillingSubscribersSubscriberIdDevicesDeviceId"
      },
      "task": true
    },
    {
      "name": "deleteBillingSubscribersSubscriberIdDevicesDeviceId",
      "summary": "Delete a device from an existing subscriber's associated device list",
      "description": "Delete a device from an existing subscriber's associated device list",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "deviceId",
          "type": "string",
          "info": "Device ID string: string",
          "required": true,
          "schema": {
            "title": "deviceId",
            "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": "/deleteBillingSubscribersSubscriberIdDevicesDeviceId"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdFccIdentifiers",
      "summary": "Retrieve an existing FCC identifier by subscriberId.",
      "description": "Retrieve an existing FCC identifier by subscriberId.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": "Subscriber Id, e.g. '2c13ab77-8441-43fb-8967-2da4d8383d68'.: string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdFccIdentifiers"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdFccIdentifiers",
      "summary": "Update an existing FCC identifier by subscriberId.",
      "description": "Update an existing FCC identifier by subscriberId.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "The updated FCC identifier.: {\"hubbLocationId\": \"string\", \"fccSubscriberId\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "hubbLocationId": {
                "type": "string",
                "description": "The HUBB location ID field will be entered in the subscriber data upload template. This ID must remain unchanged.\n",
                "example": "A12345"
              },
              "fccSubscriberId": {
                "type": "string",
                "description": "The subscriber ID is the unique identifier assigned by the Provider to designate active subscribers that are occupying locations previously reported in the HUBB. If you have multiple Subscriber IDs for a single HUBB location, you MUST use a semicolon ';' instead of a comma ',' before the next Subscriber ID.\n",
                "example": "A-800098678"
              }
            },
            "description": "This object defines the payload of FCC identifier creation/update requests",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSubscribersSubscriberIdFccIdentifiers"
      },
      "task": true
    },
    {
      "name": "postBillingSubscribersSubscriberIdFccIdentifiers",
      "summary": "Create a new FCC identifier for the subscriber.",
      "description": "Create a new FCC identifier.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "The new FCC identifier record.: {\"hubbLocationId\": \"string\", \"fccSubscriberId\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "hubbLocationId": {
                "type": "string",
                "description": "The HUBB location ID field will be entered in the subscriber data upload template. This ID must remain unchanged.\n",
                "example": "A12345"
              },
              "fccSubscriberId": {
                "type": "string",
                "description": "The subscriber ID is the unique identifier assigned by the Provider to designate active subscribers that are occupying locations previously reported in the HUBB. If you have multiple Subscriber IDs for a single HUBB location, you MUST use a semicolon ';' instead of a comma ',' before the next Subscriber ID.\n",
                "example": "A-800098678"
              }
            },
            "description": "This object defines the payload of FCC identifier creation/update requests",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingSubscribersSubscriberIdFccIdentifiers"
      },
      "task": true
    },
    {
      "name": "deleteBillingSubscribersSubscriberIdFccIdentifiers",
      "summary": "Delete an existing FCC identifier by subscriberId.",
      "description": "Delete an existing FCC identifier by subscriberId.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/deleteBillingSubscribersSubscriberIdFccIdentifiers"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdServices",
      "summary": "Retrieve service list for a subscriber location",
      "description": "Retrieve service list for a subscriber location",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "summaryOnly",
          "type": "boolean",
          "info": "flag to return summary info of USOCs for data/voice/video, not full info. Default to false.: boolean",
          "required": false,
          "schema": {
            "title": "summaryOnly",
            "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": "/getBillingSubscribersSubscriberIdServices"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdServices",
      "summary": "Update the entire service list for a subscriber location",
      "description": "Update the entire list of service(s) for a subscriber location with the new list in the request body",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "ignoreDuplicates",
          "type": "boolean",
          "info": "Flag to enforce duplicate check, default to false: boolean",
          "required": false,
          "schema": {
            "title": "ignoreDuplicates",
            "type": "boolean"
          }
        },
        {
          "name": "body",
          "type": "array",
          "info": "The new list of service(s) for this subscriber location. If the new list is empty (e.g. \"[]\"), all existing services for this subscriber will be deleted.: array",
          "required": true,
          "schema": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "usoc": {
                  "type": "string",
                  "description": "Uniform Service Order Code.",
                  "example": "7030Z759"
                },
                "type": {
                  "type": "string",
                  "description": "Type of service tier or offering.",
                  "enum": [
                    "data",
                    "video",
                    "voice",
                    "other"
                  ]
                },
                "description": {
                  "type": "string",
                  "description": "A text description for the particular service, such as \"Gold Internet\" or \"Residential Voice\". This is a free-form field.",
                  "example": "Gold Internet"
                },
                "downSpeed": {
                  "type": "integer",
                  "description": "Downstream Speed for data services, in Mbps.",
                  "example": 100
                },
                "upSpeed": {
                  "type": "integer",
                  "description": "Upstream Speed for data services, in Mbps.",
                  "example": 20
                },
                "group": {
                  "type": "string",
                  "description": "This field allows you to group similar speed tiers into buckets for easy selection and reporting if necessary. For example, if you have a large number of speed tiers, you may wish to group them into similar bands such as: <=5 M; 6-10M; 15-50M; 100M+; 1G",
                  "example": "6-10M"
                },
                "techType": {
                  "type": "string",
                  "description": "Technology type the service is delivered on. For example:\n- Cable\n- Fiber\n- Wireless\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                  "example": "Fiber"
                },
                "customerType": {
                  "type": "string",
                  "description": "Customer type. For example:\n- Residential\n- Business\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                  "example": "Residential"
                },
                "endpointMappingOption1": {
                  "type": "string",
                  "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider.",
                  "example": "825-4677"
                },
                "endpointMappingOption2": {
                  "type": "string",
                  "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
                },
                "endpointMappingOption3": {
                  "type": "string",
                  "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
                },
                "endpointMappingOption4": {
                  "type": "string",
                  "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
                },
                "activate": {
                  "type": "boolean",
                  "description": "When set to true, this service instance will be used for service activation purposes.\n\nWhen this flag is not set explicitly:\n  - If any of service activation parameters is defined, eg. VLAN or voice service parameters, this service\n    instance is considered as for service activation purposes automatically\n  - If none of service activation parameters is defined, this service instance is considered as for billing\n    purposes only"
                },
                "sVlan": {
                  "type": "integer",
                  "description": "The vlan to be used for activating service. When set to 0, it is considered as priority tagged"
                },
                "cVlan": {
                  "type": "integer",
                  "description": "The c-vlan to be used for activating service"
                },
                "ceVlan": {
                  "type": "integer",
                  "description": "Vlan tag between RG and ONT"
                },
                "untagged": {
                  "type": "boolean",
                  "description": "When set to true, ceVlan would be ignored"
                },
                "pppoeUsername": {
                  "type": "string",
                  "description": "PPPOE Username. Applicable to Data service only"
                },
                "pppoePassword": {
                  "type": "string",
                  "description": "PPPOE Password. Applicable to Data service only"
                },
                "interface": {
                  "type": "string",
                  "description": "Interface to which data/video service to be activated. this is an override of the primary interface of an ont model"
                },
                "voiceServiceType": {
                  "type": "string",
                  "description": "Chose voice service type between SIP,H248,H.248,MGCP or X_000631_TDMGW",
                  "enum": [
                    "SIP",
                    "H248",
                    "H.248",
                    "MGCP",
                    "X_000631_TDMGW"
                  ]
                },
                "dialPlan": {
                  "type": "string",
                  "description": "User dial plan"
                },
                "sipProfile": {
                  "type": "string",
                  "description": "SIP profile"
                },
                "h248Profile": {
                  "type": "string",
                  "description": "H248 profile"
                },
                "multicastProfile": {
                  "type": "string",
                  "description": "This attribute is applicable only when a user needs to avail video services"
                },
                "voiceInterfaces": {
                  "type": "array",
                  "description": "Interface specific voice service details. This is a mandatory parameter for voice service",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Name of the voice interface, which can be either an ONT interface or an RG interface"
                      },
                      "enable": {
                        "type": "boolean",
                        "description": "Enable or disable voice service on this interface"
                      },
                      "terminationId": {
                        "type": "string",
                        "description": "H.248 service termination id"
                      },
                      "sipUri": {
                        "type": "string",
                        "description": "SIP URI"
                      },
                      "sipUsername": {
                        "type": "string",
                        "description": "SIP User Name"
                      },
                      "sipPassword": {
                        "type": "string",
                        "description": "SIP Password"
                      }
                    }
                  }
                },
                "staticHostMode": {
                  "type": "string",
                  "description": "L2 or L3 mode. Applicable to data and video services only",
                  "enum": [
                    "L2",
                    "L3"
                  ]
                },
                "staticIpAddress": {
                  "type": "string",
                  "description": "Static host IPv4 address. Applicable to data and video services only"
                },
                "staticNetmask": {
                  "type": "string",
                  "description": "Static Subnet mask for host. Applicable to data and video services only"
                },
                "staticGateway": {
                  "type": "string",
                  "description": "Static Default gateway to be used for MFF. Applicable to data and video services only"
                },
                "memberPorts": {
                  "type": "array",
                  "description": "List of ont-ethernet ports to be added to FB",
                  "items": {
                    "type": "string",
                    "description": "ONT ETH port",
                    "enum": [
                      "g1",
                      "g2",
                      "g3",
                      "g4"
                    ]
                  }
                }
              },
              "description": "An actual service instance for a subscriber location.\n\nEach service instance can reference to a common service definition via usoc and techType and customerType, thus inherit those common attributes from the common service definition thus eliminates the needs to repeat those common attributes for every single service instance.\n\nMeanwhile, a service instance can override any of those common service definition attributes (except for the *\"fee\"* attribute)."
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSubscribersSubscriberIdServices"
      },
      "task": true
    },
    {
      "name": "postBillingSubscribersSubscriberIdServices",
      "summary": "Add a new service to a subscriber location",
      "description": "Each subscriber location can only have up to 1 data service, up to 1 video service, and up to 1 voice service.\n\nWhen you want to apply the service, a.k.a activate the service, you must input `\"activate\": true` with appropriate parameters.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "The new service to be added. Please note that the \"_id\" field is generated by the system thus should not be included in the API request.: {\"usoc\": \"string\", \"type\": \"Must be one of [data, video, voice, other]\", \"description\": \"string\", \"downSpeed\": 123, \"upSpeed\": 123, \"group\": \"string\", \"techType\": \"string\", \"customerType\": \"string\", \"endpointMappingOption1\": \"string\", \"endpointMappingOption2\": \"string\", \"endpointMappingOption3\": \"string\", \"endpointMappingOption4\": \"string\", \"activate\": \"boolean\", \"sVlan\": 123, \"cVlan\": 123, \"ceVlan\": 123, \"untagged\": \"boolean\", \"pppoeUsername\": \"string\", \"pppoePassword\": \"string\", \"interface\": \"string\", \"voiceServiceType\": \"Must be one of [SIP, H248, H.248, MGCP, X_000631_TDMGW]\", \"dialPlan\": \"string\", \"sipProfile\": \"string\", \"h248Profile\": \"string\", \"multicastProfile\": \"string\", \"voiceInterfaces\": [{\"name\": \"string\", \"enable\": \"boolean\", \"terminationId\": \"string\", \"sipUri\": \"string\", \"sipUsername\": \"string\", \"sipPassword\": \"string\"}], \"staticHostMode\": \"Must be one of [L2, L3]\", \"staticIpAddress\": \"string\", \"staticNetmask\": \"string\", \"staticGateway\": \"string\", \"memberPorts\": \"array\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "usoc": {
                "type": "string",
                "description": "Uniform Service Order Code.",
                "example": "7030Z759"
              },
              "type": {
                "type": "string",
                "description": "Type of service tier or offering.",
                "enum": [
                  "data",
                  "video",
                  "voice",
                  "other"
                ]
              },
              "description": {
                "type": "string",
                "description": "A text description for the particular service, such as \"Gold Internet\" or \"Residential Voice\". This is a free-form field.",
                "example": "Gold Internet"
              },
              "downSpeed": {
                "type": "integer",
                "description": "Downstream Speed for data services, in Mbps.",
                "example": 100
              },
              "upSpeed": {
                "type": "integer",
                "description": "Upstream Speed for data services, in Mbps.",
                "example": 20
              },
              "group": {
                "type": "string",
                "description": "This field allows you to group similar speed tiers into buckets for easy selection and reporting if necessary. For example, if you have a large number of speed tiers, you may wish to group them into similar bands such as: <=5 M; 6-10M; 15-50M; 100M+; 1G",
                "example": "6-10M"
              },
              "techType": {
                "type": "string",
                "description": "Technology type the service is delivered on. For example:\n- Cable\n- Fiber\n- Wireless\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                "example": "Fiber"
              },
              "customerType": {
                "type": "string",
                "description": "Customer type. For example:\n- Residential\n- Business\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                "example": "Residential"
              },
              "endpointMappingOption1": {
                "type": "string",
                "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider.",
                "example": "825-4677"
              },
              "endpointMappingOption2": {
                "type": "string",
                "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
              },
              "endpointMappingOption3": {
                "type": "string",
                "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
              },
              "endpointMappingOption4": {
                "type": "string",
                "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
              },
              "activate": {
                "type": "boolean",
                "description": "When set to true, this service instance will be used for service activation purposes.\n\nWhen this flag is not set explicitly:\n  - If any of service activation parameters is defined, eg. VLAN or voice service parameters, this service\n    instance is considered as for service activation purposes automatically\n  - If none of service activation parameters is defined, this service instance is considered as for billing\n    purposes only"
              },
              "sVlan": {
                "type": "integer",
                "description": "The vlan to be used for activating service. When set to 0, it is considered as priority tagged"
              },
              "cVlan": {
                "type": "integer",
                "description": "The c-vlan to be used for activating service"
              },
              "ceVlan": {
                "type": "integer",
                "description": "Vlan tag between RG and ONT"
              },
              "untagged": {
                "type": "boolean",
                "description": "When set to true, ceVlan would be ignored"
              },
              "pppoeUsername": {
                "type": "string",
                "description": "PPPOE Username. Applicable to Data service only"
              },
              "pppoePassword": {
                "type": "string",
                "description": "PPPOE Password. Applicable to Data service only"
              },
              "interface": {
                "type": "string",
                "description": "Interface to which data/video service to be activated. this is an override of the primary interface of an ont model"
              },
              "voiceServiceType": {
                "type": "string",
                "description": "Chose voice service type between SIP,H248,H.248,MGCP or X_000631_TDMGW",
                "enum": [
                  "SIP",
                  "H248",
                  "H.248",
                  "MGCP",
                  "X_000631_TDMGW"
                ]
              },
              "dialPlan": {
                "type": "string",
                "description": "User dial plan"
              },
              "sipProfile": {
                "type": "string",
                "description": "SIP profile"
              },
              "h248Profile": {
                "type": "string",
                "description": "H248 profile"
              },
              "multicastProfile": {
                "type": "string",
                "description": "This attribute is applicable only when a user needs to avail video services"
              },
              "voiceInterfaces": {
                "type": "array",
                "description": "Interface specific voice service details. This is a mandatory parameter for voice service",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Name of the voice interface, which can be either an ONT interface or an RG interface"
                    },
                    "enable": {
                      "type": "boolean",
                      "description": "Enable or disable voice service on this interface"
                    },
                    "terminationId": {
                      "type": "string",
                      "description": "H.248 service termination id"
                    },
                    "sipUri": {
                      "type": "string",
                      "description": "SIP URI"
                    },
                    "sipUsername": {
                      "type": "string",
                      "description": "SIP User Name"
                    },
                    "sipPassword": {
                      "type": "string",
                      "description": "SIP Password"
                    }
                  }
                }
              },
              "staticHostMode": {
                "type": "string",
                "description": "L2 or L3 mode. Applicable to data and video services only",
                "enum": [
                  "L2",
                  "L3"
                ]
              },
              "staticIpAddress": {
                "type": "string",
                "description": "Static host IPv4 address. Applicable to data and video services only"
              },
              "staticNetmask": {
                "type": "string",
                "description": "Static Subnet mask for host. Applicable to data and video services only"
              },
              "staticGateway": {
                "type": "string",
                "description": "Static Default gateway to be used for MFF. Applicable to data and video services only"
              },
              "memberPorts": {
                "type": "array",
                "description": "List of ont-ethernet ports to be added to FB",
                "items": {
                  "type": "string",
                  "description": "ONT ETH port",
                  "enum": [
                    "g1",
                    "g2",
                    "g3",
                    "g4"
                  ]
                }
              }
            },
            "description": "An actual service instance for a subscriber location.\n\nEach service instance can reference to a common service definition via usoc and techType and customerType, thus inherit those common attributes from the common service definition thus eliminates the needs to repeat those common attributes for every single service instance.\n\nMeanwhile, a service instance can override any of those common service definition attributes (except for the *\"fee\"* attribute).",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingSubscribersSubscriberIdServices"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdServicesServiceId",
      "summary": "Retrieve an existing service instance for a subscriber location by service instance id",
      "description": "Retrieve an existing service instance for a subscriber location by service instance id",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "serviceId",
          "type": "string",
          "info": "Service Instance Id: string",
          "required": true,
          "schema": {
            "title": "serviceId",
            "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": "/getBillingSubscribersSubscriberIdServicesServiceId"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdServicesServiceId",
      "summary": "Update an existing service instance for a subscriber location by service instance id.",
      "description": "Update an existing service instance for a subscriber location by service instance id.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "serviceId",
          "type": "string",
          "info": "Service Instance Id: string",
          "required": true,
          "schema": {
            "title": "serviceId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "Updated Service, all fields are editable including usoc: {\"usoc\": \"string\", \"type\": \"Must be one of [data, video, voice, other]\", \"description\": \"string\", \"downSpeed\": 123, \"upSpeed\": 123, \"group\": \"string\", \"techType\": \"string\", \"customerType\": \"string\", \"endpointMappingOption1\": \"string\", \"endpointMappingOption2\": \"string\", \"endpointMappingOption3\": \"string\", \"endpointMappingOption4\": \"string\", \"activate\": \"boolean\", \"sVlan\": 123, \"cVlan\": 123, \"ceVlan\": 123, \"untagged\": \"boolean\", \"pppoeUsername\": \"string\", \"pppoePassword\": \"string\", \"interface\": \"string\", \"voiceServiceType\": \"Must be one of [SIP, H248, H.248, MGCP, X_000631_TDMGW]\", \"dialPlan\": \"string\", \"sipProfile\": \"string\", \"h248Profile\": \"string\", \"multicastProfile\": \"string\", \"voiceInterfaces\": [{\"name\": \"string\", \"enable\": \"boolean\", \"terminationId\": \"string\", \"sipUri\": \"string\", \"sipUsername\": \"string\", \"sipPassword\": \"string\"}], \"staticHostMode\": \"Must be one of [L2, L3]\", \"staticIpAddress\": \"string\", \"staticNetmask\": \"string\", \"staticGateway\": \"string\", \"memberPorts\": \"array\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "usoc": {
                "type": "string",
                "description": "Uniform Service Order Code.",
                "example": "7030Z759"
              },
              "type": {
                "type": "string",
                "description": "Type of service tier or offering.",
                "enum": [
                  "data",
                  "video",
                  "voice",
                  "other"
                ]
              },
              "description": {
                "type": "string",
                "description": "A text description for the particular service, such as \"Gold Internet\" or \"Residential Voice\". This is a free-form field.",
                "example": "Gold Internet"
              },
              "downSpeed": {
                "type": "integer",
                "description": "Downstream Speed for data services, in Mbps.",
                "example": 100
              },
              "upSpeed": {
                "type": "integer",
                "description": "Upstream Speed for data services, in Mbps.",
                "example": 20
              },
              "group": {
                "type": "string",
                "description": "This field allows you to group similar speed tiers into buckets for easy selection and reporting if necessary. For example, if you have a large number of speed tiers, you may wish to group them into similar bands such as: <=5 M; 6-10M; 15-50M; 100M+; 1G",
                "example": "6-10M"
              },
              "techType": {
                "type": "string",
                "description": "Technology type the service is delivered on. For example:\n- Cable\n- Fiber\n- Wireless\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                "example": "Fiber"
              },
              "customerType": {
                "type": "string",
                "description": "Customer type. For example:\n- Residential\n- Business\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                "example": "Residential"
              },
              "endpointMappingOption1": {
                "type": "string",
                "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider.",
                "example": "825-4677"
              },
              "endpointMappingOption2": {
                "type": "string",
                "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
              },
              "endpointMappingOption3": {
                "type": "string",
                "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
              },
              "endpointMappingOption4": {
                "type": "string",
                "description": "Free-form String for endpoint id lookup purpose. Provided by the service provider."
              },
              "activate": {
                "type": "boolean",
                "description": "When set to true, this service instance will be used for service activation purposes.\n\nWhen this flag is not set explicitly:\n  - If any of service activation parameters is defined, eg. VLAN or voice service parameters, this service\n    instance is considered as for service activation purposes automatically\n  - If none of service activation parameters is defined, this service instance is considered as for billing\n    purposes only"
              },
              "sVlan": {
                "type": "integer",
                "description": "The vlan to be used for activating service. When set to 0, it is considered as priority tagged"
              },
              "cVlan": {
                "type": "integer",
                "description": "The c-vlan to be used for activating service"
              },
              "ceVlan": {
                "type": "integer",
                "description": "Vlan tag between RG and ONT"
              },
              "untagged": {
                "type": "boolean",
                "description": "When set to true, ceVlan would be ignored"
              },
              "pppoeUsername": {
                "type": "string",
                "description": "PPPOE Username. Applicable to Data service only"
              },
              "pppoePassword": {
                "type": "string",
                "description": "PPPOE Password. Applicable to Data service only"
              },
              "interface": {
                "type": "string",
                "description": "Interface to which data/video service to be activated. this is an override of the primary interface of an ont model"
              },
              "voiceServiceType": {
                "type": "string",
                "description": "Chose voice service type between SIP,H248,H.248,MGCP or X_000631_TDMGW",
                "enum": [
                  "SIP",
                  "H248",
                  "H.248",
                  "MGCP",
                  "X_000631_TDMGW"
                ]
              },
              "dialPlan": {
                "type": "string",
                "description": "User dial plan"
              },
              "sipProfile": {
                "type": "string",
                "description": "SIP profile"
              },
              "h248Profile": {
                "type": "string",
                "description": "H248 profile"
              },
              "multicastProfile": {
                "type": "string",
                "description": "This attribute is applicable only when a user needs to avail video services"
              },
              "voiceInterfaces": {
                "type": "array",
                "description": "Interface specific voice service details. This is a mandatory parameter for voice service",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Name of the voice interface, which can be either an ONT interface or an RG interface"
                    },
                    "enable": {
                      "type": "boolean",
                      "description": "Enable or disable voice service on this interface"
                    },
                    "terminationId": {
                      "type": "string",
                      "description": "H.248 service termination id"
                    },
                    "sipUri": {
                      "type": "string",
                      "description": "SIP URI"
                    },
                    "sipUsername": {
                      "type": "string",
                      "description": "SIP User Name"
                    },
                    "sipPassword": {
                      "type": "string",
                      "description": "SIP Password"
                    }
                  }
                }
              },
              "staticHostMode": {
                "type": "string",
                "description": "L2 or L3 mode. Applicable to data and video services only",
                "enum": [
                  "L2",
                  "L3"
                ]
              },
              "staticIpAddress": {
                "type": "string",
                "description": "Static host IPv4 address. Applicable to data and video services only"
              },
              "staticNetmask": {
                "type": "string",
                "description": "Static Subnet mask for host. Applicable to data and video services only"
              },
              "staticGateway": {
                "type": "string",
                "description": "Static Default gateway to be used for MFF. Applicable to data and video services only"
              },
              "memberPorts": {
                "type": "array",
                "description": "List of ont-ethernet ports to be added to FB",
                "items": {
                  "type": "string",
                  "description": "ONT ETH port",
                  "enum": [
                    "g1",
                    "g2",
                    "g3",
                    "g4"
                  ]
                }
              }
            },
            "description": "An actual service instance for a subscriber location.\n\nEach service instance can reference to a common service definition via usoc and techType and customerType, thus inherit those common attributes from the common service definition thus eliminates the needs to repeat those common attributes for every single service instance.\n\nMeanwhile, a service instance can override any of those common service definition attributes (except for the *\"fee\"* attribute).",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSubscribersSubscriberIdServicesServiceId"
      },
      "task": true
    },
    {
      "name": "deleteBillingSubscribersSubscriberIdServicesServiceId",
      "summary": "Delete an existing service instance from a subscriber location by service instance id",
      "description": "Delete an existing service instance from a subscriber location by service instance id",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "serviceId",
          "type": "string",
          "info": "Service Instance Id: string",
          "required": true,
          "schema": {
            "title": "serviceId",
            "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": "/deleteBillingSubscribersSubscriberIdServicesServiceId"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdServicesStatus",
      "summary": "Status of all existing service(s) for a subscriber",
      "description": "Status of all existing service(s) for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdServicesStatus"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdAppServices",
      "summary": "Retrieve all existing application services for a subscriber",
      "description": "Retrieve all existing application services for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdAppServices"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdAppServicesAppServiceName",
      "summary": "Retrieve an existing application service setting by subscriberId and service name",
      "description": "Retrieve an existing application service setting by subscriberId and service name",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "appServiceName",
          "type": "string",
          "info": ": Must be one of [ProtectIQ, ExperienceIQ]",
          "required": true,
          "schema": {
            "title": "appServiceName",
            "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": "/getBillingSubscribersSubscriberIdAppServicesAppServiceName"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdAppServicesAppServiceName",
      "summary": "Create a new application service setting or update an existing application service setting for a su",
      "description": "Misc Notes:\n  - If there is no existing app service found for the specified app service name, it will be created.\n  - If there is already existing app service for the specified app service name, it will be updated.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "appServiceName",
          "type": "string",
          "info": ": Must be one of [ProtectIQ, ExperienceIQ]",
          "required": true,
          "schema": {
            "title": "appServiceName",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "App service setting: {\"subscribe\": \"boolean\"}",
          "required": true,
          "schema": {
            "required": [
              "subscribe"
            ],
            "type": "object",
            "properties": {
              "subscribe": {
                "type": "boolean"
              }
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSubscribersSubscriberIdAppServicesAppServiceName"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdArloService",
      "summary": "Retrieve the Arlo Service Info for a subscriber.",
      "description": "Retrieve the Arlo Service Info for a subscriber.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdArloService"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdArloService",
      "summary": "Update the Arlo Service for a subsccriber",
      "description": "Update the Arlo Service for a subsccriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"plan\": \"Must be one of [PARTNER_REGULAR, PARTNER_UNLIMITED, PARTNER_UNLIMITED_PLUS, PARTNER_REGULAR_CANADA, PARTNER_UNLIMITED_CANADA, PARTNER_UNLIMITED_PLUS_CANADA]\", \"2kCameras\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "plan": {
                "type": "string",
                "description": "The plan code of Arlo Smart, e.g. `PARTNER_REGULAR`",
                "enum": [
                  "PARTNER_REGULAR",
                  "PARTNER_UNLIMITED",
                  "PARTNER_UNLIMITED_PLUS",
                  "PARTNER_REGULAR_CANADA",
                  "PARTNER_UNLIMITED_CANADA",
                  "PARTNER_UNLIMITED_PLUS_CANADA"
                ]
              },
              "2kCameras": {
                "type": "integer",
                "description": "Max Number of 2K Cameras. This is only required when plan is `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`."
              }
            },
            "description": "Arlo Service parameters during update.",
            "example": {
              "2kCameras": 4,
              "plan": "PARTNER_REGULAR"
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSubscribersSubscriberIdArloService"
      },
      "task": true
    },
    {
      "name": "postBillingSubscribersSubscriberIdArloService",
      "summary": "Create the Arlo Service for a subscriber",
      "description": "Create the Arlo Service for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"email\": \"string\", \"plan\": \"Must be one of [PARTNER_REGULAR, PARTNER_UNLIMITED, PARTNER_UNLIMITED_PLUS, PARTNER_REGULAR_CANADA, PARTNER_UNLIMITED_CANADA, PARTNER_UNLIMITED_PLUS_CANADA]\", \"2kCameras\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string"
              },
              "plan": {
                "type": "string",
                "description": "The plan code of Arlo Service, e.g. `PARTNER_REGULAR`",
                "enum": [
                  "PARTNER_REGULAR",
                  "PARTNER_UNLIMITED",
                  "PARTNER_UNLIMITED_PLUS",
                  "PARTNER_REGULAR_CANADA",
                  "PARTNER_UNLIMITED_CANADA",
                  "PARTNER_UNLIMITED_PLUS_CANADA"
                ]
              },
              "2kCameras": {
                "type": "integer",
                "description": "Max Number of 2K Cameras. This is only required when plan is `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.\n"
              }
            },
            "description": "Arlo Service parameters during creation.",
            "example": {
              "email": "john.doe@example.com",
              "2kCameras": 4,
              "plan": "PARTNER_REGULAR"
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingSubscribersSubscriberIdArloService"
      },
      "task": true
    },
    {
      "name": "deleteBillingSubscribersSubscriberIdArloService",
      "summary": "Delete the Arlo Service for a subscriber",
      "description": "Delete the Arlo Service for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/deleteBillingSubscribersSubscriberIdArloService"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdServifyContract",
      "summary": "Retrieve the Servify Contract for a subscriber.",
      "description": "Retrieve the Servify Contract for a subscriber.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdServifyContract"
      },
      "task": true
    },
    {
      "name": "postBillingSubscribersSubscriberIdServifyContract",
      "summary": "Create Servify Contract for one subscriber",
      "description": "Create Servify Contract for one subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"email\": \"string\", \"firstName\": \"string\", \"lastName\": \"string\", \"planCode\": \"Must be one of [SERVIFYCAREBRONZE, SERVIFYCARESILVER, SERVIFYCAREGOLD, SERVIFYCAREPLATINUM]\", \"address\": \"string\", \"city\": \"string\", \"state\": \"string\", \"postal\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "Account email when creating a ServifyCare contract",
                "example": "test@test.com"
              },
              "firstName": {
                "type": "string",
                "description": "Account first name when creating a ServifyCare contract",
                "example": "Augustine"
              },
              "lastName": {
                "type": "string",
                "description": "Account last name when creating a ServifyCare contract",
                "example": "Oh"
              },
              "planCode": {
                "type": "string",
                "description": "Plan code when creating a ServifyCare contract",
                "example": "SERVIFYCAREBRONZE",
                "enum": [
                  "SERVIFYCAREBRONZE",
                  "SERVIFYCARESILVER",
                  "SERVIFYCAREGOLD",
                  "SERVIFYCAREPLATINUM"
                ]
              },
              "address": {
                "type": "string",
                "description": "Street name when creating a ServifyCare contract",
                "example": "2777 Orchard Pkwy"
              },
              "city": {
                "type": "string",
                "description": "City name when creating a ServifyCare contract",
                "example": "San Jose"
              },
              "state": {
                "type": "string",
                "description": "State name when creating a ServifyCare contract",
                "example": "California"
              },
              "postal": {
                "type": "string",
                "description": "Zip code when creating a ServifyCare contract",
                "example": "95131"
              }
            },
            "description": "ServifyCare Contract create",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingSubscribersSubscriberIdServifyContract"
      },
      "task": true
    },
    {
      "name": "deleteBillingSubscribersSubscriberIdServifyContract",
      "summary": "Delete the Servify Contract for a subscriber",
      "description": "Delete the Servify Contract for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "reasonCode",
          "type": "string",
          "info": "reason code, such as JUST_TRYING,TOO_EXPENSIVE,DNT_WNT,NON_PAYMENT,MASTER_SERVICE_CANLD: string",
          "required": true,
          "schema": {
            "title": "reasonCode",
            "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": "/deleteBillingSubscribersSubscriberIdServifyContract"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdManagedServiceArlo",
      "summary": "Retrieve the Arlo Service Info for a subscriber.",
      "description": "Retrieve the Arlo Service Info for a subscriber.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdManagedServiceArlo"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdManagedServiceArlo",
      "summary": "Update the Arlo Service for a subsccriber",
      "description": "Update the Arlo Service for a subsccriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"planCode\": \"Must be one of [PARTNER_REGULAR, PARTNER_UNLIMITED, PARTNER_UNLIMITED_PLUS, PARTNER_REGULAR_CANADA, PARTNER_UNLIMITED_CANADA, PARTNER_UNLIMITED_PLUS_CANADA]\", \"2kCameras\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "planCode": {
                "type": "string",
                "description": "The plan code of Arlo Smart, e.g. `PARTNER_REGULAR`",
                "enum": [
                  "PARTNER_REGULAR",
                  "PARTNER_UNLIMITED",
                  "PARTNER_UNLIMITED_PLUS",
                  "PARTNER_REGULAR_CANADA",
                  "PARTNER_UNLIMITED_CANADA",
                  "PARTNER_UNLIMITED_PLUS_CANADA"
                ]
              },
              "2kCameras": {
                "type": "integer",
                "description": "Max Number of 2K Cameras. This is only required when plan is `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`."
              }
            },
            "description": "Arlo Service parameters during update.",
            "example": {
              "2kCameras": 4,
              "planCode": "PARTNER_REGULAR"
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSubscribersSubscriberIdManagedServiceArlo"
      },
      "task": true
    },
    {
      "name": "postBillingSubscribersSubscriberIdManagedServiceArlo",
      "summary": "Create the Arlo Service for a subscriber",
      "description": "Create an Arlo Service account for the subscriber specified by the `subscriberId`.\nThe attributes of Arlo Service account are from standardized subscriber attributes, e.g.\n  * name\n  * firstName\n  * lastName\n  * **email**\n  * phone\n  * serviceAddress\n  * street\n  * streetLine2\n  * city\n  * state\n  * postcode\n  * country\n  * businessName\n  * billingStreet\n  * billingStreetLine2\n  * billingCity\n  * billingState\n  * billingPostcode\n  * billingCountry\n  * serviceCategory\n  * **planCode**\n\nHighlighte...(description truncated)",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"email\": \"string\", \"planCode\": \"Must be one of [PARTNER_REGULAR, PARTNER_UNLIMITED, PARTNER_UNLIMITED_PLUS, PARTNER_REGULAR_CANADA, PARTNER_UNLIMITED_CANADA, PARTNER_UNLIMITED_PLUS_CANADA]\", \"2kCameras\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string"
              },
              "planCode": {
                "type": "string",
                "description": "The plan code of Arlo Service, e.g. `PARTNER_REGULAR`",
                "enum": [
                  "PARTNER_REGULAR",
                  "PARTNER_UNLIMITED",
                  "PARTNER_UNLIMITED_PLUS",
                  "PARTNER_REGULAR_CANADA",
                  "PARTNER_UNLIMITED_CANADA",
                  "PARTNER_UNLIMITED_PLUS_CANADA"
                ]
              },
              "2kCameras": {
                "type": "integer",
                "description": "Max Number of 2K Cameras. This is only required when plan is `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.\n"
              }
            },
            "description": "Arlo Service parameters during creation.",
            "example": {
              "email": "john.doe@example.com",
              "2kCameras": 4,
              "planCode": "PARTNER_REGULAR"
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingSubscribersSubscriberIdManagedServiceArlo"
      },
      "task": true
    },
    {
      "name": "deleteBillingSubscribersSubscriberIdManagedServiceArlo",
      "summary": "Delete the Arlo Service for a subscriber",
      "description": "Delete the Arlo Service for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/deleteBillingSubscribersSubscriberIdManagedServiceArlo"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdManagedServiceServify",
      "summary": "Retrieve the Servify Contract for a subscriber.",
      "description": "Retrieve the Servify Contract for a subscriber.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdManagedServiceServify"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdManagedServiceServify",
      "summary": "Update Servify Contract Plan for a subscriber",
      "description": "Update Servify Contract Plan for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "planCode",
          "type": "string",
          "info": ": Must be one of [SERVIFYCAREBRONZE, SERVIFYCARESILVER, SERVIFYCAREGOLD, SERVIFYCAREPLATINUM]",
          "required": true,
          "schema": {
            "title": "planCode",
            "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": "/putBillingSubscribersSubscriberIdManagedServiceServify"
      },
      "task": true
    },
    {
      "name": "postBillingSubscribersSubscriberIdManagedServiceServify",
      "summary": "Create Servify Contract for a subscriber",
      "description": "Create a Servify Contract for the subscriber specified by the `subscriberId`.\nThe attributes of Servify Contract are from standardized subscriber attributes, e.g.\n  * name\n  * **firstName**\n  * **lastName**\n  * **email**\n  * phone\n  * **serviceAddress**\n  * street\n  * streetLine2\n  * **city**\n  * **state**\n  * **postcode**\n  * country\n  * businessName\n  * billingStreet\n  * billingStreetLine2\n  * billingCity\n  * billingState\n  * billingPostcode\n  * billingCountry\n  * serviceCategory\n  * **planCod...(description truncated)",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"email\": \"string\", \"firstName\": \"string\", \"lastName\": \"string\", \"planCode\": \"Must be one of [SERVIFYCAREBRONZE, SERVIFYCARESILVER, SERVIFYCAREGOLD, SERVIFYCAREPLATINUM]\", \"serviceAddress\": \"string\", \"city\": \"string\", \"state\": \"string\", \"postcode\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "email": {
                "type": "string",
                "description": "Account email when creating a ServifyCare contract",
                "example": "test@test.com"
              },
              "firstName": {
                "type": "string",
                "description": "Account first name when creating a ServifyCare contract",
                "example": "Augustine"
              },
              "lastName": {
                "type": "string",
                "description": "Account last name when creating a ServifyCare contract",
                "example": "Oh"
              },
              "planCode": {
                "description": "Plan code when creating a ServifyCare contract",
                "type": "string",
                "enum": [
                  "SERVIFYCAREBRONZE",
                  "SERVIFYCARESILVER",
                  "SERVIFYCAREGOLD",
                  "SERVIFYCAREPLATINUM"
                ],
                "example": "SERVIFYCAREBRONZE"
              },
              "serviceAddress": {
                "type": "string",
                "description": "Street name when creating a ServifyCare contract",
                "example": "2777 Orchard Pkwy"
              },
              "city": {
                "type": "string",
                "description": "City name when creating a ServifyCare contract",
                "example": "San Jose"
              },
              "state": {
                "type": "string",
                "description": "State name when creating a ServifyCare contract",
                "example": "California"
              },
              "postcode": {
                "type": "string",
                "description": "Zip code when creating a ServifyCare contract",
                "example": "95131"
              }
            },
            "description": "ServifyCare Contract create",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingSubscribersSubscriberIdManagedServiceServify"
      },
      "task": true
    },
    {
      "name": "deleteBillingSubscribersSubscriberIdManagedServiceServify",
      "summary": "Delete the Servify Contract for a subscriber",
      "description": "Delete the Servify Contract for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "reasonCode",
          "type": "string",
          "info": "reason code, such as JUST_TRYING,TOO_EXPENSIVE,DNT_WNT,NON_PAYMENT,MASTER_SERVICE_CANLD: string",
          "required": true,
          "schema": {
            "title": "reasonCode",
            "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": "/deleteBillingSubscribersSubscriberIdManagedServiceServify"
      },
      "task": true
    },
    {
      "name": "getBillingSubscribersSubscriberIdSmarttownWifiSubscriber",
      "summary": "Retrieve the subscriber membership of SmartTown Wi-Fi for a subscriber.",
      "description": "Retrieve the subscriber membership of SmartTown Wi-Fi for a subscriber.",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSubscribersSubscriberIdSmarttownWifiSubscriber"
      },
      "task": true
    },
    {
      "name": "putBillingSubscribersSubscriberIdSmarttownWifiSubscriber",
      "summary": "Create/Update subscriber membershp of SmartTown Wi-Fi for a subscriber",
      "description": "Create/Update subscriber membershp of SmartTown Wi-Fi for a subscriber",
      "input": [
        {
          "name": "subscriberId",
          "type": "string",
          "info": ": string",
          "required": true,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"enable\": \"boolean\", \"communities\": [{\"micrositeId\": \"string\"}]}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "enable": {
                "type": "boolean",
                "example": true
              },
              "communities": {
                "type": "array",
                "description": "SmartTown Wi-Fi Community/Microsite",
                "items": {
                  "type": "object",
                  "properties": {
                    "micrositeId": {
                      "type": "string",
                      "example": "5ed11c29-efe0-45e5-a64a-8dc70d5285d2"
                    }
                  }
                }
              }
            },
            "description": "Subscriber Community membership",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSubscribersSubscriberIdSmarttownWifiSubscriber"
      },
      "task": true
    },
    {
      "name": "getBillingServiceDefinitions",
      "summary": "Retrieve all service definition(s)",
      "description": "Retrieve all service definition(s)",
      "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": "/getBillingServiceDefinitions"
      },
      "task": true
    },
    {
      "name": "putBillingServiceDefinitions",
      "summary": "Update all service definition(s) via a single request",
      "description": "Update all service definition(s) via a single request",
      "input": [
        {
          "name": "body",
          "type": "array",
          "info": ": array",
          "required": true,
          "schema": {
            "type": "array",
            "example": [
              {
                "_id": "dbfbdb76-9991-4be9-b499-0d744709f9ca",
                "type": "data",
                "usoc": "7030Z759",
                "description": "Gold Internet",
                "upSpeed": 100,
                "downSpeed": 1000,
                "techType": "Fiber",
                "group": ">=1000M",
                "fee": 80
              },
              {
                "_id": "d62463ae-d0a8-4c3f-8797-1c135b192ba7",
                "type": "data",
                "usoc": "8030Z759",
                "description": "Silver Internet",
                "upSpeed": 10,
                "downSpeed": 100,
                "techType": "DSL",
                "group": "100M-500M",
                "fee": 49.99
              },
              {
                "_id": "0cf62466-bbc7-46d5-8f67-e5e6f64c5501",
                "type": "video",
                "usoc": "9030Z759",
                "description": "Gold Video",
                "techType": "Fiber",
                "fee": 35
              }
            ],
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "string",
                  "description": "System generated id string for each service definition object",
                  "example": "b565939f-41e2-489d-b6f3-3a4cb66955c1"
                },
                "usoc": {
                  "type": "string",
                  "description": "Uniform Service Order Code.\n\nThis code uniquely identifies a service tier or offering. It is used in Calix Marketing Cloud to compute revenue based on a lookup table.\nIt can also be used in Calix Support Cloud to provide downstream and upstream speed values on a per-service basis.",
                  "example": "7030Z759"
                },
                "type": {
                  "type": "string",
                  "description": "Type of service tier or offering.",
                  "enum": [
                    "data",
                    "video",
                    "voice",
                    "other"
                  ]
                },
                "description": {
                  "type": "string",
                  "description": "A text description for the particular service, such as \"Gold Internet\" or \"Residential Voice\". This is a free-form field.",
                  "example": "Gold Internet"
                },
                "downSpeed": {
                  "type": "integer",
                  "description": "Downstream Speed for data services, in Mbps.",
                  "example": 100
                },
                "upSpeed": {
                  "type": "integer",
                  "description": "Upstream Speed for data services, in Mbps.",
                  "example": 20
                },
                "group": {
                  "type": "string",
                  "description": "This field allows you to group similar speed tiers into buckets for easy selection and reporting if necessary. For example, if you have a large number of speed tiers, you may wish to group them into similar bands such as: <=5 M; 6-10M; 15-50M; 100M+; 1G",
                  "example": "6-10M"
                },
                "techType": {
                  "type": "string",
                  "description": "Technology type the service is delivered on. For example:\n- Cable\n- Fiber\n- Wireless\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                  "example": "Fiber"
                },
                "customerType": {
                  "type": "string",
                  "description": "Customer type. For example:\n- Residential\n- Business\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                  "example": "Residential"
                },
                "fee": {
                  "type": "number",
                  "example": 75.99
                }
              },
              "description": "Service definitions are common objects that are applicable to all subscribers.\n\nEach Service Definition is uniquely identified by its usoc, or \"Universal Service Ordering Code\"."
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingServiceDefinitions"
      },
      "task": true
    },
    {
      "name": "postBillingServiceDefinitions",
      "summary": "Create a new service definition.",
      "description": "Create a new service definition.",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": "The new service definition.\n\nThe following fields are mandatory for all create requests:\n  - usoc\n  - type: {\"_id\": \"string\", \"usoc\": \"string\", \"type\": \"Must be one of [data, video, voice, other]\", \"description\": \"string\", \"downSpeed\": 123, \"upSpeed\": 123, \"group\": \"string\", \"techType\": \"string\", \"customerType\": \"string\", \"fee\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "System generated id string for each service definition object",
                "example": "b565939f-41e2-489d-b6f3-3a4cb66955c1"
              },
              "usoc": {
                "type": "string",
                "description": "Uniform Service Order Code.\n\nThis code uniquely identifies a service tier or offering. It is used in Calix Marketing Cloud to compute revenue based on a lookup table.\nIt can also be used in Calix Support Cloud to provide downstream and upstream speed values on a per-service basis.",
                "example": "7030Z759"
              },
              "type": {
                "type": "string",
                "description": "Type of service tier or offering.",
                "enum": [
                  "data",
                  "video",
                  "voice",
                  "other"
                ]
              },
              "description": {
                "type": "string",
                "description": "A text description for the particular service, such as \"Gold Internet\" or \"Residential Voice\". This is a free-form field.",
                "example": "Gold Internet"
              },
              "downSpeed": {
                "type": "integer",
                "description": "Downstream Speed for data services, in Mbps.",
                "example": 100
              },
              "upSpeed": {
                "type": "integer",
                "description": "Upstream Speed for data services, in Mbps.",
                "example": 20
              },
              "group": {
                "type": "string",
                "description": "This field allows you to group similar speed tiers into buckets for easy selection and reporting if necessary. For example, if you have a large number of speed tiers, you may wish to group them into similar bands such as: <=5 M; 6-10M; 15-50M; 100M+; 1G",
                "example": "6-10M"
              },
              "techType": {
                "type": "string",
                "description": "Technology type the service is delivered on. For example:\n- Cable\n- Fiber\n- Wireless\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                "example": "Fiber"
              },
              "customerType": {
                "type": "string",
                "description": "Customer type. For example:\n- Residential\n- Business\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                "example": "Residential"
              },
              "fee": {
                "type": "number",
                "example": 75.99
              }
            },
            "description": "Service definitions are common objects that are applicable to all subscribers.\n\nEach Service Definition is uniquely identified by its usoc, or \"Universal Service Ordering Code\".",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingServiceDefinitions"
      },
      "task": true
    },
    {
      "name": "getBillingServiceDefinitionsServiceDefinitionId",
      "summary": "Retrieve an existing service definition by usoc.",
      "description": "Retrieve an existing service definition by usoc.",
      "input": [
        {
          "name": "serviceDefinitionId",
          "type": "string",
          "info": "id of the existing service definition: string",
          "required": true,
          "schema": {
            "title": "serviceDefinitionId",
            "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": "/getBillingServiceDefinitionsServiceDefinitionId"
      },
      "task": true
    },
    {
      "name": "putBillingServiceDefinitionsServiceDefinitionId",
      "summary": "Update an existing service definition by id.",
      "description": "Update an existing service definition by id.",
      "input": [
        {
          "name": "serviceDefinitionId",
          "type": "string",
          "info": "id of the existing service definition: string",
          "required": true,
          "schema": {
            "title": "serviceDefinitionId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": "The updated service definition.\n\nThe following fields are mandatory for all create requests:\n  - usoc\n  - type: {\"_id\": \"string\", \"usoc\": \"string\", \"type\": \"Must be one of [data, video, voice, other]\", \"description\": \"string\", \"downSpeed\": 123, \"upSpeed\": 123, \"group\": \"string\", \"techType\": \"string\", \"customerType\": \"string\", \"fee\": 123}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "System generated id string for each service definition object",
                "example": "b565939f-41e2-489d-b6f3-3a4cb66955c1"
              },
              "usoc": {
                "type": "string",
                "description": "Uniform Service Order Code.\n\nThis code uniquely identifies a service tier or offering. It is used in Calix Marketing Cloud to compute revenue based on a lookup table.\nIt can also be used in Calix Support Cloud to provide downstream and upstream speed values on a per-service basis.",
                "example": "7030Z759"
              },
              "type": {
                "type": "string",
                "description": "Type of service tier or offering.",
                "enum": [
                  "data",
                  "video",
                  "voice",
                  "other"
                ]
              },
              "description": {
                "type": "string",
                "description": "A text description for the particular service, such as \"Gold Internet\" or \"Residential Voice\". This is a free-form field.",
                "example": "Gold Internet"
              },
              "downSpeed": {
                "type": "integer",
                "description": "Downstream Speed for data services, in Mbps.",
                "example": 100
              },
              "upSpeed": {
                "type": "integer",
                "description": "Upstream Speed for data services, in Mbps.",
                "example": 20
              },
              "group": {
                "type": "string",
                "description": "This field allows you to group similar speed tiers into buckets for easy selection and reporting if necessary. For example, if you have a large number of speed tiers, you may wish to group them into similar bands such as: <=5 M; 6-10M; 15-50M; 100M+; 1G",
                "example": "6-10M"
              },
              "techType": {
                "type": "string",
                "description": "Technology type the service is delivered on. For example:\n- Cable\n- Fiber\n- Wireless\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                "example": "Fiber"
              },
              "customerType": {
                "type": "string",
                "description": "Customer type. For example:\n- Residential\n- Business\n\nThis is a free-form field but should be kept to a small number of distinct values.",
                "example": "Residential"
              },
              "fee": {
                "type": "number",
                "example": 75.99
              }
            },
            "description": "Service definitions are common objects that are applicable to all subscribers.\n\nEach Service Definition is uniquely identified by its usoc, or \"Universal Service Ordering Code\".",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingServiceDefinitionsServiceDefinitionId"
      },
      "task": true
    },
    {
      "name": "deleteBillingServiceDefinitionsServiceDefinitionId",
      "summary": "Delete an existing service definition by usoc.",
      "description": "Delete an existing service definition by usoc.",
      "input": [
        {
          "name": "serviceDefinitionId",
          "type": "string",
          "info": "id of the existing service definition: string",
          "required": true,
          "schema": {
            "title": "serviceDefinitionId",
            "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": "/deleteBillingServiceDefinitionsServiceDefinitionId"
      },
      "task": true
    },
    {
      "name": "getBillingSupportOperatorSsid",
      "summary": "Retrieve ssid by subscriberId or RG serialNumber",
      "description": "Retrieve ssid by subscriberId or RG serialNumber",
      "input": [
        {
          "name": "serialNumber",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "serialNumber",
            "type": "string"
          }
        },
        {
          "name": "subscriberId",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "subscriberId",
            "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": "string",
                "description": "id of a SSID record which can be used to change configuration"
              },
              "Enable": {
                "type": "boolean"
              },
              "SSID": {
                "type": "string"
              },
              "SSIDAdvertisementEnabled": {
                "type": "boolean"
              },
              "freqBand": {
                "type": "string",
                "enum": [
                  "5GHz",
                  "2.4GHz"
                ]
              },
              "BeaconType": {
                "type": "string",
                "enum": [
                  "Basic",
                  "11i",
                  "WPAand11i"
                ]
              },
              "BasicEncryptionModes": {
                "type": "string"
              },
              "BasicAuthenticationMode": {
                "type": "string"
              },
              "WPAEncryptionModes": {
                "type": "string"
              },
              "IEEE11iEncryptionModes": {
                "type": "string"
              },
              "IEEE11iAuthenticationMode": {
                "type": "string"
              },
              "KeyPassphrase": {
                "type": "string"
              },
              "PRConfig": {
                "type": "object",
                "properties": {
                  "Enable": {
                    "type": "boolean"
                  },
                  "SSID": {
                    "type": "string"
                  },
                  "SSIDAdvertisementEnabled": {
                    "type": "boolean"
                  },
                  "BeaconType": {
                    "type": "string",
                    "enum": [
                      "Basic",
                      "11i",
                      "WPAand11i"
                    ]
                  },
                  "BasicEncryptionModes": {
                    "type": "string"
                  },
                  "BasicAuthenticationMode": {
                    "type": "string"
                  },
                  "WPAEncryptionModes": {
                    "type": "string"
                  },
                  "IEEE11iEncryptionModes": {
                    "type": "string"
                  },
                  "IEEE11iAuthenticationMode": {
                    "type": "string"
                  },
                  "KeyPassphrase": {
                    "type": "string"
                  }
                },
                "description": "SSID configuration provision record",
                "example": {
                  "id": "SSID1",
                  "Enable": true,
                  "SSID": "2.4G Primary",
                  "SSIDAdvertisementEnabled": true,
                  "BeaconType": "WPAand11i",
                  "BasicEncryptionModes": "None",
                  "BasicAuthenticationMode": "None",
                  "WPAEncryptionModes": "AESEncryption",
                  "IEEE11iEncryptionModes": "AESEncryption",
                  "IEEE11iAuthenticationMode": "PSKAuthentication",
                  "KeyPassphrase": "ATCadb#?!?_"
                }
              },
              "isInL2Bridge": {
                "type": "boolean"
              }
            },
            "example": {
              "id": "SSID1",
              "Enable": true,
              "SSID": "2.4G Primary",
              "SSIDAdvertisementEnabled": true,
              "BeaconType": "WPAand11i",
              "BasicEncryptionModes": "None",
              "BasicAuthenticationMode": "None",
              "WPAEncryptionModes": "AESEncryption",
              "IEEE11iEncryptionModes": "AESEncryption",
              "IEEE11iAuthenticationMode": "PSKAuthentication",
              "KeyPassphrase": "ATCadb#?!?_",
              "freqBand": "2.4GHz",
              "PRConfig": {
                "Enable": true,
                "SSID": "2.4G Primary",
                "SSIDAdvertisementEnabled": true,
                "BeaconType": "WPAand11i",
                "BasicEncryptionModes": "None",
                "BasicAuthenticationMode": "None",
                "WPAEncryptionModes": "AESEncryption",
                "IEEE11iEncryptionModes": "AESEncryption",
                "IEEE11iAuthenticationMode": "PSKAuthentication",
                "KeyPassphrase": "ATCadb#?!?_"
              },
              "isInL2Bridge": false
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getBillingSupportOperatorSsid"
      },
      "task": true
    },
    {
      "name": "putBillingSupportOperatorSsid",
      "summary": "Update ssid by subscriberId or RG serialNumber",
      "description": "Update ssid by subscriberId or RG serialNumber",
      "input": [
        {
          "name": "serialNumber",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "serialNumber",
            "type": "string"
          }
        },
        {
          "name": "subscriberId",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"id\": \"string\", \"Enable\": \"boolean\", \"SSID\": \"string\", \"SSIDAdvertisementEnabled\": \"boolean\", \"BeaconType\": \"Must be one of [Basic, 11i, WPAand11i]\", \"BasicEncryptionModes\": \"string\", \"BasicAuthenticationMode\": \"string\", \"WPAEncryptionModes\": \"string\", \"IEEE11iEncryptionModes\": \"string\", \"IEEE11iAuthenticationMode\": \"string\", \"KeyPassphrase\": \"string\", \"modelName\": \"string\", \"opMode\": \"string\"}",
          "required": false,
          "schema": {
            "required": [
              "id"
            ],
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "id of a SSID record which can be used to change configuration. If there are multiple ids, separate them with commas. Field for primary ssid.",
                "example": "1,2"
              },
              "Enable": {
                "type": "boolean"
              },
              "SSID": {
                "type": "string"
              },
              "SSIDAdvertisementEnabled": {
                "type": "boolean"
              },
              "BeaconType": {
                "type": "string",
                "enum": [
                  "Basic",
                  "11i",
                  "WPAand11i"
                ]
              },
              "BasicEncryptionModes": {
                "type": "string"
              },
              "BasicAuthenticationMode": {
                "type": "string"
              },
              "WPAEncryptionModes": {
                "type": "string"
              },
              "IEEE11iEncryptionModes": {
                "type": "string"
              },
              "IEEE11iAuthenticationMode": {
                "type": "string"
              },
              "KeyPassphrase": {
                "type": "string"
              },
              "modelName": {
                "type": "string"
              },
              "opMode": {
                "type": "string"
              }
            },
            "example": {
              "id": "1",
              "Enable": true,
              "SSID": "test",
              "SSIDAdvertisementEnabled": true,
              "BeaconType": "Basic",
              "BasicEncryptionModes": "None",
              "BasicAuthenticationMode": "None",
              "WPAEncryptionModes": "None",
              "IEEE11iEncryptionModes": "AESEncryption",
              "IEEE11iAuthenticationMode": "PSKAuthentication",
              "KeyPassphrase": "ssidKeyPassphrase"
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "result": {
                "type": "string",
                "example": "OK"
              }
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSupportOperatorSsid"
      },
      "task": true
    },
    {
      "name": "getBillingSupportOperatorSecondarynetworkAvailability",
      "summary": "Retrieve secondarynetwork availability by subscriberId or RG serialNumber",
      "description": "Retrieve secondarynetwork availability by subscriberId or RG serialNumber",
      "input": [
        {
          "name": "serialNumber",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "serialNumber",
            "type": "string"
          }
        },
        {
          "name": "subscriberId",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "subscriberId",
            "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": "/getBillingSupportOperatorSecondarynetworkAvailability"
      },
      "task": true
    },
    {
      "name": "getBillingSupportOperatorSecondarynetwork",
      "summary": "Retrieve secondarynetwork by subscriberId or RG serialNumber",
      "description": "* encryptionType (0 none, 1 WPA2-Personal, 2 WPA-WPA2-Personal, 5 WPA2-WPA3-Personal, 6 WPA3-Personal)\n* type (1 guest, 2 WFH, 3 custom unified, 4 custom 2.4GHz, 5 custom 5GHz, 6 custom 6GHz)",
      "input": [
        {
          "name": "serialNumber",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "serialNumber",
            "type": "string"
          }
        },
        {
          "name": "subscriberId",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "eventId": {
                "type": "string"
              },
              "eventName": {
                "type": "string"
              },
              "isIndefinite": {
                "type": "boolean"
              },
              "duration": {
                "type": "object",
                "properties": {
                  "startTime": {
                    "type": "integer"
                  },
                  "endTime": {
                    "type": "integer"
                  }
                }
              },
              "ssid": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "encryptionType": {
                "type": "integer"
              },
              "type": {
                "type": "integer"
              },
              "isolated": {
                "type": "boolean"
              },
              "smartQos": {
                "type": "boolean"
              },
              "band24": {
                "type": "boolean"
              },
              "band5": {
                "type": "boolean"
              },
              "band6": {
                "type": "boolean"
              },
              "impaired": {
                "type": "boolean"
              }
            },
            "example": {
              "eventId": "60abf177-fd67-4227-9b53-f2e3a80b5e58",
              "eventName": "CU_WiFi4",
              "isIndefinite": true,
              "duration": {
                "startTime": 0,
                "endTime": 0
              },
              "ssid": "CU_WiFi4",
              "encryptionType": 5,
              "type": 1,
              "isolated": true,
              "smartQos": false,
              "band24": true,
              "band5": true,
              "band6": false,
              "impaired": false
            }
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getBillingSupportOperatorSecondarynetwork"
      },
      "task": true
    },
    {
      "name": "putBillingSupportOperatorSecondarynetwork",
      "summary": "Update secondarynetwork by subscriberId or RG serialNumber",
      "description": "* encryptionType (0 none, 1 WPA2-Personal, 2 WPA-WPA2-Personal, 5 WPA2-WPA3-Personal, 6 WPA3-Personal)\n* type (1 guest, 2 WFH, 3 custom unified, 4 custom 2.4GHz, 5 custom 5GHz, 6 custom 6GHz)",
      "input": [
        {
          "name": "serialNumber",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "serialNumber",
            "type": "string"
          }
        },
        {
          "name": "subscriberId",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"eventId\": \"string\", \"ssid\": \"string\", \"password\": \"string\", \"encryptionType\": 123, \"isolated\": \"boolean\", \"smartQos\": \"boolean\", \"band24Admin\": \"boolean\", \"band5Admin\": \"boolean\", \"band6Admin\": \"boolean\", \"eventName\": \"string\", \"isIndefinite\": \"boolean\", \"duration\": {\"startTime\": 123, \"endTime\": 123}}",
          "required": false,
          "schema": {
            "type": "object",
            "properties": {
              "eventId": {
                "type": "string"
              },
              "ssid": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "encryptionType": {
                "type": "integer"
              },
              "isolated": {
                "type": "boolean",
                "description": "for guest true or false (optional, default true), for wfh always true (ignored), for custom_xxx true or false (optional, default true)"
              },
              "smartQos": {
                "type": "boolean",
                "description": "for guest always false (ignored), for wfh always true (ignored), for custom_xxx, true or false (required)"
              },
              "band24Admin": {
                "type": "boolean"
              },
              "band5Admin": {
                "type": "boolean"
              },
              "band6Admin": {
                "type": "boolean"
              },
              "eventName": {
                "type": "string",
                "description": "only for guest type"
              },
              "isIndefinite": {
                "type": "boolean",
                "description": "only for guest type"
              },
              "duration": {
                "type": "object",
                "properties": {
                  "startTime": {
                    "type": "integer"
                  },
                  "endTime": {
                    "type": "integer"
                  }
                },
                "description": "only for guest type"
              }
            },
            "example": {
              "eventId": "69c9398a-1880-42d7-bf66-139cee964180",
              "ssid": "test2",
              "password": "newpwd",
              "encryptionType": 2,
              "isolated": true,
              "smartQos": false,
              "band24Admin": true,
              "band5Admin": true,
              "band6Admin": true,
              "eventName": "fortest2",
              "isIndefinite": true,
              "duration": {
                "startTime": 0,
                "endTime": 0
              }
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/putBillingSupportOperatorSecondarynetwork"
      },
      "task": true
    },
    {
      "name": "postBillingSupportOperatorSecondarynetwork",
      "summary": "Create secondarynetwork by subscriberId or RG serialNumber",
      "description": "* encryptionType (0 none, 1 WPA2-Personal, 2 WPA-WPA2-Personal, 5 WPA2-WPA3-Personal, 6 WPA3-Personal)\n* type (1 guest, 2 WFH, 3 custom unified, 4 custom 2.4GHz, 5 custom 5GHz, 6 custom 6GHz)",
      "input": [
        {
          "name": "serialNumber",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "serialNumber",
            "type": "string"
          }
        },
        {
          "name": "subscriberId",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time: string",
          "required": false,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"ssid\": \"string\", \"password\": \"string\", \"encryptionType\": 123, \"type\": 123, \"isolated\": \"boolean\", \"smartQos\": \"boolean\", \"eventName\": \"string\", \"isIndefinite\": \"boolean\", \"duration\": {\"startTime\": 123, \"endTime\": 123}}",
          "required": false,
          "schema": {
            "type": "object",
            "properties": {
              "ssid": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "encryptionType": {
                "type": "integer"
              },
              "type": {
                "type": "integer"
              },
              "isolated": {
                "type": "boolean",
                "description": "for guest true or false (optional, default true), for wfh always true (ignored), for custom_xxx true or false (optional, default true)"
              },
              "smartQos": {
                "type": "boolean",
                "description": "for guest always false (ignored), for wfh always true (ignored), for custom_xxx, true or false (required)"
              },
              "eventName": {
                "type": "string",
                "description": "only for guest type"
              },
              "isIndefinite": {
                "type": "boolean",
                "description": "only for guest type"
              },
              "duration": {
                "type": "object",
                "properties": {
                  "startTime": {
                    "type": "integer"
                  },
                  "endTime": {
                    "type": "integer"
                  }
                },
                "description": "only for guest type"
              }
            },
            "example": {
              "ssid": "test1",
              "password": "12345678",
              "encryptionType": 5,
              "type": 1,
              "isolated": true,
              "smartQos": false,
              "eventName": "fortest",
              "isIndefinite": true,
              "duration": {
                "startTime": 0,
                "endTime": 0
              }
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/postBillingSupportOperatorSecondarynetwork"
      },
      "task": true
    },
    {
      "name": "deleteBillingSupportOperatorSecondarynetwork",
      "summary": "Delete secondarynetwork by subscriberId or RG serialNumber",
      "description": "Delete secondarynetwork by subscriberId or RG serialNumber",
      "input": [
        {
          "name": "serialNumber",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time.: string",
          "required": false,
          "schema": {
            "title": "serialNumber",
            "type": "string"
          }
        },
        {
          "name": "subscriberId",
          "type": "string",
          "info": "serialNumber and subscriberId cannot be null at the same time.: string",
          "required": false,
          "schema": {
            "title": "subscriberId",
            "type": "string"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"eventId\": \"string\"}",
          "required": false,
          "schema": {
            "type": "object",
            "properties": {
              "eventId": {
                "type": "string"
              }
            },
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteBillingSupportOperatorSecondarynetwork"
      },
      "task": true
    },
    {
      "name": "searchServiceDefinitions",
      "summary": "GET method for retrieving details of all service definitions",
      "description": "The GET method will retrieve the details of the service definitions",
      "input": [
        {
          "name": "name",
          "type": "string",
          "info": "name for which details need to be retrieved.: string",
          "required": false,
          "schema": {
            "title": "name",
            "type": "string"
          }
        },
        {
          "name": "serviceType",
          "type": "string",
          "info": "service-type: Must be one of [DATA, VOICE, VIDEO]",
          "required": false,
          "schema": {
            "title": "serviceType",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "description": "For defining a service, service-manager uses the service attributes defined (in service template) along with bandwidth requirements (in bandwidth tier), to create service definition. Service definition will be used to activate a service for a user.",
            "type": "object",
            "properties": {
              "name": {
                "description": "The name of the service definition.",
                "type": "string"
              },
              "tierName": {
                "description": "The name of the bandwidth tier to be used.",
                "type": "string"
              },
              "serviceTemplateName": {
                "description": "The name of the service template to be used.",
                "type": "string"
              },
              "tagAction": {
                "description": "tag action",
                "type": "string"
              },
              "napNodeId": {
                "description": "The id of the nap node under which a service definition will be implemented.",
                "type": "string"
              },
              "ouiMatchListName": {
                "description": "Name of the oui list for oui list matching in full-bridge service",
                "type": "string"
              },
              "description": {
                "description": "Description of service definition",
                "type": "string"
              },
              "multicastVlanName": {
                "description": "The name of the multicast VLAN Profile for SD.",
                "type": "string"
              },
              "multicastRangeName": {
                "description": "The name of the multicast Range Filter Profile for SD.",
                "type": "string"
              }
            },
            "required": [
              "name"
            ]
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/searchServiceDefinitions"
      },
      "task": true
    },
    {
      "name": "getTrafficUsage",
      "summary": "Get subscriber traffic usage",
      "description": "Get subscriber traffic usage",
      "input": [
        {
          "name": "granularity",
          "type": "string",
          "info": "The data granularity to query.  Granularity can be an epoch in seconds or in string form.  Examples: 1hour, 24hour, 1month: string",
          "required": true,
          "schema": {
            "title": "granularity",
            "type": "string"
          }
        },
        {
          "name": "startTime",
          "type": "string",
          "info": "The start time of the aggregation period to query.  The parameter can be an epoch in seconds or a string date.: string",
          "required": true,
          "schema": {
            "title": "startTime",
            "type": "string"
          }
        },
        {
          "name": "endTime",
          "type": "string",
          "info": "The ending time (exclusive) to query data for.  The parameter can be an epoch in seconds or a string date.  Defaults to current time.: string",
          "required": false,
          "schema": {
            "title": "endTime",
            "type": "string"
          }
        },
        {
          "name": "subscriber",
          "type": "string",
          "info": "Subscriber identifier.  Can be one of endpoint title, subscriber ID, subscriber location ID, or IP address: string",
          "required": true,
          "schema": {
            "title": "subscriber",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "type": "array",
          "items": {
            "required": [
              "startPeriodSec"
            ],
            "type": "object",
            "properties": {
              "startPeriodSec": {
                "type": "integer",
                "description": "The start of the time period in epoch seconds to which the data applies",
                "example": 1646956800
              },
              "usOctets": {
                "type": "integer",
                "description": "The number of upstream bytes",
                "example": 10160136322385
              },
              "dsOctets": {
                "type": "integer",
                "description": "The number of downstream bytes",
                "example": 10159327006780
              },
              "totalOctets": {
                "type": "integer",
                "description": "The total number of bytes",
                "example": 20319463329165
              },
              "subscriberId": {
                "type": "string",
                "description": "The ID of the subscriber associated to the endpoint",
                "example": "3d273d57-724d-41f1-b01a-76cbec876e83"
              },
              "subscriberName": {
                "type": "string",
                "description": "The name of the subscriber associated to the endpoint",
                "example": "John Doe"
              },
              "subscriberLocationId": {
                "type": "string",
                "description": "The ID of the subscriber's location",
                "example": "123-4-5678:555 5TH ST"
              },
              "account": {
                "type": "string",
                "description": "The subscriber's account",
                "example": "123-4-5678"
              },
              "phone": {
                "type": "string",
                "description": "The subscriber's phone number",
                "example": "555-555-5555"
              },
              "email": {
                "type": "string",
                "description": "The subscriber's email address",
                "example": "johndoe@555.com"
              },
              "peakUsRate": {
                "type": "integer",
                "description": "The peak upstream rate in bits per second",
                "example": 1127235167
              },
              "peakDsRate": {
                "type": "integer",
                "description": "The peak downstream rate in bits per second",
                "example": 1131424602
              },
              "usRate": {
                "type": "integer",
                "description": "The average upstream rate in bits per second",
                "example": 940753363
              },
              "dsRate": {
                "type": "integer",
                "description": "The average downstream rate in bits per second",
                "example": 940678427
              },
              "endpoint": {
                "type": "string",
                "description": "The endpoint the data is associated with",
                "example": "123-4-5678/CXNK55555555"
              },
              "ipAddress": {
                "type": "string",
                "description": "The IP address(es) the data is associated with in comma separated format",
                "example": "1.2.3.4"
              }
            },
            "description": "Subscriber usage"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getTrafficUsage"
      },
      "task": true
    },
    {
      "name": "getTrafficUsageForAllSubs",
      "summary": "Get subscriber traffic usage for all subscribers",
      "description": "Get subscriber traffic usage for all subscribers",
      "input": [
        {
          "name": "granularity",
          "type": "string",
          "info": "The data granularity to query.  Granularity can be an epoch in seconds or in string form.  Examples: 1hour, 24hour, 1month: string",
          "required": true,
          "schema": {
            "title": "granularity",
            "type": "string"
          }
        },
        {
          "name": "startTime",
          "type": "string",
          "info": "The start time of the aggregation period to query.  The parameter can be an epoch in seconds or a string date.: string",
          "required": true,
          "schema": {
            "title": "startTime",
            "type": "string"
          }
        },
        {
          "name": "endTime",
          "type": "string",
          "info": "The ending time (exclusive) to query data for.  The parameter can be an epoch in seconds or a string date.  Defaults to current time.: string",
          "required": false,
          "schema": {
            "title": "endTime",
            "type": "string"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Number of records to skip when there are many records matching the query criteria.: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of records in the response when there are many subscriber records matching the query criteria.  Minimum is 1 and maximum is 5000.   More than the value 100...(description truncated): 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": "array",
          "items": {
            "required": [
              "startPeriodSec"
            ],
            "type": "object",
            "properties": {
              "startPeriodSec": {
                "type": "integer",
                "description": "The start of the time period in epoch seconds to which the data applies",
                "example": 1646956800
              },
              "usOctets": {
                "type": "integer",
                "description": "The number of upstream bytes",
                "example": 10160136322385
              },
              "dsOctets": {
                "type": "integer",
                "description": "The number of downstream bytes",
                "example": 10159327006780
              },
              "totalOctets": {
                "type": "integer",
                "description": "The total number of bytes",
                "example": 20319463329165
              },
              "subscriberId": {
                "type": "string",
                "description": "The ID of the subscriber associated to the endpoint",
                "example": "3d273d57-724d-41f1-b01a-76cbec876e83"
              },
              "subscriberName": {
                "type": "string",
                "description": "The name of the subscriber associated to the endpoint",
                "example": "John Doe"
              },
              "subscriberLocationId": {
                "type": "string",
                "description": "The ID of the subscriber's location",
                "example": "123-4-5678:555 5TH ST"
              },
              "account": {
                "type": "string",
                "description": "The subscriber's account",
                "example": "123-4-5678"
              },
              "phone": {
                "type": "string",
                "description": "The subscriber's phone number",
                "example": "555-555-5555"
              },
              "email": {
                "type": "string",
                "description": "The subscriber's email address",
                "example": "johndoe@555.com"
              },
              "peakUsRate": {
                "type": "integer",
                "description": "The peak upstream rate in bits per second",
                "example": 1127235167
              },
              "peakDsRate": {
                "type": "integer",
                "description": "The peak downstream rate in bits per second",
                "example": 1131424602
              },
              "usRate": {
                "type": "integer",
                "description": "The average upstream rate in bits per second",
                "example": 940753363
              },
              "dsRate": {
                "type": "integer",
                "description": "The average downstream rate in bits per second",
                "example": 940678427
              },
              "endpoint": {
                "type": "string",
                "description": "The endpoint the data is associated with",
                "example": "123-4-5678/CXNK55555555"
              },
              "ipAddress": {
                "type": "string",
                "description": "The IP address(es) the data is associated with in comma separated format",
                "example": "1.2.3.4"
              }
            },
            "description": "Subscriber usage"
          }
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getTrafficUsageForAllSubs"
      },
      "task": true
    }
  ],
  "views": []
}