{
  "openapi": "3.0.2",
  "info": {
    "description": "<p>REST interface for Calix Cloud Apis.</p>\n<p><code><strong>Product Required: Call Outcome</strong></code></p>\n",
    "version": "1.0.0",
    "title": ""
  },
  "servers": [
    {
      "url": "https://api.calix.ai/",
      "description": "Production server"
    }
  ],
  "tags": [
    {
      "name": "Call Outcome",
      "description": "API to retrieve extref data"
    },
    {
      "name": "Reports",
      "description": "Specifically crafted Report APIs"
    }
  ],
  "paths": {
    "/calloutcome/subscriber/call-outcome": {
      "get": {
        "summary": "Get call outcome data",
        "tags": [
          "Call Outcome"
        ],
        "description": "Get call outcome data for Calix partners",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "description": "Subscriber location id",
            "in": "query",
            "name": "subscriberLocationId",
            "required": true,
            "schema": {
              "type": "string",
              "example": "abc-123"
            }
          },
          {
            "description": "extref value to retrieve call outcome data",
            "in": "query",
            "name": "extref",
            "required": true,
            "schema": {
              "type": "string",
              "example": 12345
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/respcalloutcomes"
          },
          "400": {
            "description": "Bad Request"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "deprecated": false
      }
    },
    "/calea/access-logs": {
      "get": {
        "tags": [
          "Access_Logs"
        ],
        "description": "Get the Hotspot access logs by subscriber ID or client MAC address.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "in": "query",
            "name": "subscriberId",
            "schema": {
              "type": "string"
            },
            "required": false,
            "example": "6e4f5013-993a-4590-aab7-7afbdee5c215",
            "description": "Filter Hotspot access logs by the subscriber ID. One of `subscriberId` and `clientMACAddress` must be provided when get the access log."
          },
          {
            "in": "query",
            "name": "clientMACAddress",
            "schema": {
              "type": "string"
            },
            "required": false,
            "example": "cc:08:8d:65:e8:71",
            "description": "Filter Hotspot access logs by the client MAC address. One of `subscriberId` and `clientMACAddress` must be provided when get the access log."
          },
          {
            "in": "query",
            "name": "startDate",
            "schema": {
              "type": "string"
            },
            "required": false,
            "example": "20221012",
            "description": "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 should be `yyyyMMdd`."
          },
          {
            "in": "query",
            "name": "endDate",
            "schema": {
              "type": "string"
            },
            "required": false,
            "example": "20221018",
            "description": "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 should be `yyyyMMdd`."
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/HotspotAccessLogGetResp"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        }
      }
    },
    "/net-perf-test/cafIITest": {
      "get": {
        "summary": "Retrieve all existing CAF II tests, or a single test instance by orgId and name, or for a given date.",
        "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).",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "name",
            "in": "query",
            "description": "Name of an existing test instance",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Zero or more test instance(s) in the response body",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CafIITest"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a new CAF II Test instance",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "requestBody": {
          "description": "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",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CafIITestCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The new test has been created successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Created"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized"
                }
              }
            }
          },
          "409": {
            "description": "Cannot create new test since an existing test already exists for the same name combination.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NameConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        }
      }
    },
    "/net-perf-test/cafIITest/{id}": {
      "get": {
        "summary": "Retrieve an existing CAF II test by _id string",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "id",
            "in": "path",
            "description": "The _id string of an existing CAF II test instance",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The CAF II test instance is in the response body",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CafIITest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "No test found by the given id string",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update an existing test",
        "description": "Misc notes:\n - Editing is not allowed once test has started.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The _id string of an existing test",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "requestBody": {
          "description": "Updated test",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CafIITest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The Test has been updated successfully",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized"
                }
              }
            }
          },
          "403": {
            "description": "Editing of existing test instances is not allowed once the test has started",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestReadOnlyAfterStarted"
                }
              }
            }
          },
          "404": {
            "description": "No test found by the given id string",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "test"
      },
      "delete": {
        "summary": "Delete an existing CAF II test by _id string",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The _id string of an existing test",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "The test has been deleted successfully",
            "content": {}
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "No test found by the given id string",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        }
      }
    },
    "/net-perf-test/cafIITest/{id}/suspend": {
      "put": {
        "summary": "Suspend an existing test",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The _id string of an existing test",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "The Test has been suspended successfully",
            "content": {}
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized"
                }
              }
            }
          },
          "403": {
            "description": "Cannot suspend the test as the test is already suspended, or has been completed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuspendTestError"
                }
              }
            }
          },
          "404": {
            "description": "No test found by the given id string",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        }
      }
    },
    "/net-perf-test/cafIITest/{id}/resume": {
      "put": {
        "summary": "Resume an existing test",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The _id string of an existing test",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "The Test has been resumed successfully",
            "content": {}
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized"
                }
              }
            }
          },
          "403": {
            "description": "Cannot resume the test as the test has been completed, or is not currently suspended.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResumeTestError"
                }
              }
            }
          },
          "404": {
            "description": "No test found by the given id string",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        }
      }
    },
    "/net-perf-test/ooklaServer": {
      "get": {
        "summary": "Retrieve all Ookla servers",
        "parameters": [
          {
            "name": "country",
            "in": "query",
            "description": "Country name. Default to US only",
            "schema": {
              "type": "string",
              "enum": [
                "US",
                "Canada",
                "All"
              ]
            }
          },
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "The Ookla server info is in the response body",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OoklaServer"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        }
      }
    },
    "/net-perf-test/testResult/zip/external": {
      "get": {
        "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'",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "testId",
            "in": "query",
            "description": "The internal id string for an existing CAF II test instance",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Absolute (NFS) Path to the zip file",
            "headers": {
              "Content-Disposition": {
                "description": "the value is `attachment; filename=\"name.zip\"`",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/zip": {
                "schema": {
                  "$ref": "#/components/schemas/BadRequest"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/zip": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers": {
      "get": {
        "tags": [
          "Subscriber"
        ],
        "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 must be set to true explicitly",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "devices",
            "in": "query",
            "description": "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 example: CXNK00112233,CXNK44556677",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "account",
            "in": "query",
            "description": "Account ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phone",
            "in": "query",
            "description": "Phone Number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email",
            "in": "query",
            "description": "Email",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region",
            "in": "query",
            "description": "Region",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "billingStatus",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "Active",
                "Disconnected",
                "Suspended",
                "Deactivated"
              ]
            },
            "description": "Billing status:\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"
          },
          {
            "name": "withDevices",
            "in": "query",
            "description": "Include the `devices` field in the response",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withServices",
            "in": "query",
            "description": "Include the `services` field in the response",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Number of subscriber records to skip when there are many subscriber records matching the query criteria. This is needed for pagination. Default to 0",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "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 parameter is 1-500, default to 100.",
            "schema": {
              "maximum": 500,
              "minimum": 1,
              "type": "integer",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Zero or more subscriber record(s) in the response body, with or without the 'devices' field (depends on the value of the 'withDevices' query parameter)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberBulkQueryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Create a new subscriber.",
        "description": "Create a new subscriber.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "requestBody": {
          "description": "The new subscriber record.\n\nThe following field(s) are mandatory for all create requests:\n  - subscriberLocationId\n\nPlease note that <span style=\"color:red\">the new subsccriber record in the request body must not contain\n\"devices\" and \"services\" fields</span>, as devices and services will be added to the subscriber later via\nseparate API requests.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberInfoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The new subscriber has been created successfully.\n\nThe auto-generated id of the subscriber record is returned in the response body",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Id"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "409": {
            "description": "Cannot create new subscriber since the subscriberLocationId conflicts with an existing subscriber",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberLocationIdConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "subscriber"
      }
    },
    "/billing/subscribers/{subscriberId}": {
      "get": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Retrieve an existing subscriber by subscriberId",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeDeviceData",
            "in": "query",
            "description": "Include the `deviceData` field in the response.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "includeDecommissionedDevices",
            "in": "query",
            "description": "Include decommissioned devices in `deviceData` field in the response, if and only if `includeDeviceData==true`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Subscriber record in the response body",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberInfoFull"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriber"
        ],
        "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.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated subscriber record",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberInfoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The subscriber has been updated successfully.",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "409": {
            "description": "Cannot change subscriberLocationId since the subscriberLocationId conflicts with an existing subscriber",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberLocationIdConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "subscriber"
      },
      "delete": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Delete an existing subscriber by subscriberId",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The subscriber has been deleted successfully.",
            "content": {}
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/devices": {
      "get": {
        "tags": [
          "Subscriber - Devices"
        ],
        "summary": "Retrieve associated device list for a subscriber location",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "See Response Payload for the list of device(s).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriber - Devices"
        ],
        "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",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deviceList",
            "in": "query",
            "description": "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,CXNK44556677\"\n\nIf the new list is empty (e.g. \"deviceList=\"), all devices that currently associated with the subscriber will be disassociated with this subscriber.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Device list has been updated successfully",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "409": {
            "description": "Cannot add 1 or more device(s) to subscriber location since this device is associated with another subscriber location",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Subscriber - Devices"
        ],
        "summary": "Add a device id to an existing subscriber's associated device list",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "description": "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 converted to all upper case when storing in the DB\n* MAC addresses are 12-digit hexadecimal number (6-Byte binary number) separated by colons (':'), and  will be converted to all lower case when storing in the DB\n* Calix Registration ID strings are alphanumberic strings with 1 to 10 chars/digits, and will be stored in the DB as is\n\nIn some cases we cannot distinguish between SN and Calix Registration ID, and the device id strings will be stored as is in those cases",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The device has been associated to the subscriber successfully.",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "409": {
            "description": "Cannot add device to subscriber location since this device is associated with another subscriber location",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/devices/{deviceId}": {
      "put": {
        "tags": [
          "Subscriber - Devices"
        ],
        "summary": "Replace a device ID in an exsiting subscriber's associated device list with another device ID",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deviceId",
            "in": "path",
            "description": "The existing device ID string",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "newDeviceId",
            "in": "query",
            "description": "The new device ID string",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The device ID has been updated successfully.",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber or device found found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "409": {
            "description": "Cannot add device to subscriber since this device is associated with another subscriber",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Subscriber - Devices"
        ],
        "summary": "Delete a device from an existing subscriber's associated device list",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deviceId",
            "in": "path",
            "description": "Device ID string",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The device has been removed from the subscriber device list successfully.",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId, or no such device in the subscriber record's device list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/fccIdentifiers": {
      "get": {
        "tags": [
          "Subscriber - FCC Identifier"
        ],
        "summary": "Retrieve an existing FCC identifier by subscriberId.",
        "description": "Retrieve an existing FCC identifier by subscriberId.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "description": "Subscriber Id, e.g. '2c13ab77-8441-43fb-8967-2da4d8383d68'.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "FCC Identifier record in the response body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FccIdentifier"
                }
              }
            }
          },
          "404": {
            "description": "No FCC identifier found found by the given subscriberLocationId.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FccIdentifierNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriber - FCC Identifier"
        ],
        "summary": "Update an existing FCC identifier by subscriberId.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated FCC identifier.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FccIdentifier"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The FCC identifier has been updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FccIdentifier"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "404": {
            "description": "FCC Identifier Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FccIdentifierNotFound"
                }
              }
            }
          },
          "409": {
            "description": "Cannot change FCC identifier due to conflict with an existing FCC identifier.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FccSubscriberIdConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "fccIdentifier"
      },
      "post": {
        "tags": [
          "Subscriber - FCC Identifier"
        ],
        "summary": "Create a new FCC identifier for the subscriber.",
        "description": "Create a new FCC identifier.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The new FCC identifier record.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FccIdentifier"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The new FCC identifier has been created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Id"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "409": {
            "description": "Cannot create new FCC identifier since the subscriberId conflicts with an existing FCC identifier",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FccSubscriberIdConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "fccIdentifier"
      },
      "delete": {
        "tags": [
          "Subscriber - FCC Identifier"
        ],
        "summary": "Delete an existing FCC identifier by subscriberId.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The FCC identifier has been deleted successfully.",
            "content": {}
          },
          "404": {
            "description": "No FCC identifier found by the given subscriberId.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FccIdentifierNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/services": {
      "get": {
        "tags": [
          "Subscriber - Services"
        ],
        "summary": "Retrieve service list for a subscriber location",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "summaryOnly",
            "in": "query",
            "description": "flag to return summary info of USOCs for data/voice/video, not full info. Default to false.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "See Response Payload for the list of service(s).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceListRetrievalResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriber - Services"
        ],
        "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",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ignoreDuplicates",
            "in": "query",
            "description": "Flag to enforce duplicate check, default to false",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "description": "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.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Service list has been updated successfully",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "- No subscriber found by the given subscriberId, or",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "serviceList"
      },
      "post": {
        "tags": [
          "Subscriber - Services"
        ],
        "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.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "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.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Service"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The new service has been added to the subscriber location successfully.\n\nThe auto-generated id of the new service object is returned in the response body",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Id"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request (for example Service USOC and Type Cannot both be empty)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidServiceRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "- No subscriber found by the given subscriberId, or\n- No matching service found by one of the USOC(s) in the list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "service"
      }
    },
    "/billing/subscribers/{subscriberId}/services/{serviceId}": {
      "get": {
        "tags": [
          "Subscriber - Services"
        ],
        "summary": "Retrieve an existing service instance for a subscriber location by service instance id",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serviceId",
            "in": "path",
            "description": "Service Instance Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The service details in the response body",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceRetrievalResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId, or no such service instance id in the subscriber record's service list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriber - Services"
        ],
        "summary": "Update an existing service instance for a subscriber location by service instance id.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serviceId",
            "in": "path",
            "description": "Service Instance Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated Service, all fields are editable including usoc",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Service"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The service has been updated for the subscriber location successfully.",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId, or no such service instance id in the subscriber record's service list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "service"
      },
      "delete": {
        "tags": [
          "Subscriber - Services"
        ],
        "summary": "Delete an existing service instance from a subscriber location by service instance id",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serviceId",
            "in": "path",
            "description": "Service Instance Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The service has been deleted from the subscriber location successfully.",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId, or no such service instance id in the subscriber record's service list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/services/status": {
      "get": {
        "tags": [
          "Subscriber - Services"
        ],
        "summary": "Status of all existing service(s) for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Objects of activate services.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceStatusRetrievalResponse"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/appServices": {
      "get": {
        "tags": [
          "Subscriber - App Services"
        ],
        "summary": "Retrieve all existing application services for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Application service setting(s) in the response body. If no application service has been enabled or disabeld for the subscriber, the response body will contain an empty array.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationServices"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/appServices/{appServiceName}": {
      "get": {
        "tags": [
          "Subscriber - App Services"
        ],
        "summary": "Retrieve an existing application service setting by subscriberId and service name",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appServiceName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ProtectIQ",
                "ExperienceIQ"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Application service setting",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationService"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found by the given subscriberId, or No application service found by the given subscriberId and the appServiceName",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberOrAppServiceNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriber - App Services"
        ],
        "summary": "Create a new application service setting or update an existing application service setting for a subscriber.",
        "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.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "appServiceName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ProtectIQ",
                "ExperienceIQ"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "App service setting",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "subscribe"
                ],
                "type": "object",
                "properties": {
                  "subscribe": {
                    "type": "boolean"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The subscriber has been updated successfully.",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber found found by the given subscriberId",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "appService"
      }
    },
    "/billing/subscribers/{subscriberId}/arlo-service": {
      "get": {
        "tags": [
          "Subscriber - Arlo Service - Deprecated"
        ],
        "summary": "Retrieve the Arlo Service Info for a subscriber.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": true,
        "responses": {
          "200": {
            "description": "Allo Service Info.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServiceGetDeprecated"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "404": {
            "description": "No Arlo Service Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoArloFoundError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriber - Arlo Service - Deprecated"
        ],
        "summary": "Update the Arlo Service for a subsccriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArloServicePutDeprecated"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The Arlo Service has been updated successfully",
            "content": {}
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServicePutErrorBadRequest"
                }
              }
            }
          },
          "404": {
            "description": "No Arlo Service Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoArloFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Cannot update Arlo account because of Arlo Service error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServicePutInternalError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "arlo"
      },
      "post": {
        "tags": [
          "Subscriber - Arlo Service - Deprecated"
        ],
        "summary": "Create the Arlo Service for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArloServicePostDeprecated"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The Arlo Service has been created successfully",
            "content": {}
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServicePostErrorBadRequest"
                }
              }
            }
          },
          "500": {
            "description": "Cannot create Arlo account because of Arlo Service error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServicePostInternalError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "arlo"
      },
      "delete": {
        "tags": [
          "Subscriber - Arlo Service - Deprecated"
        ],
        "summary": "Delete the Arlo Service for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": true,
        "responses": {
          "200": {
            "description": "The Arlo Service (if any) has been deleted successfully",
            "content": {}
          },
          "404": {
            "description": "No Arlo Service",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoArloFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/servify-contract": {
      "get": {
        "tags": [
          "Subscriber - Servify Contract - Deprecated"
        ],
        "summary": "Retrieve the Servify Contract for a subscriber.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": true,
        "responses": {
          "200": {
            "description": "Servify Contract.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServifyCareGetDeprecated"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "404": {
            "description": "No Servify Contract",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoServifyFoundError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Subscriber - Servify Contract - Deprecated"
        ],
        "summary": "Create Servify Contract for one subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServifyCarePostDeprecated"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The Servify Contract has been created successfully",
            "content": {}
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "500": {
            "description": "Cannot create Servify Contract because of Servify error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServifyContractPostInternalError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "servify"
      },
      "delete": {
        "tags": [
          "Subscriber - Servify Contract - Deprecated"
        ],
        "summary": "Delete the Servify Contract for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reasonCode",
            "in": "query",
            "description": "reason code, such as JUST_TRYING,TOO_EXPENSIVE,DNT_WNT,NON_PAYMENT,MASTER_SERVICE_CANLD",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": true,
        "responses": {
          "200": {
            "description": "The Servify Contract has been deleted successfully",
            "content": {}
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/managed-service/arlo": {
      "get": {
        "tags": [
          "Managed Service - Arlo"
        ],
        "summary": "Retrieve the Arlo Service Info for a subscriber.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Allo Service Info.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServiceGet"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "404": {
            "description": "No Arlo Service Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoArloFoundError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Managed Service - Arlo"
        ],
        "summary": "Update the Arlo Service for a subsccriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArloServicePut"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The Arlo Service has been updated successfully",
            "content": {}
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServicePutErrorBadRequest"
                }
              }
            }
          },
          "404": {
            "description": "No Arlo Service Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoArloFoundError"
                }
              }
            }
          },
          "500": {
            "description": "Cannot update Arlo account because of Arlo Service error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServicePutInternalError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "arlo"
      },
      "post": {
        "tags": [
          "Managed Service - Arlo"
        ],
        "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\nHighlighted attributes (in **bold**) are used by this API to create the Arlo Service account.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ArloServicePost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The Arlo Service has been created successfully",
            "content": {}
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServicePostErrorBadRequest"
                }
              }
            }
          },
          "500": {
            "description": "Cannot create Arlo account because of Arlo Service error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ArloServicePostInternalError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "arlo"
      },
      "delete": {
        "tags": [
          "Managed Service - Arlo"
        ],
        "summary": "Delete the Arlo Service for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Arlo Service (if any) has been deleted successfully",
            "content": {}
          },
          "404": {
            "description": "No Arlo Service",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoArloFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/managed-service/servify": {
      "get": {
        "tags": [
          "Managed Service - Servify"
        ],
        "summary": "Retrieve the Servify Contract for a subscriber.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Servify Contract.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServifyCareGet"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "404": {
            "description": "No Servify Contract",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoServifyFoundError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Managed Service - Servify"
        ],
        "summary": "Update Servify Contract Plan for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "planCode",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "SERVIFYCAREBRONZE",
                "SERVIFYCARESILVER",
                "SERVIFYCAREGOLD",
                "SERVIFYCAREPLATINUM"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Servify Contract has been updated successfully",
            "content": {}
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServifyContractPostErrorBadRequest"
                }
              }
            }
          },
          "500": {
            "description": "Cannot create Servify Contract because of Servify error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServifyContractPostInternalError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Managed Service - Servify"
        ],
        "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  * **planCode**\n\nHighlighted attributes (in **bold**) are used by this API to create the Servify Contract.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServifyCarePost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The Servify Contract has been created successfully",
            "content": {}
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServifyContractPostErrorBadRequest"
                }
              }
            }
          },
          "500": {
            "description": "Cannot create Servify Contract because of Servify error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServifyContractPostInternalError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "servify"
      },
      "delete": {
        "tags": [
          "Managed Service - Servify"
        ],
        "summary": "Delete the Servify Contract for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reasonCode",
            "in": "query",
            "description": "reason code, such as JUST_TRYING,TOO_EXPENSIVE,DNT_WNT,NON_PAYMENT,MASTER_SERVICE_CANLD",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The Servify Contract has been deleted successfully",
            "content": {}
          }
        }
      }
    },
    "/billing/subscribers/{subscriberId}/smarttown-wifi/subscriber": {
      "get": {
        "tags": [
          "Subscriber - SmartTown Wi-Fi"
        ],
        "summary": "Retrieve the subscriber membership of SmartTown Wi-Fi for a subscriber.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Subscriber membership of SmartTown Wi-Fi.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmartTownWiFiSubMembership"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. see response body for more details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "404": {
            "description": "No SmartTown Wi-Fi Subscriber Membership",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoSmartTownWiFiFoundError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Subscriber - SmartTown Wi-Fi"
        ],
        "summary": "Create/Update subscriber membershp of SmartTown Wi-Fi for a subscriber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "subscriberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SmartTownWiFiSubMembership"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The subscriber membership has been created/updated successfully.",
            "content": {}
          },
          "400": {
            "description": "Bad request. see response body for more details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "500": {
            "description": "Cannot create/update Subscriber Membership",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmartTownWiFiInternalError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "membership"
      }
    },
    "/billing/serviceDefinitions": {
      "get": {
        "tags": [
          "Service Definitions"
        ],
        "summary": "Retrieve all service definition(s)",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Zero or more service definition(s) in the response body",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDefinitionList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Service Definitions"
        ],
        "summary": "Update all service definition(s) via a single request",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceDefinitionList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The service definition list has been updated successfully",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "service definition list"
      },
      "post": {
        "tags": [
          "Service Definitions"
        ],
        "summary": "Create a new service definition.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "requestBody": {
          "description": "The new service definition.\n\nThe following fields are mandatory for all create requests:\n  - usoc\n  - type",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceDefinition"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The new service definition has been created successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Id"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "409": {
            "description": "Cannot create new service definition since the usoc + techType + customerType conflicts with an existing service definition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDefinitionConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "service definition"
      }
    },
    "/billing/serviceDefinitions/{serviceDefinitionId}": {
      "get": {
        "tags": [
          "Service Definitions"
        ],
        "summary": "Retrieve an existing service definition by usoc.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serviceDefinitionId",
            "in": "path",
            "description": "id of the existing service definition",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The response body will be an array with 0 or more service definition(s)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDefinition"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No Service Definition found found by the given id service list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDefinitionNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Service Definitions"
        ],
        "summary": "Update an existing service definition by id.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serviceDefinitionId",
            "in": "path",
            "description": "id of the existing service definition",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated service definition.\n\nThe following fields are mandatory for all create requests:\n  - usoc\n  - type",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceDefinition"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The service definition has been updated successfully.",
            "content": {}
          },
          "400": {
            "description": "Invalid Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvalidRequest1"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No Service Definition found found by the given id service list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDefinitionNotFound"
                }
              }
            }
          },
          "409": {
            "description": "Cannot update service definition since the USOC conflicts with an existing service definition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDefinitionConflict"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "service definition"
      },
      "delete": {
        "tags": [
          "Service Definitions"
        ],
        "summary": "Delete an existing service definition by usoc.",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serviceDefinitionId",
            "in": "path",
            "description": "id of the existing service definition",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The service definition has been deleted successfully",
            "content": {}
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Unauthorized1"
                }
              }
            }
          },
          "404": {
            "description": "No Service Definition found found by the given id service list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDefinitionNotFound"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalServerError1"
                }
              }
            }
          }
        }
      }
    },
    "/billing/support/operator/ssid": {
      "get": {
        "tags": [
          "SSID"
        ],
        "summary": "Retrieve ssid by subscriberId or RG serialNumber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serialNumber",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriberId",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SSID"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequiredParamsMissing"
                }
              }
            }
          },
          "404": {
            "description": "No system found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoSystemFoundError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SSID"
        ],
        "summary": "Update ssid by subscriberId or RG serialNumber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serialNumber",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriberId",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SSIDPutRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SSIDPutResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequiredParamsMissing"
                }
              }
            }
          },
          "404": {
            "description": "No system found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoSystemFoundError"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "payload"
      }
    },
    "/billing/support/operator/secondarynetwork/availability": {
      "get": {
        "tags": [
          "SSID"
        ],
        "summary": "Retrieve secondarynetwork availability by subscriberId or RG serialNumber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serialNumber",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriberId",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecondaryNetworkAvailability"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequiredParamsMissing"
                }
              }
            }
          },
          "404": {
            "description": "No system found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoSystemFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/billing/support/operator/secondarynetwork": {
      "get": {
        "tags": [
          "SSID"
        ],
        "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)\n",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serialNumber",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriberId",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SecondaryNetwork"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequiredParamsMissing"
                }
              }
            }
          },
          "404": {
            "description": "No system found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoSystemFoundError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SSID"
        ],
        "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)\n",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serialNumber",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriberId",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecondaryNetworkPutRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecondaryNetworkPutResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequiredParamsMissing"
                }
              }
            }
          },
          "404": {
            "description": "No system found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoSystemFoundError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "SSID"
        ],
        "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)\n",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serialNumber",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriberId",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecondaryNetworkPostRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecondaryNetworkPostResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequiredParamsMissing"
                }
              }
            }
          },
          "404": {
            "description": "No system found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoSystemFoundError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "SSID"
        ],
        "summary": "Delete secondarynetwork by subscriberId or RG serialNumber",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "serialNumber",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriberId",
            "in": "query",
            "description": "serialNumber and subscriberId cannot be null at the same time.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "eventId": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {}
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RequiredParamsMissing"
                }
              }
            }
          },
          "404": {
            "description": "No system found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoSystemFoundError"
                }
              }
            }
          }
        }
      }
    },
    "/billing/e2e/serviceDefinitions": {
      "get": {
        "tags": [
          "E2E Service Definition Template"
        ],
        "summary": "GET method for retrieving details of all service definitions",
        "description": "The GET method will retrieve the details of the service definitions",
        "operationId": "searchServiceDefinitions",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "name",
            "in": "query",
            "description": "name for which details need to be retrieved.",
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "serviceType",
            "schema": {
              "type": "string",
              "enum": [
                "DATA",
                "VOICE",
                "VIDEO"
              ]
            },
            "description": "service-type"
          }
        ],
        "responses": {
          "200": {
            "description": "Zero or more service definition(s) in the response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/E2EServiceDefinition"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/E2EUnauthorizedError"
                }
              }
            }
          },
          "404": {
            "description": "No service definition found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/E2EError"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/E2EError"
                }
              }
            }
          }
        }
      }
    },
    "/insights/subscribers/{subscriber}/trafficusage": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Get subscriber traffic usage",
        "description": "Get subscriber traffic usage",
        "operationId": "getTrafficUsage",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "The data granularity to query.  Granularity can be an epoch in seconds or in string form.  Examples: 1hour, 24hour, 1month",
            "required": true,
            "schema": {
              "type": "string"
            },
            "examples": {
              "seconds": {
                "description": "1 hour granularity in epoch seconds",
                "value": 3600
              },
              "1 hour string format": {
                "description": "1 hour granularity in string form",
                "value": "1hour"
              },
              "1 day string format": {
                "description": "1 day granularity in string form",
                "value": "1day"
              },
              "1 month string format": {
                "description": "1 month granularity in string form",
                "value": "1month"
              }
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "description": "The start time of the aggregation period to query.  The parameter can be an epoch in seconds or a string date.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "examples": {
              "epoch seconds": {
                "description": "July 14, 2020 18:25 GMT in epoch seconds",
                "value": 1594751100
              },
              "string format": {
                "description": "July 14, 2020 18:25 GMT in string format",
                "value": "2020-07-14T18:25:00.000Z"
              }
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "description": "The ending time (exclusive) to query data for.  The parameter can be an epoch in seconds or a string date.  Defaults to current time.",
            "schema": {
              "type": "string"
            },
            "examples": {
              "epoch seconds": {
                "description": "July 14, 2020 18:35 GMT in epoch seconds",
                "value": 1594751700
              },
              "string format": {
                "description": "July 14, 2020 18:35 GMT in string format",
                "value": "2020-07-14T18:35:00.000Z"
              }
            }
          },
          {
            "name": "subscriber",
            "in": "path",
            "description": "Subscriber identifier.  Can be one of endpoint title, subscriber ID, subscriber location ID, or IP address",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "On success.  The traffic usage of the subscriber",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UsageRecord"
                  }
                }
              }
            }
          },
          "400": {
            "description": "On invalid request parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/InvalidClientSecret"
                    },
                    {
                      "$ref": "#/components/schemas/MissingClientID"
                    },
                    {
                      "$ref": "#/components/schemas/InvalidClientID"
                    },
                    {
                      "$ref": "#/components/schemas/Unauthorized2"
                    },
                    {
                      "$ref": "#/components/schemas/TokenExpired"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "On processing error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/insights/subscriberstrafficusage": {
      "get": {
        "tags": [
          "Reports"
        ],
        "summary": "Get subscriber traffic usage for all subscribers",
        "description": "Get subscriber traffic usage for all subscribers",
        "operationId": "getTrafficUsageForAllSubs",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string",
              "format": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "name": "granularity",
            "in": "query",
            "description": "The data granularity to query.  Granularity can be an epoch in seconds or in string form.  Examples: 1hour, 24hour, 1month",
            "required": true,
            "schema": {
              "type": "string"
            },
            "examples": {
              "seconds": {
                "description": "1 hour granularity in epoch seconds",
                "value": 3600
              },
              "1 hour string format": {
                "description": "1 hour granularity in string form",
                "value": "1hour"
              },
              "1 day string format": {
                "description": "1 day granularity in string form",
                "value": "1day"
              },
              "1 month string format": {
                "description": "1 month granularity in string form",
                "value": "1month"
              }
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "description": "The start time of the aggregation period to query.  The parameter can be an epoch in seconds or a string date.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "examples": {
              "epoch seconds": {
                "description": "July 14, 2020 18:25 GMT in epoch seconds",
                "value": 1594751100
              },
              "string format": {
                "description": "July 14, 2020 18:25 GMT in string format",
                "value": "2020-07-14T18:25:00Z"
              }
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "description": "The ending time (exclusive) to query data for.  The parameter can be an epoch in seconds or a string date.  Defaults to current time.",
            "schema": {
              "type": "string"
            },
            "examples": {
              "epoch seconds": {
                "description": "July 14, 2020 18:35 GMT in epoch seconds",
                "value": 1594751700
              },
              "string format": {
                "description": "July 14, 2020 18:35 GMT in string format",
                "value": "2020-07-14T18:35:00Z"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Number of records to skip when there are many records matching the query criteria.",
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records in the response when there are many subscriber records matching the query criteria.  Minimum is 1 and maximum is 5000. <p><i>More than the value 100 for the limit may cause the devportal to be unresponsive. Please use different API client for more than 100 for limit</i></p>",
            "schema": {
              "maximum": 5000,
              "minimum": 1,
              "type": "integer",
              "format": "int64",
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "On success.  The traffic usage of all the subscribers",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UsageRecord"
                  }
                }
              }
            }
          },
          "400": {
            "description": "On invalid request parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/InvalidClientSecret"
                    },
                    {
                      "$ref": "#/components/schemas/MissingClientID"
                    },
                    {
                      "$ref": "#/components/schemas/InvalidClientID"
                    },
                    {
                      "$ref": "#/components/schemas/Unauthorized2"
                    },
                    {
                      "$ref": "#/components/schemas/TokenExpired"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "On processing error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/map/v1/mobile/account/add": {
      "put": {
        "tags": [
          "Account"
        ],
        "description": "CommandIQ account creation - Authorize token doesn't require",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "description": "Account Creation Request",
                "type": "object",
                "properties": {
                  "firstName": {
                    "description": "First name of subscriber",
                    "type": "string",
                    "example": "John"
                  },
                  "lastName": {
                    "description": "Last name of subscriber",
                    "type": "string",
                    "example": "Doe"
                  },
                  "email": {
                    "description": "Email address of subscriber",
                    "type": "string",
                    "example": "john.doe@calix.com"
                  },
                  "password": {
                    "description": "Password of email address",
                    "type": "string",
                    "example": "changeme"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/AccountAddResp"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError1"
          },
          "409": {
            "$ref": "#/components/responses/ConflictAccountResp"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError1"
          }
        }
      }
    },
    "/map/v2/mobile/account/login": {
      "post": {
        "tags": [
          "Account"
        ],
        "description": "Login CommandIQ account - Authorize token doesn't require",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "description": "Partner Registration Request",
                "type": "object",
                "properties": {
                  "email": {
                    "description": "Email address of subscriber",
                    "type": "string",
                    "example": "john.doe@calix.com"
                  },
                  "password": {
                    "description": "Password of email address",
                    "type": "string",
                    "example": "changeme"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/AccountLoginResp"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError1"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "498": {
            "$ref": "#/components/responses/InvalidTokenError"
          },
          "499": {
            "$ref": "#/components/responses/TokenRequiredError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError1"
          }
        }
      }
    },
    "/map/v1/mobile/account/user/remove": {
      "delete": {
        "tags": [
          "Account"
        ],
        "description": "Delete CommandIQ account - Authorize token required",
        "parameters": [
          {
            "in": "header",
            "name": "X-Calix-ClientID",
            "schema": {
              "type": "string"
            },
            "description": "client-id",
            "required": true,
            "example": "sample-client-id"
          },
          {
            "in": "header",
            "name": "X-Calix-AccessToken",
            "schema": {
              "type": "string"
            },
            "description": "access-token",
            "example": "sample-access-token",
            "required": true
          },
          {
            "in": "header",
            "name": "X-Calix-BearerToken",
            "schema": {
              "type": "string"
            },
            "description": "The token generated from the login api",
            "example": "sample-bearer-token",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/EmptyResp"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestError1"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "498": {
            "$ref": "#/components/responses/InvalidTokenError"
          },
          "499": {
            "$ref": "#/components/responses/TokenRequiredError"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError1"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "pcalloutcome": {
        "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"
          }
        }
      },
      "HotspotAccessLog": {
        "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"
          }
        }
      },
      "BadRequest": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "example": "Bad Request"
          }
        }
      },
      "Unauthorized": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "enum": [
              "Unauthorized"
            ]
          }
        },
        "description": "Unauthorized Request due to missing/invalid apiKey"
      },
      "OoklaServer": {
        "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
        }
      },
      "CafIITestCreateRequest": {
        "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",
            "format": "date"
          },
          "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"
          ]
        }
      },
      "CafIITest": {
        "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": [
          {
            "$ref": "#/components/schemas/CafIITestCreateRequest"
          }
        ]
      },
      "InvalidRequest": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "enum": [
              "Missing mandatory parameter(s)",
              "Invalid Parameter Name(s)",
              "Invalid Parameter Value(s)"
            ]
          }
        },
        "description": "The error to be returned for illegal/invalid test server POST/PUT requests"
      },
      "Created": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string"
          }
        },
        "description": "After a new object is created, the _id string of the new object is returned in the response payload"
      },
      "NameConflict": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "enum": [
              "Cannot create new test since there is already an existing test for the same name"
            ]
          }
        }
      },
      "TestReadOnlyAfterStarted": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "enum": [
              "Tests are read only once started"
            ]
          }
        }
      },
      "SuspendTestError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "enum": [
              "Test is already suspended",
              "Completed Test cannot be suspended"
            ]
          }
        }
      },
      "ResumeTestError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "enum": [
              "Test is not currently suspended",
              "Completed Test cannot be resumed"
            ]
          }
        }
      },
      "InternalServerError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "example": "Unexpected Internal Server Error"
          }
        }
      },
      "NotFoundError": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "example": "No test found by the given id string"
          }
        }
      },
      "ApplicationServices": {
        "type": "array",
        "description": "Services setting",
        "items": {
          "$ref": "#/components/schemas/ApplicationService"
        }
      },
      "ApplicationService": {
        "type": "object",
        "properties": {
          "appName": {
            "type": "string",
            "enum": [
              "ProtectIQ",
              "ExperienceIQ"
            ]
          },
          "subscribe": {
            "type": "boolean"
          }
        },
        "description": "Service state setting"
      },
      "ServiceDefinition": {
        "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\"."
      },
      "ServiceDefinitionList": {
        "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": {
          "$ref": "#/components/schemas/ServiceDefinition"
        }
      },
      "VoiceInterface": {
        "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"
          }
        }
      },
      "Service": {
        "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": {
              "$ref": "#/components/schemas/VoiceInterface"
            }
          },
          "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)."
      },
      "ServiceList": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Service"
        }
      },
      "ServiceStatusRetrievalResponse": {
        "type": "object",
        "properties": {
          "subscriberInformation": {
            "$ref": "#/components/schemas/SubscriberInformation"
          }
        },
        "description": "Service status with activate instance"
      },
      "SubscriberInformation": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "The subscriber Id",
            "example": "8de4a9e2-430c-474c-865d-14fd8affcf14"
          },
          "dataService": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceStatusItem"
            }
          },
          "videoService": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceStatusItem"
            }
          },
          "voiceService": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceStatusItem"
            }
          }
        },
        "description": "Subscriber with the activate service"
      },
      "ServiceStatusItem": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "description": "The status description of the service",
                "example": "SUB_ASSOC_WAITING_FOR_CPE",
                "enum": [
                  "SUB_ASSOC_INIT",
                  "SUB_ASSOC_IN_PROGRESS",
                  "SUB_ASSOC_SUCCESS",
                  "DEPROVISONED",
                  "SUB_ASSOC_WAITING_FOR_CPE"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/Service"
          },
          {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "The auto-generated id of the subscriber record",
                "example": "8de4a9e2-430c-474c-865d-14fd8affcf14"
              }
            }
          }
        ]
      },
      "ServiceRetrievalResponse": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "The auto-generated id of the subscriber record",
                "example": "8de4a9e2-430c-474c-865d-14fd8affcf14"
              }
            }
          },
          {
            "$ref": "#/components/schemas/Service"
          }
        ]
      },
      "ServiceListRetrievalResponse": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ServiceRetrievalResponse"
        }
      },
      "DeviceList": {
        "type": "array",
        "example": [
          "CXNK00111111",
          "CXNK00222222"
        ],
        "items": {
          "type": "string"
        }
      },
      "DeviceData": {
        "type": "object",
        "properties": {
          "serialNumber": {
            "type": "string"
          },
          "macAddress": {
            "type": "string"
          },
          "ipAddress": {
            "type": "string"
          },
          "registrationId": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "modelName": {
            "type": "string"
          },
          "softwareVersion": {
            "type": "string"
          },
          "hardwareVersion": {
            "type": "string"
          },
          "opMode": {
            "type": "string"
          },
          "lastInformTime": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "Details of an associated device that is retrieved via CC+ device API.",
        "example": {
          "manufacturer": "Calix",
          "manufacturerOUI": "000631",
          "modelName": 84.4,
          "hardwareVersion": "3000219710",
          "softwareVersion": "11.1.2.110",
          "serialNumber": "CXNK00123456",
          "registrationId": "",
          "ipAddress": "10.245.55.206",
          "macAddress": "00:06:31:4a:a8:cd",
          "lastInformTime": "2019-01-21T17:32:28.000Z"
        }
      },
      "SubscriberInfo": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "The auto-generated id of the subscriber record",
                "example": "e41bea4f-8d76-47e8-a2dd-22aa8f3afdb0"
              }
            }
          },
          {
            "$ref": "#/components/schemas/SubscriberInfoRequest"
          },
          {
            "type": "object",
            "properties": {
              "services": {
                "type": "array",
                "description": "List of service(s) that are deployed at this subscriber location",
                "items": {
                  "$ref": "#/components/schemas/ServiceRetrievalResponse"
                }
              },
              "devices": {
                "type": "array",
                "description": "List of device(s) that are associated with this subscriber location.\n\nEach device id 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 converted to all upper case when storing in the DB\n- MAC addresses are 12-digit hexadecimal number (6-Byte binary number) separated by colons (':'), and  will be converted to all lower case when storing in the DB\n- Calix Registration ID strings are alphanumberic strings with 1 to 10 chars/digits, and will be stored in the DB as is\n\nIn some cases we cannot distinguish between SN and Calix Registration ID, and the device id strings will be stored as is in those cases",
                "example": [
                  "CXNK00123456",
                  "CXNK00AABBCC"
                ],
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "SubscriberInfoFull": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SubscriberInfo"
          },
          {
            "type": "object",
            "properties": {
              "deviceData": {
                "type": "array",
                "description": "The details of each associated device if `includeDeviceData==true`.",
                "items": {
                  "$ref": "#/components/schemas/DeviceData"
                }
              }
            }
          }
        ]
      },
      "SubscriberInfoRequest": {
        "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"
      },
      "SubscriberBulkQueryResponse": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriberInfo"
            }
          }
        },
        "description": "Paginated Response for Subscriber Queries"
      },
      "Id": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "example": "b565939f-41e2-489d-b6f3-3a4cb66955c1"
          }
        },
        "description": "A JSON Object that contains the \"id\" of a newly created object"
      },
      "Unauthorized1": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 401
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "Unauthorized"
            ]
          }
        },
        "description": "Unauthorized Request due to missing/invalid apiKey"
      },
      "InvalidRequest1": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 400
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "Missing mandatory parameter(s)",
              "Invalid Parameter Name(s)",
              "Invalid Parameter Value(s)",
              "Subscriber ID must not be empty"
            ]
          }
        },
        "description": "The error to be returned for illegal/invalid test server POST/PUT requests"
      },
      "InvalidServiceRequest": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 400
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "Service USOC and Type Cannot both be empty",
              "Cannot create new service that is identical to an existing service instance",
              "Invalid Subscriber Location ID"
            ]
          }
        },
        "description": "Invalid Service POST/PUT requests"
      },
      "SubscriberLocationIdConflict": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 409
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "Cannot create new subscriber due to subscriberLocationId Conflict"
            ]
          }
        }
      },
      "ServiceDefinitionConflict": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 409
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "Existing Service Definition Found with same usoc and techType and customerType"
            ]
          }
        }
      },
      "DeviceConflict": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 409
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "Cannot associate device to subscriber location since this device is associated with another subscriber location"
            ]
          }
        }
      },
      "InternalServerError1": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 500
          },
          "errorMessage": {
            "type": "string",
            "example": "Internal Server Error"
          }
        }
      },
      "SubscriberNotFound": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 404
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "No Subscriber Found by the Given Subscriber Location Id"
            ]
          }
        }
      },
      "SubscriberOrAppServiceNotFound": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 404
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "No Subscriber Found by the Given Subscriber Location Id",
              "No App Service Found by the Given Subscriber Location Id and App Service Name"
            ]
          }
        }
      },
      "ServiceNotFound": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 404
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "No Subscriber Found by the Given Subscriber Location Id",
              "No Service Instance Found by the Given Service Id"
            ]
          }
        },
        "description": "No service found due to either invalid subscriber location id or service instance id"
      },
      "ServiceDefinitionNotFound": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              404
            ]
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "No Service Definition Found by the Given Service Definition Id"
            ]
          }
        }
      },
      "Metadata": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "description": "The number of records that were skipped in the results data set, which was either explicitly specified in the API request via the \"*offset*\" query parameter or the API server's default offset (e.g. 0) when the API request did not contain the \"*offset*\" query parameter.\n",
            "example": 200
          },
          "limit": {
            "type": "integer",
            "description": "The max allowed number of records in the results data set, which was either explicitly specified in the API request via the \"*limit*\" query parameter or the API server's default limit when the API request did not contain the \"*limit*\" query parameter. *Please note that the actual number of records in the response will always be equal to or less than the limit*\n",
            "example": 100
          }
        },
        "description": "When returning a subnet of many records that match the query criteria (e.g. pagination), the metadata object defines the offset and max allowed number of records (not the actual # of records) of the data set being in the response\n"
      },
      "FccIdentifier": {
        "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"
      },
      "FccSubscriberIdConflict": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 409
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "Found An Existing FCC Identifier with Same Subscriber Id"
            ]
          }
        }
      },
      "FccIdentifierNotFound": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 404
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "FCC Identifier Not Found"
            ]
          }
        }
      },
      "ArloServiceGet": {
        "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. -1 will be returned when plan is not `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.\n"
          }
        },
        "description": "Arlo Service Result.",
        "example": {
          "email": "john.doe@example.com",
          "2kCameras": 4,
          "planCode": "PARTNER_REGULAR"
        }
      },
      "ArloServicePost": {
        "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"
        }
      },
      "ArloServicePut": {
        "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"
        }
      },
      "NoArloFoundError": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              404
            ]
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "No Arlo Service Found"
            ]
          }
        }
      },
      "ArloServicePostErrorBadRequest": {
        "description": "Bad Arlo Service post request",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              400
            ]
          },
          "errorMessage": {
            "type": "string",
            "example": "Email is in use by another Arlo Account"
          }
        }
      },
      "ArloServicePostInternalError": {
        "description": "Failed to create Arlo Service because of Arlo Service error.",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              500
            ]
          },
          "errorMessage": {
            "type": "string",
            "example": "Failed to create Arlo Service because of Arlo Service error."
          }
        }
      },
      "ArloServicePutErrorBadRequest": {
        "description": "Bad Arlo Service Put request",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              400
            ]
          },
          "errorMessage": {
            "type": "string",
            "example": "Email is in used by another Arlo Account"
          }
        }
      },
      "ArloServicePutInternalError": {
        "description": "Failed to update Arlo Service because of Arlo Service error.",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              500
            ]
          },
          "errorMessage": {
            "type": "string",
            "example": "Failed to update Arlo Service because of Arlo Service error."
          }
        }
      },
      "ServifyCareGet": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Servify account email",
            "example": "test@test.com"
          },
          "planCode": {
            "description": "plan code",
            "type": "string",
            "enum": [
              "SERVIFYCAREBRONZE",
              "SERVIFYCARESILVER",
              "SERVIFYCAREGOLD",
              "SERVIFYCAREPLATINUM"
            ],
            "example": "SERVIFYCAREBRONZE"
          },
          "planDesc": {
            "type": "string",
            "description": "plan description",
            "example": "ServifyCare Bronze"
          },
          "planPurchaseDate": {
            "type": "string",
            "description": "Date of purchase plan",
            "example": "2021-09-09T00:00:00.000Z"
          },
          "planCoverageEndDate": {
            "type": "string",
            "description": "Date of coverage end date if cancel plan confirmed",
            "example": "2026-09-09T00:00:00.000Z"
          },
          "planChange": {
            "type": "object",
            "properties": {
              "newPlanCode": {
                "type": "string",
                "example": "SERVIFYCARESILVER"
              },
              "oldPlanCode": {
                "type": "string",
                "example": "SERVIFYCAREBRONZE"
              },
              "requested": {
                "type": "number",
                "example": 1653027380000
              },
              "confirmed": {
                "type": "number",
                "example": 0
              },
              "effective": {
                "type": "number",
                "example": 1654819200000
              },
              "status": {
                "type": "string",
                "example": "requested/accepted/denied"
              },
              "message": {
                "type": "string",
                "example": "Your Upgrade Request has been accepted"
              }
            }
          },
          "serviceAddress": {
            "type": "string",
            "description": "Street name",
            "example": "2777 Orchard Pkwy"
          },
          "city": {
            "type": "string",
            "description": "City name",
            "example": "San Jose"
          },
          "state": {
            "type": "string",
            "description": "State name",
            "example": "California"
          },
          "postcode": {
            "type": "string",
            "description": "Zip code",
            "example": "95131"
          },
          "created": {
            "type": "number",
            "description": "event created date",
            "example": 1622711664156
          },
          "updated": {
            "type": "number",
            "description": "event updated date",
            "example": 1622711665157
          }
        },
        "description": "ServifyCare Contract."
      },
      "ServifyCarePost": {
        "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"
      },
      "NoServifyFoundError": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              404
            ]
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "No ServifyCare Service Found"
            ]
          }
        }
      },
      "ServifyContractPostErrorBadRequest": {
        "description": "Bad Servify Contract Post request",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              400
            ]
          },
          "errorMessage": {
            "type": "string",
            "example": "Email is in use by another Servify Account"
          }
        }
      },
      "ServifyContractPostInternalError": {
        "description": "Failed to create Servify Contract because of Servify error.",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              500
            ]
          },
          "errorMessage": {
            "type": "string",
            "example": "Failed to create Servify Contract because of Servify error."
          }
        }
      },
      "SmartTownWiFiSubMembership": {
        "type": "object",
        "properties": {
          "enable": {
            "type": "boolean",
            "example": true
          },
          "communities": {
            "$ref": "#/components/schemas/SmartTownWiFiCommunities"
          }
        },
        "description": "Subscriber Community membership"
      },
      "SmartTownWiFiCommunities": {
        "type": "array",
        "description": "SmartTown Wi-Fi Community/Microsite",
        "items": {
          "type": "object",
          "properties": {
            "micrositeId": {
              "type": "string",
              "example": "5ed11c29-efe0-45e5-a64a-8dc70d5285d2"
            }
          }
        }
      },
      "NoSmartTownWiFiFoundError": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              404
            ]
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "No SmartTown Wi-Fi Subscriber Service Found"
            ]
          }
        }
      },
      "SmartTownWiFiInternalError": {
        "description": "Cannot create/update Subscriber Membership",
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "enum": [
              500
            ]
          },
          "errorMessage": {
            "type": "string",
            "example": "Failed to create SmartTown Wi-Fi Subscriber Membership."
          }
        }
      },
      "SSID": {
        "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": {
            "$ref": "#/components/schemas/SSIDPRConfig"
          },
          "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
        }
      },
      "SSIDPRConfig": {
        "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#?!?_"
        }
      },
      "SSIDPutRequest": {
        "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"
        }
      },
      "SSIDPutResponse": {
        "type": "object",
        "properties": {
          "result": {
            "type": "string",
            "example": "OK"
          }
        }
      },
      "SecondaryNetworkAvailability": {
        "type": "object",
        "properties": {
          "maxUnifiedAvailable": {
            "type": "number",
            "format": "int32"
          },
          "maxBand24Available": {
            "type": "number",
            "format": "int32"
          },
          "maxBand5Available": {
            "type": "number",
            "format": "int32"
          },
          "maxBand6Available": {
            "type": "number",
            "format": "int32"
          },
          "smartQosAllowed": {
            "type": "boolean"
          }
        }
      },
      "SecondaryNetwork": {
        "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
        }
      },
      "SecondaryNetworkPostRequest": {
        "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
          }
        }
      },
      "SecondaryNetworkPostResponse": {
        "type": "object",
        "properties": {
          "ssid": {
            "type": "string"
          },
          "eventId": {
            "type": "string"
          },
          "encryptionType": {
            "type": "integer"
          },
          "type": {
            "type": "integer"
          },
          "isolated": {
            "type": "boolean"
          },
          "smartQos": {
            "type": "boolean"
          },
          "eventName": {
            "type": "string"
          },
          "isIndefinite": {
            "type": "boolean"
          },
          "duration": {
            "type": "object",
            "properties": {
              "startTime": {
                "type": "integer"
              },
              "endTime": {
                "type": "integer"
              }
            }
          }
        },
        "example": {
          "ssid": "test1",
          "eventId": "69c9398a-1880-42d7-bf66-139cee964180",
          "encryptionType": 5,
          "type": 1,
          "isolated": true,
          "smartQos": false,
          "eventName": "fortest",
          "isIndefinite": true,
          "duration": {
            "startTime": 0,
            "endTime": 0
          }
        }
      },
      "SecondaryNetworkPutRequest": {
        "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
          }
        }
      },
      "SecondaryNetworkPutResponse": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string"
          },
          "ssid": {
            "type": "string"
          },
          "encryptionType": {
            "type": "integer"
          },
          "isolated": {
            "type": "boolean"
          },
          "smartQos": {
            "type": "boolean"
          },
          "band24Admin": {
            "type": "boolean"
          },
          "band5Admin": {
            "type": "boolean"
          },
          "band6Admin": {
            "type": "boolean"
          },
          "eventName": {
            "type": "string"
          },
          "isIndefinite": {
            "type": "boolean"
          },
          "duration": {
            "type": "object",
            "properties": {
              "startTime": {
                "type": "integer"
              },
              "endTime": {
                "type": "integer"
              }
            }
          }
        },
        "example": {
          "eventId": "69c9398a-1880-42d7-bf66-139cee964180",
          "ssid": "test2",
          "encryptionType": 2,
          "isolated": true,
          "smartQos": false,
          "band24Admin": true,
          "band5Admin": true,
          "band6Admin": true,
          "eventName": "fortest2",
          "isIndefinite": true,
          "duration": {
            "startTime": 0,
            "endTime": 0
          }
        }
      },
      "E2EServiceDefinition": {
        "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"
        ]
      },
      "ArloServiceGetDeprecated": {
        "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. -1 will be returned when plan is not `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.\n"
          }
        },
        "description": "Arlo Service Result.",
        "example": {
          "email": "john.doe@example.com",
          "2kCameras": 4,
          "plan": "PARTNER_REGULAR"
        }
      },
      "ArloServicePostDeprecated": {
        "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"
        }
      },
      "ArloServicePutDeprecated": {
        "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"
        }
      },
      "ServifyCareGetDeprecated": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Servify account email",
            "example": "test@test.com"
          },
          "planCode": {
            "type": "string",
            "description": "plan code",
            "example": "SERVIFYCAREBRONZE",
            "enum": [
              "SERVIFYCAREBRONZE",
              "SERVIFYCARESILVER",
              "SERVIFYCAREGOLD",
              "SERVIFYCAREPLATINUM"
            ]
          },
          "planDesc": {
            "type": "string",
            "description": "plan description",
            "example": "ServifyCare Bronze"
          },
          "planPurchaseDate": {
            "type": "string",
            "description": "Date of purchase plan",
            "example": "2021-09-09"
          },
          "planCoverageEndDate": {
            "type": "string",
            "description": "Date of coverage end date if cancel plan confirmed",
            "example": "2026-09-09"
          },
          "planChange": {
            "type": "object",
            "properties": {
              "newPlanCode": {
                "type": "string",
                "example": "SERVIFYCARESILVER"
              },
              "oldPlanCode": {
                "type": "string",
                "example": "SERVIFYCAREBRONZE"
              },
              "requested": {
                "type": "number",
                "example": 1653027380000
              },
              "confirmed": {
                "type": "number",
                "example": 0
              },
              "effective": {
                "type": "number",
                "example": 1654819200000
              },
              "status": {
                "type": "string",
                "example": "requested/accepted/denied"
              },
              "message": {
                "type": "string",
                "example": "Your Upgrade Request has been accepted"
              }
            }
          },
          "address": {
            "type": "string",
            "description": "Street name",
            "example": "2777 Orchard Pkwy"
          },
          "city": {
            "type": "string",
            "description": "City name",
            "example": "San Jose"
          },
          "state": {
            "type": "string",
            "description": "State name",
            "example": "California"
          },
          "postal": {
            "type": "string",
            "description": "Zip code",
            "example": "95131"
          },
          "created": {
            "type": "number",
            "description": "event created date",
            "example": 1622711664156
          },
          "updated": {
            "type": "number",
            "description": "event updated date",
            "example": 1622711665157
          }
        },
        "description": "ServifyCare Contract."
      },
      "ServifyCarePostDeprecated": {
        "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"
      },
      "RequiredParamsMissing": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 400
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "param serialNumber is required"
            ]
          }
        }
      },
      "NoSystemFoundError": {
        "type": "object",
        "properties": {
          "errorCode": {
            "type": "integer",
            "example": 404
          },
          "errorMessage": {
            "type": "string",
            "enum": [
              "No system found with the given query filter!"
            ]
          }
        }
      },
      "E2EUnauthorizedError": {
        "type": "object",
        "description": "Unauthorized Request due to missing/invalid apiKey",
        "properties": {
          "errorMessage": {
            "type": "string",
            "description": "Message indicating the error encountered"
          },
          "errorCode": {
            "type": "integer",
            "description": "HTTP status code"
          }
        }
      },
      "E2EError": {
        "type": "object",
        "properties": {
          "errorMessage": {
            "type": "string",
            "description": "Message indicating the error encountered"
          },
          "errorCode": {
            "type": "integer",
            "description": "HTTP status code"
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error_message": {
            "type": "string"
          }
        },
        "description": "Error Response"
      },
      "UsageRecord": {
        "required": [
          "startPeriodSec"
        ],
        "type": "object",
        "properties": {
          "startPeriodSec": {
            "type": "integer",
            "description": "The start of the time period in epoch seconds to which the data applies",
            "format": "int64",
            "example": 1646956800
          },
          "usOctets": {
            "type": "integer",
            "description": "The number of upstream bytes",
            "format": "int64",
            "example": 10160136322385
          },
          "dsOctets": {
            "type": "integer",
            "description": "The number of downstream bytes",
            "format": "int64",
            "example": 10159327006780
          },
          "totalOctets": {
            "type": "integer",
            "description": "The total number of bytes",
            "format": "int64",
            "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",
            "format": "int64",
            "example": 1127235167
          },
          "peakDsRate": {
            "type": "integer",
            "description": "The peak downstream rate in bits per second",
            "format": "int64",
            "example": 1131424602
          },
          "usRate": {
            "type": "integer",
            "description": "The average upstream rate in bits per second",
            "format": "int64",
            "example": 940753363
          },
          "dsRate": {
            "type": "integer",
            "description": "The average downstream rate in bits per second",
            "format": "int64",
            "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"
      },
      "InvalidClientSecret": {
        "type": "string",
        "example": "Invalid/Missing client secret"
      },
      "MissingClientID": {
        "type": "string",
        "example": "ClientID is mandatory"
      },
      "InvalidClientID": {
        "type": "string",
        "example": "Invalid client_id"
      },
      "Unauthorized2": {
        "type": "string",
        "example": "Wrong credentials"
      },
      "TokenExpired": {
        "type": "string",
        "example": "invalid token or token expired"
      },
      "EmptyResp": {
        "description": "Empty struct. Usually used as the response for non-GET methods.",
        "type": "object"
      }
    },
    "responses": {
      "respcalloutcomes": {
        "description": "Response of call outcome data for partners",
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/pcalloutcome"
              }
            }
          }
        }
      },
      "respcalloutcome": {
        "description": "Response of call outcome data for partners",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "$ref": "#/components/schemas/pcalloutcome"
            }
          }
        }
      },
      "BadRequestError": {
        "description": "Bad request error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "error": {
                  "type": "string",
                  "example": "INVALID_DATE"
                },
                "message": {
                  "type": "string",
                  "example": "Invalidate date string '202112'"
                }
              }
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal Server error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "error": {
                  "type": "string",
                  "example": "CONNECTION_FAILED"
                },
                "message": {
                  "type": "string",
                  "example": "Failed to connect data source."
                }
              }
            }
          }
        }
      },
      "HotspotAccessLogGetResp": {
        "description": "A list of Hotspot access logs.",
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/HotspotAccessLog"
              }
            }
          }
        }
      },
      "OkEmpty": {
        "description": "Success",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EmptyResp"
            }
          }
        }
      },
      "BadRequestError1": {
        "description": "Bad request error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorType": {
                  "type": "string",
                  "example": "400"
                },
                "errorDesc": {
                  "type": "string",
                  "example": "Invalid parameter"
                }
              }
            }
          }
        }
      },
      "ConflictAccountResp": {
        "description": "Conflict error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorType": {
                  "type": "string",
                  "example": "409"
                },
                "errorDesc": {
                  "type": "string",
                  "example": "account is already registered"
                }
              }
            }
          }
        }
      },
      "NotFoundError": {
        "description": "NotFound",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorType": {
                  "type": "string",
                  "example": "404"
                },
                "errorDesc": {
                  "type": "string",
                  "example": "Not found"
                }
              }
            }
          }
        }
      },
      "InternalServerError1": {
        "description": "Internal Server error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorType": {
                  "type": "string",
                  "example": "500"
                },
                "errorDesc": {
                  "type": "string",
                  "example": "Internal Server Error"
                }
              }
            }
          }
        }
      },
      "InvalidTokenError": {
        "description": "Invalid Token error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorType": {
                  "type": "string",
                  "example": "498"
                },
                "errorDesc": {
                  "type": "string",
                  "example": "Invalid Token"
                }
              }
            }
          }
        }
      },
      "TokenRequiredError": {
        "description": "Token required error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorType": {
                  "type": "string",
                  "example": "499"
                },
                "errorDesc": {
                  "type": "string",
                  "example": "Token required"
                }
              }
            }
          }
        }
      },
      "AccountAddResp": {
        "description": "Account Add (creation) Response",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "userId": {
                  "description": "Unique account identifier",
                  "type": "string",
                  "example": "7388f43a-4de0-4310-adaa-08a66b7e366b"
                },
                "firstName": {
                  "description": "First name of customer",
                  "type": "string",
                  "example": "John"
                },
                "lastName": {
                  "description": "Last name of customer",
                  "type": "string",
                  "example": "Doe"
                },
                "email": {
                  "description": "Email address of customer",
                  "type": "string",
                  "example": "john.doe@calix.com"
                }
              }
            }
          }
        }
      },
      "AccountLoginResp": {
        "description": "Account Login Response",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "token": {
                  "description": "Token for Authorize header",
                  "type": "string",
                  "example": "Calix issued token"
                },
                "email": {
                  "description": "Email address of customer",
                  "type": "string",
                  "example": "john.doe@calix.com"
                },
                "userId": {
                  "description": "Unique account identifier",
                  "type": "string",
                  "example": "7388f43a-4de0-4310-adaa-08a66b7e366b"
                }
              }
            }
          }
        }
      },
      "EmptyResp": {
        "description": "Account Login Response"
      }
    },
    "parameters": {
      "DeleteDevice": {
        "name": "deviceId",
        "in": "path",
        "description": "Device ID",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    }
  }
}