openapi: 3.0.0
info:
  title: adapter-openapi.json
  description: >
    <p>REST interface for Calix Cloud Apis.</p>

    <p><code><strong>Product Required: Call Outcome</strong></code></p>
  contact: {}
  version: '1.0.0'
servers:
- url: https://api.calix.ai/
  description: Production server
  variables: {}
paths:
  /calloutcome/subscriber/call-outcome:
    get:
      tags:
      - Call Outcome
      summary: Get call outcome data
      description: Get call outcome data for Calix partners
      operationId: Getcalloutcomedata
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberLocationId
        in: query
        description: Subscriber location id
        required: true
        style: form
        explode: true
        schema:
          type: string
          example: abc-123
      - name: extref
        in: query
        description: extref value to retrieve call outcome data
        required: true
        style: form
        explode: true
        schema:
          type: string
          example: '12345'
      responses:
        '200':
          description: Response of call outcome data for partners
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/pcalloutcome'
                description: ''
        '400':
          description: Bad Request
          headers: {}
          content: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
  /insights/subscribers/{subscriber}/trafficusage:
    get:
      tags:
      - Reports
      summary: getTrafficUsage
      description: Get subscriber traffic usage
      operationId: getTrafficUsage
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - 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
        style: form
        explode: true
        schema:
          type: string
          example: '3600'
        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
        style: form
        explode: true
        schema:
          type: string
          example: '1594751100'
        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.
        style: form
        explode: true
        schema:
          type: string
          example: '1594751700'
        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
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: On success.  The traffic usage of the subscriber
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsageRecord'
                description: ''
        '400':
          description: On invalid request parameters
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorResponse'
                - description: Error Response
        '401':
          description: Unauthorized
          headers: {}
          content:
            text/plain:
              schema:
                anyOf:
                - type: string
                  example: Invalid/Missing client secret
                - type: string
                  example: ClientID is mandatory
                - type: string
                  example: Invalid client_id
                - type: string
                  example: Wrong credentials
                - type: string
                  example: invalid token or token expired
        '500':
          description: On processing error
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorResponse'
                - description: Error Response
      deprecated: false
  /insights/subscriberstrafficusage:
    get:
      tags:
      - Reports
      summary: getTrafficUsageForAllSubs
      description: Get subscriber traffic usage for all subscribers
      operationId: getTrafficUsageForAllSubs
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - 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
        style: form
        explode: true
        schema:
          type: string
          example: '3600'
        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
        style: form
        explode: true
        schema:
          type: string
          example: '1594751100'
        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.
        style: form
        explode: true
        schema:
          type: string
          example: '1594751700'
        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.
        style: form
        explode: true
        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>
        style: form
        explode: true
        schema:
          maximum: 5000
          minimum: 1
          type: integer
          format: int64
          default: 100
      responses:
        '200':
          description: On success.  The traffic usage of all the subscribers
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UsageRecord'
                description: ''
        '400':
          description: On invalid request parameters
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorResponse'
                - description: Error Response
        '401':
          description: Unauthorized
          headers: {}
          content:
            text/plain:
              schema:
                anyOf:
                - type: string
                  example: Invalid/Missing client secret
                - type: string
                  example: ClientID is mandatory
                - type: string
                  example: Invalid client_id
                - type: string
                  example: Wrong credentials
                - type: string
                  example: invalid token or token expired
        '500':
          description: On processing error
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ErrorResponse'
                - description: Error Response
      deprecated: false
  /calea/access-logs:
    get:
      tags:
      - Access_Logs
      summary: CaleaAccessLogs_GET
      description: Get the Hotspot access logs by subscriber ID or client MAC address.
      operationId: CaleaAccessLogs_GET
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: query
        description: Filter Hotspot access logs by the subscriber ID. One of `subscriberId` and `clientMACAddress` must be provided when get the access log.
        style: form
        explode: true
        schema:
          type: string
          example: 6e4f5013-993a-4590-aab7-7afbdee5c215
      - name: clientMACAddress
        in: query
        description: Filter Hotspot access logs by the client MAC address. One of `subscriberId` and `clientMACAddress` must be provided when get the access log.
        style: form
        explode: true
        schema:
          type: string
          example: cc:08:8d:65:e8:71
      - name: startDate
        in: query
        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`.
        style: form
        explode: true
        schema:
          type: string
          example: '20221012'
      - name: endDate
        in: query
        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`.
        style: form
        explode: true
        schema:
          type: string
          example: '20221018'
      responses:
        '200':
          description: A list of Hotspot access logs.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/HotspotAccessLog'
                description: ''
        '400':
          description: Bad request error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError1'
        '500':
          description: Internal Server error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError21'
      deprecated: false
  /billing/subscribers:
    get:
      tags:
      - Subscriber
      summary: Retrieve all subscriber(s) that match all the given query criteria
      description: >-
        Misc Notes:
          - When querying via the "devices" query parameter, all other query parameters will be ignored
          - 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
          - 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
      operationId: Retrieveallsubscriber(s)thatmatchallthegivenquerycriteria
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - 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.


          For example: CXNK00112233,CXNK44556677
        style: form
        explode: true
        schema:
          type: string
      - name: account
        in: query
        description: Account ID
        style: form
        explode: true
        schema:
          type: string
      - name: phone
        in: query
        description: Phone Number
        style: form
        explode: true
        schema:
          type: string
      - name: email
        in: query
        description: Email
        style: form
        explode: true
        schema:
          type: string
      - name: region
        in: query
        description: Region
        style: form
        explode: true
        schema:
          type: string
      - name: billingStatus
        in: query
        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."
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/billingStatus1'
          - 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."
      - name: withDevices
        in: query
        description: Include the `devices` field in the response
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      - name: withServices
        in: query
        description: Include the `services` field in the response
        style: form
        explode: true
        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
        style: form
        explode: true
        schema:
          type: integer
          format: int32
          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.
        style: form
        explode: true
        schema:
          maximum: 500
          minimum: 1
          type: integer
          format: int32
          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)
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SubscriberBulkQueryResponse'
                - description: Paginated Response for Subscriber Queries
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    post:
      tags:
      - Subscriber
      summary: Create a new subscriber.
      description: Create a new subscriber.
      operationId: Createanewsubscriber.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      requestBody:
        description: >-
          The new subscriber record.


          The following field(s) are mandatory for all create requests:
            - subscriberLocationId

          Please note that <span style="color:red">the new subsccriber record in the request body must not contain

          "devices" and "services" fields</span>, as devices and services will be added to the subscriber later via

          separate API requests.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/SubscriberInfoRequest'
              - description: >-
                  The new subscriber record.


                  The following field(s) are mandatory for all create requests:
                    - subscriberLocationId

                  Please note that <span style="color:red">the new subsccriber record in the request body must not contain

                  "devices" and "services" fields</span>, as devices and services will be added to the subscriber later via

                  separate API requests.
        required: true
      responses:
        '200':
          description: >-
            The new subscriber has been created successfully.


            The auto-generated id of the subscriber record is returned in the response body
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Id'
                - description: A JSON Object that contains the "id" of a newly created object
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '409':
          description: Cannot create new subscriber since the subscriberLocationId conflicts with an existing subscriber
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberLocationIdConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/subscribers/{subscriberId}:
    get:
      tags:
      - Subscriber
      summary: Retrieve an existing subscriber by subscriberId
      description: ''
      operationId: RetrieveanexistingsubscriberbysubscriberId
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: includeDeviceData
        in: query
        description: Include the `deviceData` field in the response.
        style: form
        explode: true
        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`.
        style: form
        explode: true
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Subscriber record in the response body
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberInfoFull'
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    put:
      tags:
      - Subscriber
      summary: Update an existing subscriber by subscriberId.
      description: >-
        Misc Notes:
          - 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.
      operationId: UpdateanexistingsubscriberbysubscriberId.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: The updated subscriber record
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/SubscriberInfoRequest'
              - description: The updated subscriber record
        required: true
      responses:
        '200':
          description: The subscriber has been updated successfully.
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '409':
          description: Cannot change subscriberLocationId since the subscriberLocationId conflicts with an existing subscriber
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberLocationIdConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    delete:
      tags:
      - Subscriber
      summary: Delete an existing subscriber by subscriberId
      description: ''
      operationId: DeleteanexistingsubscriberbysubscriberId
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The subscriber has been deleted successfully.
          headers: {}
          content: {}
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/subscribers/{subscriberId}/devices:
    get:
      tags:
      - Subscriber - Devices
      summary: Retrieve associated device list for a subscriber location
      description: ''
      operationId: Retrieveassociateddevicelistforasubscriberlocation
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: See Response Payload for the list of device(s).
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                description: ''
                example:
                - CXNK00111111
                - CXNK00222222
              example:
              - CXNK00111111
              - CXNK00222222
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    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
      operationId: Updateassociateddevicelist
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: deviceList
        in: query
        description: >-
          The new list of device(s) to be associated with the subscriber.


          The format of this list will be comma-separated strings, for example "deviceList=CXNK00112233,CXNK44556677"


          If the new list is empty (e.g. "deviceList="), all devices that currently associated with the subscriber will be disassociated with this subscriber.
        required: true
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: Device list has been updated successfully
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found by the given subscriberId
          headers: {}
          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
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    post:
      tags:
      - Subscriber - Devices
      summary: Add a device id to an existing subscriber's associated device list
      description: ''
      operationId: Addadeviceidtoanexistingsubscriber'sassociateddevicelist
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        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

          * SN/FSAN device id strings, for example 'CXNK00112233', will be converted to all upper case when storing in the DB

          * 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

          * Calix Registration ID strings are alphanumberic strings with 1 to 10 chars/digits, and will be stored in the DB as is


          In 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
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: The device has been associated to the subscriber successfully.
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId
          headers: {}
          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
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /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
      description: ''
      operationId: ReplaceadeviceIDinanexsitingsubscriber'sassociateddevicelistwithanotherdeviceID
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: deviceId
        in: path
        description: The existing device ID string
        required: true
        style: simple
        schema:
          type: string
      - name: newDeviceId
        in: query
        description: The new device ID string
        required: true
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: The device ID has been updated successfully.
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber or device found found by the given subscriberId
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '409':
          description: Cannot add device to subscriber since this device is associated with another subscriber
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    delete:
      tags:
      - Subscriber - Devices
      summary: Delete a device from an existing subscriber's associated device list
      description: ''
      operationId: Deleteadevicefromanexistingsubscriber'sassociateddevicelist
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: deviceId
        in: path
        description: Device ID string
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The device has been removed from the subscriber device list successfully.
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId, or no such device in the subscriber record's device list
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /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.
      operationId: RetrieveanexistingFCCidentifierbysubscriberId.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: Subscriber Id, e.g. '2c13ab77-8441-43fb-8967-2da4d8383d68'.
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: FCC Identifier record in the response body.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/FccIdentifier'
                - description: This object defines the payload of FCC identifier creation/update requests
        '404':
          description: No FCC identifier found found by the given subscriberLocationId.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FccIdentifierNotFound'
        '500':
          description: Unexpected Internal Server Error.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    put:
      tags:
      - Subscriber - FCC Identifier
      summary: Update an existing FCC identifier by subscriberId.
      description: ''
      operationId: UpdateanexistingFCCidentifierbysubscriberId.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: The updated FCC identifier.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/FccIdentifier'
              - description: The updated FCC identifier.
        required: true
      responses:
        '200':
          description: The FCC identifier has been updated successfully.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/FccIdentifier'
                - description: This object defines the payload of FCC identifier creation/update requests
        '400':
          description: Invalid Request.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '404':
          description: FCC Identifier Not Found.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FccIdentifierNotFound'
        '409':
          description: Cannot change FCC identifier due to conflict with an existing FCC identifier.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FccSubscriberIdConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    post:
      tags:
      - Subscriber - FCC Identifier
      summary: Create a new FCC identifier for the subscriber.
      description: Create a new FCC identifier.
      operationId: CreateanewFCCidentifierforthesubscriber.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: The new FCC identifier record.
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/FccIdentifier'
              - description: The new FCC identifier record.
        required: true
      responses:
        '200':
          description: The new FCC identifier has been created successfully.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Id'
                - description: A JSON Object that contains the "id" of a newly created object
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '409':
          description: Cannot create new FCC identifier since the subscriberId conflicts with an existing FCC identifier
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FccSubscriberIdConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    delete:
      tags:
      - Subscriber - FCC Identifier
      summary: Delete an existing FCC identifier by subscriberId.
      description: ''
      operationId: DeleteanexistingFCCidentifierbysubscriberId.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The FCC identifier has been deleted successfully.
          headers: {}
          content: {}
        '404':
          description: No FCC identifier found by the given subscriberId.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FccIdentifierNotFound'
        '500':
          description: Unexpected Internal Server Error.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/subscribers/{subscriberId}/services:
    get:
      tags:
      - Subscriber - Services
      summary: Retrieve service list for a subscriber location
      description: ''
      operationId: Retrieveservicelistforasubscriberlocation
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        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.
        style: form
        explode: true
        schema:
          type: boolean
      responses:
        '200':
          description: See Response Payload for the list of service(s).
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceRetrievalResponse'
                description: ''
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    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
      operationId: Updatetheentireservicelistforasubscriberlocation
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: ignoreDuplicates
        in: query
        description: Flag to enforce duplicate check, default to false
        style: form
        explode: true
        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:
              type: array
              items:
                $ref: '#/components/schemas/Service'
              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.
        required: true
      responses:
        '200':
          description: Service list has been updated successfully
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: '- No subscriber found by the given subscriberId, or'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    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.


        When you want to apply the service, a.k.a activate the service, you must input `"activate": true` with appropriate parameters.
      operationId: Addanewservicetoasubscriberlocation
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        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:
              allOf:
              - $ref: '#/components/schemas/Service'
              - 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.
        required: true
      responses:
        '200':
          description: >-
            The new service has been added to the subscriber location successfully.


            The auto-generated id of the new service object is returned in the response body
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Id'
                - description: A JSON Object that contains the "id" of a newly created object
        '400':
          description: Invalid Request (for example Service USOC and Type Cannot both be empty)
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidServiceRequest'
                - description: Invalid Service POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: >-
            - No subscriber found by the given subscriberId, or

            - No matching service found by one of the USOC(s) in the list
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/subscribers/{subscriberId}/services/{serviceId}:
    get:
      tags:
      - Subscriber - Services
      summary: Retrieve an existing service instance for a subscriber location by service instance id
      description: ''
      operationId: Retrieveanexistingserviceinstanceforasubscriberlocationbyserviceinstanceid
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: serviceId
        in: path
        description: Service Instance Id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The service details in the response body
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceRetrievalResponse'
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId, or no such service instance id in the subscriber record's service list
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServiceNotFound'
                - description: No service found due to either invalid subscriber location id or service instance id
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    put:
      tags:
      - Subscriber - Services
      summary: Update an existing service instance for a subscriber location by service instance id.
      description: ''
      operationId: Updateanexistingserviceinstanceforasubscriberlocationbyserviceinstanceid.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: serviceId
        in: path
        description: Service Instance Id
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: Updated Service, all fields are editable including usoc
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Service'
              - description: Updated Service, all fields are editable including usoc
        required: true
      responses:
        '200':
          description: The service has been updated for the subscriber location successfully.
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId, or no such service instance id in the subscriber record's service list
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServiceNotFound'
                - description: No service found due to either invalid subscriber location id or service instance id
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    delete:
      tags:
      - Subscriber - Services
      summary: Delete an existing service instance from a subscriber location by service instance id
      description: ''
      operationId: Deleteanexistingserviceinstancefromasubscriberlocationbyserviceinstanceid
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: serviceId
        in: path
        description: Service Instance Id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The service has been deleted from the subscriber location successfully.
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId, or no such service instance id in the subscriber record's service list
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServiceNotFound'
                - description: No service found due to either invalid subscriber location id or service instance id
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/subscribers/{subscriberId}/services/status:
    get:
      tags:
      - Subscriber - Services
      summary: Status of all existing service(s) for a subscriber
      description: ''
      operationId: Statusofallexistingservice(s)forasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Objects of activate services.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServiceStatusRetrievalResponse'
                - description: Service status with activate instance
      deprecated: false
  /billing/subscribers/{subscriberId}/appServices:
    get:
      tags:
      - Subscriber - App Services
      summary: Retrieve all existing application services for a subscriber
      description: ''
      operationId: Retrieveallexistingapplicationservicesforasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        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.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationService'
                description: Services setting
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found by the given subscriberId
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/subscribers/{subscriberId}/appServices/{appServiceName}:
    get:
      tags:
      - Subscriber - App Services
      summary: Retrieve an existing application service setting by subscriberId and service name
      description: ''
      operationId: RetrieveanexistingapplicationservicesettingbysubscriberIdandservicename
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: appServiceName
        in: path
        description: ''
        required: true
        style: simple
        schema:
          $ref: '#/components/schemas/appServiceName'
      responses:
        '200':
          description: Application service setting
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApplicationService'
                - description: Service state setting
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found by the given subscriberId, or No application service found by the given subscriberId and the appServiceName
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberOrAppServiceNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    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:
          - If there is no existing app service found for the specified app service name, it will be created.
          - If there is already existing app service for the specified app service name, it will be updated.
      operationId: Createanewapplicationservicesettingorupdateanexistingapplicationservicesettingforasubscriber.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: appServiceName
        in: path
        description: ''
        required: true
        style: simple
        schema:
          $ref: '#/components/schemas/appServiceName'
      requestBody:
        description: App service setting
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/BillingSubscribersAppServicesRequest'
              - description: App service setting
        required: true
      responses:
        '200':
          description: The subscriber has been updated successfully.
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No subscriber found found by the given subscriberId
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/subscribers/{subscriberId}/arlo-service:
    get:
      tags:
      - Subscriber - Arlo Service - Deprecated
      summary: Retrieve the Arlo Service Info for a subscriber.
      description: ''
      operationId: RetrievetheArloServiceInfoforasubscriber.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Allo Service Info.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServiceGetDeprecated'
                - description: Arlo Service Result.
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '404':
          description: No Arlo Service Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoArloFoundError'
      deprecated: true
    put:
      tags:
      - Subscriber - Arlo Service - Deprecated
      summary: Update the Arlo Service for a subsccriber
      description: ''
      operationId: UpdatetheArloServiceforasubsccriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArloServicePutDeprecated'
        required: true
      responses:
        '200':
          description: The Arlo Service has been updated successfully
          headers: {}
          content: {}
        '400':
          description: Bad Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServicePutErrorBadRequest'
                - description: Bad Arlo Service Put request
        '404':
          description: No Arlo Service Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoArloFoundError'
        '500':
          description: Cannot update Arlo account because of Arlo Service error.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServicePutInternalError'
                - description: Failed to update Arlo Service because of Arlo Service error.
      deprecated: true
    post:
      tags:
      - Subscriber - Arlo Service - Deprecated
      summary: Create the Arlo Service for a subscriber
      description: ''
      operationId: CreatetheArloServiceforasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArloServicePostDeprecated'
        required: true
      responses:
        '200':
          description: The Arlo Service has been created successfully
          headers: {}
          content: {}
        '400':
          description: Bad Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServicePostErrorBadRequest'
                - description: Bad Arlo Service post request
        '500':
          description: Cannot create Arlo account because of Arlo Service error.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServicePostInternalError'
                - description: Failed to create Arlo Service because of Arlo Service error.
      deprecated: true
    delete:
      tags:
      - Subscriber - Arlo Service - Deprecated
      summary: Delete the Arlo Service for a subscriber
      description: ''
      operationId: DeletetheArloServiceforasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The Arlo Service (if any) has been deleted successfully
          headers: {}
          content: {}
        '404':
          description: No Arlo Service
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoArloFoundError'
      deprecated: true
  /billing/subscribers/{subscriberId}/servify-contract:
    get:
      tags:
      - Subscriber - Servify Contract - Deprecated
      summary: Retrieve the Servify Contract for a subscriber.
      description: ''
      operationId: RetrievetheServifyContractforasubscriber.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Servify Contract.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServifyCareGetDeprecated'
                - description: ServifyCare Contract.
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '404':
          description: No Servify Contract
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoServifyFoundError'
      deprecated: true
    post:
      tags:
      - Subscriber - Servify Contract - Deprecated
      summary: Create Servify Contract for one subscriber
      description: ''
      operationId: CreateServifyContractforonesubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServifyCarePostDeprecated'
        required: true
      responses:
        '200':
          description: The Servify Contract has been created successfully
          headers: {}
          content: {}
        '400':
          description: Bad Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '500':
          description: Cannot create Servify Contract because of Servify error.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServifyContractPostInternalError'
                - description: Failed to create Servify Contract because of Servify error.
      deprecated: true
    delete:
      tags:
      - Subscriber - Servify Contract - Deprecated
      summary: Delete the Servify Contract for a subscriber
      description: ''
      operationId: DeletetheServifyContractforasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        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
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: The Servify Contract has been deleted successfully
          headers: {}
          content: {}
      deprecated: true
  /billing/subscribers/{subscriberId}/managed-service/arlo:
    get:
      tags:
      - Managed Service - Arlo
      summary: Retrieve the Arlo Service Info for a subscriber.
      description: ''
      operationId: GetRetrievetheArloServiceInfoforasubscriber.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Allo Service Info.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServiceGet'
                - description: Arlo Service Result.
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '404':
          description: No Arlo Service Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoArloFoundError'
      deprecated: false
    put:
      tags:
      - Managed Service - Arlo
      summary: Update the Arlo Service for a subsccriber
      description: ''
      operationId: PutUpdatetheArloServiceforasubsccriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArloServicePut'
        required: true
      responses:
        '200':
          description: The Arlo Service has been updated successfully
          headers: {}
          content: {}
        '400':
          description: Bad Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServicePutErrorBadRequest'
                - description: Bad Arlo Service Put request
        '404':
          description: No Arlo Service Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoArloFoundError'
        '500':
          description: Cannot update Arlo account because of Arlo Service error.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServicePutInternalError'
                - description: Failed to update Arlo Service because of Arlo Service error.
      deprecated: false
    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`.

        The attributes of Arlo Service account are from standardized subscriber attributes, e.g.
          * name
          * firstName
          * lastName
          * **email**
          * phone
          * serviceAddress
          * street
          * streetLine2
          * city
          * state
          * postcode
          * country
          * businessName
          * billingStreet
          * billingStreetLine2
          * billingCity
          * billingState
          * billingPostcode
          * billingCountry
          * serviceCategory
          * **planCode**

        Highlighted attributes (in **bold**) are used by this API to create the Arlo Service account.
      operationId: PostCreatetheArloServiceforasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArloServicePost'
        required: true
      responses:
        '200':
          description: The Arlo Service has been created successfully
          headers: {}
          content: {}
        '400':
          description: Bad Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServicePostErrorBadRequest'
                - description: Bad Arlo Service post request
        '500':
          description: Cannot create Arlo account because of Arlo Service error.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ArloServicePostInternalError'
                - description: Failed to create Arlo Service because of Arlo Service error.
      deprecated: false
    delete:
      tags:
      - Managed Service - Arlo
      summary: Delete the Arlo Service for a subscriber
      description: ''
      operationId: DeletetheArloServiceforasubscriber1
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The Arlo Service (if any) has been deleted successfully
          headers: {}
          content: {}
        '404':
          description: No Arlo Service
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoArloFoundError'
      deprecated: false
  /billing/subscribers/{subscriberId}/managed-service/servify:
    get:
      tags:
      - Managed Service - Servify
      summary: Retrieve the Servify Contract for a subscriber.
      description: ''
      operationId: GetRetrievetheServifyContractforasubscriber.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Servify Contract.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServifyCareGet'
                - description: ServifyCare Contract.
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '404':
          description: No Servify Contract
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoServifyFoundError'
      deprecated: false
    put:
      tags:
      - Managed Service - Servify
      summary: Update Servify Contract Plan for a subscriber
      description: ''
      operationId: UpdateServifyContractPlanforasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      - name: planCode
        in: query
        description: ''
        required: true
        style: form
        explode: true
        schema:
          $ref: '#/components/schemas/planCode7'
      responses:
        '200':
          description: The Servify Contract has been updated successfully
          headers: {}
          content: {}
        '400':
          description: Bad Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServifyContractPostErrorBadRequest'
                - description: Bad Servify Contract Post request
        '500':
          description: Cannot create Servify Contract because of Servify error.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServifyContractPostInternalError'
                - description: Failed to create Servify Contract because of Servify error.
      deprecated: false
    post:
      tags:
      - Managed Service - Servify
      summary: Create Servify Contract for a subscriber
      description: >-
        Create a Servify Contract for the subscriber specified by the `subscriberId`.

        The attributes of Servify Contract are from standardized subscriber attributes, e.g.
          * name
          * **firstName**
          * **lastName**
          * **email**
          * phone
          * **serviceAddress**
          * street
          * streetLine2
          * **city**
          * **state**
          * **postcode**
          * country
          * businessName
          * billingStreet
          * billingStreetLine2
          * billingCity
          * billingState
          * billingPostcode
          * billingCountry
          * serviceCategory
          * **planCode**

        Highlighted attributes (in **bold**) are used by this API to create the Servify Contract.
      operationId: CreateServifyContractforasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServifyCarePost'
        required: true
      responses:
        '200':
          description: The Servify Contract has been created successfully
          headers: {}
          content: {}
        '400':
          description: Bad Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServifyContractPostErrorBadRequest'
                - description: Bad Servify Contract Post request
        '500':
          description: Cannot create Servify Contract because of Servify error.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServifyContractPostInternalError'
                - description: Failed to create Servify Contract because of Servify error.
      deprecated: false
    delete:
      tags:
      - Managed Service - Servify
      summary: Delete the Servify Contract for a subscriber
      description: ''
      operationId: DeletetheServifyContractforasubscriber1
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        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
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: The Servify Contract has been deleted successfully
          headers: {}
          content: {}
      deprecated: false
  /billing/subscribers/{subscriberId}/smarttown-wifi/subscriber:
    get:
      tags:
      - Subscriber - SmartTown Wi-Fi
      summary: Retrieve the subscriber membership of SmartTown Wi-Fi for a subscriber.
      description: ''
      operationId: RetrievethesubscribermembershipofSmartTownWi-Fiforasubscriber.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Subscriber membership of SmartTown Wi-Fi.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SmartTownWiFiSubMembership'
                - description: Subscriber Community membership
        '400':
          description: Bad request. see response body for more details
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '404':
          description: No SmartTown Wi-Fi Subscriber Membership
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoSmartTownWiFiFoundError'
      deprecated: false
    put:
      tags:
      - Subscriber - SmartTown Wi-Fi
      summary: Create/Update subscriber membershp of SmartTown Wi-Fi for a subscriber
      description: ''
      operationId: Create/UpdatesubscribermembershpofSmartTownWi-Fiforasubscriber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: subscriberId
        in: path
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartTownWiFiSubMembership'
        required: true
      responses:
        '200':
          description: The subscriber membership has been created/updated successfully.
          headers: {}
          content: {}
        '400':
          description: Bad request. see response body for more details
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '500':
          description: Cannot create/update Subscriber Membership
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SmartTownWiFiInternalError'
                - description: Cannot create/update Subscriber Membership
      deprecated: false
  /billing/serviceDefinitions:
    get:
      tags:
      - Service Definitions
      summary: Retrieve all service definition(s)
      description: ''
      operationId: Retrieveallservicedefinition(s)
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      responses:
        '200':
          description: Zero or more service definition(s) in the response body
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceDefinition'
                description: ''
                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
              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
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    put:
      tags:
      - Service Definitions
      summary: Update all service definition(s) via a single request
      description: ''
      operationId: Updateallservicedefinition(s)viaasinglerequest
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ServiceDefinition'
              description: ''
        required: true
      responses:
        '200':
          description: The service definition list has been updated successfully
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    post:
      tags:
      - Service Definitions
      summary: Create a new service definition.
      description: ''
      operationId: Createanewservicedefinition.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      requestBody:
        description: >-
          The new service definition.


          The following fields are mandatory for all create requests:
            - usoc
            - type
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ServiceDefinition'
              - description: >-
                  The new service definition.


                  The following fields are mandatory for all create requests:
                    - usoc
                    - type
        required: true
      responses:
        '200':
          description: The new service definition has been created successfully.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Id'
                - description: A JSON Object that contains the "id" of a newly created object
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '409':
          description: Cannot create new service definition since the usoc + techType + customerType conflicts with an existing service definition
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDefinitionConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/serviceDefinitions/{serviceDefinitionId}:
    get:
      tags:
      - Service Definitions
      summary: Retrieve an existing service definition by usoc.
      description: ''
      operationId: Retrieveanexistingservicedefinitionbyusoc.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serviceDefinitionId
        in: path
        description: id of the existing service definition
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The response body will be an array with 0 or more service definition(s)
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ServiceDefinition'
                - description: >-
                    Service definitions are common objects that are applicable to all subscribers.


                    Each Service Definition is uniquely identified by its usoc, or "Universal Service Ordering Code".
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No Service Definition found found by the given id service list
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDefinitionNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    put:
      tags:
      - Service Definitions
      summary: Update an existing service definition by id.
      description: ''
      operationId: Updateanexistingservicedefinitionbyid.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serviceDefinitionId
        in: path
        description: id of the existing service definition
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: >-
          The updated service definition.


          The following fields are mandatory for all create requests:
            - usoc
            - type
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ServiceDefinition'
              - description: >-
                  The updated service definition.


                  The following fields are mandatory for all create requests:
                    - usoc
                    - type
        required: true
      responses:
        '200':
          description: The service definition has been updated successfully.
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest1'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No Service Definition found found by the given id service list
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDefinitionNotFound'
        '409':
          description: Cannot update service definition since the USOC conflicts with an existing service definition
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDefinitionConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
    delete:
      tags:
      - Service Definitions
      summary: Delete an existing service definition by usoc.
      description: ''
      operationId: Deleteanexistingservicedefinitionbyusoc.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serviceDefinitionId
        in: path
        description: id of the existing service definition
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The service definition has been deleted successfully
          headers: {}
          content: {}
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized1'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No Service Definition found found by the given id service list
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDefinitionNotFound'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError1'
      deprecated: false
  /billing/support/operator/ssid:
    get:
      tags:
      - SSID
      summary: Retrieve ssid by subscriberId or RG serialNumber
      description: ''
      operationId: RetrievessidbysubscriberIdorRGserialNumber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serialNumber
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      - name: subscriberId
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SSID'
                description: ''
        '400':
          description: Bad request
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequiredParamsMissing'
        '404':
          description: No system found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoSystemFoundError'
      deprecated: false
    put:
      tags:
      - SSID
      summary: Update ssid by subscriberId or RG serialNumber
      description: ''
      operationId: UpdatessidbysubscriberIdorRGserialNumber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serialNumber
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      - name: subscriberId
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SSIDPutRequest'
        required: false
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SSIDPutResponse'
                description: ''
        '400':
          description: Bad request
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequiredParamsMissing'
        '404':
          description: No system found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoSystemFoundError'
      deprecated: false
  /billing/support/operator/secondarynetwork/availability:
    get:
      tags:
      - SSID
      summary: Retrieve secondarynetwork availability by subscriberId or RG serialNumber
      description: ''
      operationId: RetrievesecondarynetworkavailabilitybysubscriberIdorRGserialNumber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serialNumber
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      - name: subscriberId
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecondaryNetworkAvailability'
        '400':
          description: Bad request
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequiredParamsMissing'
        '404':
          description: No system found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoSystemFoundError'
      deprecated: false
  /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)

        * type (1 guest, 2 WFH, 3 custom unified, 4 custom 2.4GHz, 5 custom 5GHz, 6 custom 6GHz)
      operationId: RetrievesecondarynetworkbysubscriberIdorRGserialNumber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serialNumber
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      - name: subscriberId
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SecondaryNetwork'
                description: ''
        '400':
          description: Bad request
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequiredParamsMissing'
        '404':
          description: No system found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoSystemFoundError'
      deprecated: false
    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)

        * type (1 guest, 2 WFH, 3 custom unified, 4 custom 2.4GHz, 5 custom 5GHz, 6 custom 6GHz)
      operationId: UpdatesecondarynetworkbysubscriberIdorRGserialNumber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serialNumber
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      - name: subscriberId
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SecondaryNetworkPutRequest'
        required: false
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecondaryNetworkPutResponse'
        '400':
          description: Bad request
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequiredParamsMissing'
        '404':
          description: No system found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoSystemFoundError'
      deprecated: false
    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)

        * type (1 guest, 2 WFH, 3 custom unified, 4 custom 2.4GHz, 5 custom 5GHz, 6 custom 6GHz)
      operationId: CreatesecondarynetworkbysubscriberIdorRGserialNumber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serialNumber
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      - name: subscriberId
        in: query
        description: serialNumber and subscriberId cannot be null at the same time
        style: form
        explode: true
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SecondaryNetworkPostRequest'
        required: false
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecondaryNetworkPostResponse'
        '400':
          description: Bad request
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequiredParamsMissing'
        '404':
          description: No system found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoSystemFoundError'
      deprecated: false
    delete:
      tags:
      - SSID
      summary: Delete secondarynetwork by subscriberId or RG serialNumber
      description: ''
      operationId: DeletesecondarynetworkbysubscriberIdorRGserialNumber
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: serialNumber
        in: query
        description: serialNumber and subscriberId cannot be null at the same time.
        style: form
        explode: true
        schema:
          type: string
      - name: subscriberId
        in: query
        description: serialNumber and subscriberId cannot be null at the same time.
        style: form
        explode: true
        schema:
          type: string
      - name: Content-Type
        in: header
        description: ''
        required: true
        style: simple
        schema:
          enum:
          - application/json
          type: string
      responses:
        '200':
          description: successful operation
          headers: {}
          content: {}
        '400':
          description: Bad request
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequiredParamsMissing'
        '404':
          description: No system found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NoSystemFoundError'
      deprecated: false
  /billing/e2e/serviceDefinitions:
    get:
      tags:
      - E2E Service Definition Template
      summary: searchServiceDefinitions
      description: The GET method will retrieve the details of the service definitions
      operationId: searchServiceDefinitions
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: name
        in: query
        description: name for which details need to be retrieved.
        style: form
        explode: true
        schema:
          type: string
      - name: serviceType
        in: query
        description: service-type
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/serviceType'
          - description: service-type
      responses:
        '200':
          description: Zero or more service definition(s) in the response body.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/E2EServiceDefinition'
                description: ''
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/E2EUnauthorizedError'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No service definition found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/E2EError'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/E2EError'
      deprecated: false
  /map/v1/mobile/account/add:
    put:
      tags:
      - Account
      summary: MapV1MobileAccountAdd_PUT
      description: CommandIQ account creation - Authorize token doesn't require
      operationId: MapV1MobileAccountAdd_PUT
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MapV1MobileAccountAddRequest'
        required: true
      responses:
        '200':
          description: Account Add (creation) Response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountAddResp'
        '400':
          description: Bad request error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError111'
        '409':
          description: Conflict error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictAccountResp1'
        '500':
          description: Internal Server error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError111'
      deprecated: false
  /map/v2/mobile/account/login:
    post:
      tags:
      - Account
      summary: MapV2MobileAccountLogin_POST
      description: Login CommandIQ account - Authorize token doesn't require
      operationId: MapV2MobileAccountLogin_POST
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MapV2MobileAccountLoginRequest'
        required: true
      responses:
        '200':
          description: Account Login Response
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLoginResp'
        '400':
          description: Bad request error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError111'
        '404':
          description: NotFound
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError11'
        '498':
          description: Invalid Token error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidTokenError1'
        '499':
          description: Token required error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenRequiredError1'
        '500':
          description: Internal Server error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError111'
      deprecated: false
  /map/v1/mobile/account/user/remove:
    delete:
      tags:
      - Account
      summary: MapV1MobileAccountUserRemove_DELETE
      description: Delete CommandIQ account - Authorize token required
      operationId: MapV1MobileAccountUserRemove_DELETE
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: X-Calix-BearerToken
        in: header
        description: The token generated from the login api
        required: true
        style: simple
        schema:
          type: string
          example: sample-bearer-token
      responses:
        '200':
          description: Account Login Response
          headers: {}
          content: {}
        '400':
          description: Bad request error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError111'
        '404':
          description: NotFound
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError11'
        '498':
          description: Invalid Token error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidTokenError1'
        '499':
          description: Token required error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenRequiredError1'
        '500':
          description: Internal Server error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError111'
      deprecated: false
  /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.

        When 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.

        The uniqueness check can be done by retrieving existing test with the "name" query parameter.

        The response body will always be a JSON array with 0 or more test instance(s).
      operationId: RetrieveallexistingCAFIItests,orasingletestinstancebyorgIdandname,orforagivendate.
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: name
        in: query
        description: Name of an existing test instance
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: Zero or more test instance(s) in the response body
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CafIITest'
                description: ''
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized'
                - description: Unauthorized Request due to missing/invalid apiKey
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      deprecated: false
    post:
      summary: Create a new CAF II Test instance
      description: ''
      operationId: CreateanewCAFIITestinstance
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      requestBody:
        description: >-
          A new CAF II Test instance.


          Please do not include any of the internally generated field in the below list:

          * _id

          * status
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/CafIITestCreateRequest'
              - description: >-
                  A new CAF II Test instance.


                  Please do not include any of the internally generated field in the below list:

                  * _id

                  * status
        required: true
      responses:
        '201':
          description: The new test has been created successfully
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Created'
                - description: After a new object is created, the _id string of the new object is returned in the response payload
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized'
                - description: Unauthorized Request due to missing/invalid apiKey
        '409':
          description: Cannot create new test since an existing test already exists for the same name combination.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NameConflict'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      deprecated: false
  /net-perf-test/cafIITest/{id}:
    get:
      summary: Retrieve an existing CAF II test by _id string
      description: ''
      operationId: RetrieveanexistingCAFIItestby_idstring
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: id
        in: path
        description: The _id string of an existing CAF II test instance
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: The CAF II test instance is in the response body
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/CafIITest'
                - description: A CAF II Test Instance
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No test found by the given id string
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      deprecated: false
    put:
      summary: Update an existing test
      description: >-
        Misc notes:
         - Editing is not allowed once test has started.
      operationId: Updateanexistingtest
      parameters:
      - name: id
        in: path
        description: The _id string of an existing test
        required: true
        style: simple
        schema:
          type: string
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      requestBody:
        description: Updated test
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/CafIITest'
              - description: Updated test
        required: true
      responses:
        '200':
          description: The Test has been updated successfully
          headers: {}
          content: {}
        '400':
          description: Invalid Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/InvalidRequest'
                - description: The error to be returned for illegal/invalid test server POST/PUT requests
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized'
                - description: Unauthorized Request due to missing/invalid apiKey
        '403':
          description: Editing of existing test instances is not allowed once the test has started
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestReadOnlyAfterStarted'
        '404':
          description: No test found by the given id string
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      deprecated: false
    delete:
      summary: Delete an existing CAF II test by _id string
      description: ''
      operationId: DeleteanexistingCAFIItestby_idstring
      parameters:
      - name: id
        in: path
        description: The _id string of an existing test
        required: true
        style: simple
        schema:
          type: string
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      responses:
        '200':
          description: The test has been deleted successfully
          headers: {}
          content: {}
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized'
                - description: Unauthorized Request due to missing/invalid apiKey
        '404':
          description: No test found by the given id string
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      deprecated: false
  /net-perf-test/cafIITest/{id}/suspend:
    put:
      summary: Suspend an existing test
      description: ''
      operationId: Suspendanexistingtest
      parameters:
      - name: id
        in: path
        description: The _id string of an existing test
        required: true
        style: simple
        schema:
          type: string
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      responses:
        '200':
          description: The Test has been suspended successfully
          headers: {}
          content: {}
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized'
                - description: Unauthorized Request due to missing/invalid apiKey
        '403':
          description: Cannot suspend the test as the test is already suspended, or has been completed.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuspendTestError'
        '404':
          description: No test found by the given id string
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      deprecated: false
  /net-perf-test/cafIITest/{id}/resume:
    put:
      summary: Resume an existing test
      description: ''
      operationId: Resumeanexistingtest
      parameters:
      - name: id
        in: path
        description: The _id string of an existing test
        required: true
        style: simple
        schema:
          type: string
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      responses:
        '200':
          description: The Test has been resumed successfully
          headers: {}
          content: {}
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized'
                - description: Unauthorized Request due to missing/invalid apiKey
        '403':
          description: Cannot resume the test as the test has been completed, or is not currently suspended.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResumeTestError'
        '404':
          description: No test found by the given id string
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      deprecated: false
  /net-perf-test/ooklaServer:
    get:
      summary: Retrieve all Ookla servers
      description: ''
      operationId: RetrieveallOoklaservers
      parameters:
      - name: country
        in: query
        description: Country name. Default to US only
        style: form
        explode: true
        schema:
          allOf:
          - $ref: '#/components/schemas/country'
          - description: Country name. Default to US only
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      responses:
        '200':
          description: The Ookla server info is in the response body
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OoklaServer'
                description: ''
        '401':
          description: Unauthorized Request
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Unauthorized'
                - description: Unauthorized Request due to missing/invalid apiKey
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      deprecated: false
  /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'
      operationId: RetrievebothSpeedTestandLatencyTestresultsasazipfile
      parameters:
      - name: X-Calix-ClientID
        in: header
        description: client-id
        required: true
        style: simple
        schema:
          type: string
          example: sample-client-id
      - name: X-Calix-AccessToken
        in: header
        description: access-token
        required: true
        style: simple
        schema:
          type: string
          example: sample-access-token
      - name: testId
        in: query
        description: The internal id string for an existing CAF II test instance
        required: true
        style: form
        explode: 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"`
              content:
                text/plain:
                  schema:
                    type: string
                    description: the value is `attachment; filename="name.zip"`
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '400':
          description: Bad Request
          headers: {}
          content:
            application/zip:
              schema: {}
        '500':
          description: Unexpected Internal Server Error
          headers: {}
          content:
            application/zip:
              schema: {}
      deprecated: false
components:
  schemas:
    pcalloutcome:
      title: pcalloutcome
      required:
      - SubscriberId
      - DeviceId
      - CallType
      - Status
      - RootCause
      - SubRootCause
      - Notes
      type: object
      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
      description: Call outcome data
    HotspotAccessLog:
      title: HotspotAccessLog
      type: object
      properties:
        date:
          type: string
          description: The date of the access log.
          example: '20221018'
        gatewayMACAddress:
          type: string
          description: The MAC address of the gateway.
          example: b8:94:70:29:9b:ec
        eventType:
          type: string
          description: The type of access event. Currently, supported types are `"connect"`, `"disconnect"`, and `"auth_reject"`.
          example: connect
        reasonCode:
          type: string
          description: The reason code from RADIUS server for `"disconnect"` and `"auth_reject"` event.
          example: '3'
        clientInfoVersion:
          type: string
          description: The client info version.
          example: '1'
        serialNumber:
          type: string
          description: The serial number, aka FSAN.
          example: CXNK00FF9BB7
        classOfService:
          type: string
          description: The CoS of the hotspot client.
          example: '15'
        communityName:
          type: string
          description: The community name.
          example: temp
        timestamp:
          type: string
          description: The timestamp of the access event/log.
          example: '1666123521562'
        subscriberId:
          type: string
          description: The subscriber ID.
          example: 6e4f5013-993a-4590-aab7-7afbdee5c215
        radioFrequencyBand:
          type: string
          description: The radio frequency band that the client uses to access the hotspot.
          example: '5'
        clientName:
          type: string
          description: The client name.
          example: iPhone
        clientType:
          type: string
          description: The client type.
          example: Smart Phone
        clientOS:
          type: string
          description: The client OS.
          example: iOS
        clientMACAddress:
          type: string
          description: The client MAC address.
          example: cc:08:8d:65:e8:71
        clientIPAddress:
          type: string
          description: The client IP address.
          example: 172.29.11.149
        clientModel:
          type: string
          description: The client model.
          example: iPhone
        clientVendor:
          type: string
          description: The client vendor.
          example: Apple
    BadRequest:
      title: BadRequest
      type: object
      properties:
        error:
          type: string
          example: Bad Request
    Unauthorized:
      title: Unauthorized
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error'
      description: Unauthorized Request due to missing/invalid apiKey
    OoklaServer:
      title: 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
          format: int32
        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:
      title: CafIITestCreateRequest
      required:
      - name
      - timezone
      - startDate
      - numberOfDays
      - devices
      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:
          allOf:
          - $ref: '#/components/schemas/Timezone'
          - description: ID String of the timezone used for the test. Must be one of the following timezone IDs.
            example: America/Chicago
        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
          format: int32
        serviceTierUploadSpeed:
          minimum: 1
          type: integer
          description: Service Tier Upload Speed in kbps
          format: int32
        speedThreshold:
          maximum: 100
          minimum: 1
          type: integer
          description: Speed test threshold %. Default to 80%.
          format: int32
        latencyThreshold:
          minimum: 1
          type: integer
          description: Latency test threshold in
          format: int32
          default: 100
        downloadUrl:
          type: string
          description: TR143 Download URL
        uploadUrl:
          type: string
          description: TR143 Upload URL
        uploadFileSize:
          minimum: 1
          type: integer
          description: TR143 Upload File Size
          format: int32
        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
          format: int32
        startHour:
          maximum: 23
          minimum: 0
          type: integer
          description: Start Hour of the Test. Default to 18 (e.g. 6PM)
          format: int32
        numberOfHours:
          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.
          format: int32
          default: 6
        devices:
          maxItems: 100
          minItems: 1
          type: array
          items:
            type: string
          description: ''
          example:
          - CXNK00112233
          - CXNK004E6DEF
      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:
      title: CafIITest
      allOf:
      - $ref: '#/components/schemas/CafIITestCreateRequest'
      - type: object
        properties:
          _id:
            type: string
            description: _id string
          status:
            allOf:
            - $ref: '#/components/schemas/Status'
            - description: Status of the test
      description: A CAF II Test Instance
    InvalidRequest:
      title: InvalidRequest
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error1'
      description: The error to be returned for illegal/invalid test server POST/PUT requests
    Created:
      title: 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:
      title: NameConflict
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error2'
    TestReadOnlyAfterStarted:
      title: TestReadOnlyAfterStarted
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error3'
    SuspendTestError:
      title: SuspendTestError
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error4'
    ResumeTestError:
      title: ResumeTestError
      type: object
      properties:
        error:
          $ref: '#/components/schemas/Error5'
    InternalServerError:
      title: InternalServerError
      type: object
      properties:
        error:
          type: string
          example: Unexpected Internal Server Error
    NotFoundError:
      title: NotFoundError
      type: object
      properties:
        error:
          type: string
          example: No test found by the given id string
    ApplicationService:
      title: ApplicationService
      type: object
      properties:
        appName:
          $ref: '#/components/schemas/AppName'
        subscribe:
          type: boolean
      description: Service state setting
    ServiceDefinition:
      title: 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.


            This code uniquely identifies a service tier or offering. It is used in Calix Marketing Cloud to compute revenue based on a lookup table.

            It can also be used in Calix Support Cloud to provide downstream and upstream speed values on a per-service basis.
          example: 7030Z759
        type:
          allOf:
          - $ref: '#/components/schemas/Type'
          - description: Type of service tier or offering.
        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.
          format: int32
          example: 100
        upSpeed:
          type: integer
          description: Upstream Speed for data services, in Mbps.
          format: int32
          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:

            - Cable

            - Fiber

            - Wireless


            This 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:

            - Residential

            - Business


            This 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.


        Each Service Definition is uniquely identified by its usoc, or "Universal Service Ordering Code".
    VoiceInterface:
      title: 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:
      title: Service
      type: object
      properties:
        usoc:
          type: string
          description: Uniform Service Order Code.
          example: 7030Z759
        type:
          allOf:
          - $ref: '#/components/schemas/Type'
          - description: Type of service tier or offering.
        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.
          format: int32
          example: 100
        upSpeed:
          type: integer
          description: Upstream Speed for data services, in Mbps.
          format: int32
          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:

            - Cable

            - Fiber

            - Wireless


            This 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:

            - Residential

            - Business


            This 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.


            When this flag is not set explicitly:
              - If any of service activation parameters is defined, eg. VLAN or voice service parameters, this service
                instance is considered as for service activation purposes automatically
              - If none of service activation parameters is defined, this service instance is considered as for billing
                purposes only
        sVlan:
          type: integer
          description: The vlan to be used for activating service. When set to 0, it is considered as priority tagged
          format: int32
        cVlan:
          type: integer
          description: The c-vlan to be used for activating service
          format: int32
        ceVlan:
          type: integer
          description: Vlan tag between RG and ONT
          format: int32
        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:
          allOf:
          - $ref: '#/components/schemas/VoiceServiceType'
          - description: Chose voice service type between SIP,H248,H.248,MGCP or 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
          items:
            $ref: '#/components/schemas/VoiceInterface'
          description: Interface specific voice service details. This is a mandatory parameter for voice service
        staticHostMode:
          allOf:
          - $ref: '#/components/schemas/StaticHostMode'
          - description: L2 or L3 mode. Applicable to data and video services only
        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
          items:
            $ref: '#/components/schemas/MemberPort'
          description: List of ont-ethernet ports to be added to FB
      description: >-
        An actual service instance for a subscriber location.


        Each 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.


        Meanwhile, a service instance can override any of those common service definition attributes (except for the *"fee"* attribute).
    ServiceStatusRetrievalResponse:
      title: ServiceStatusRetrievalResponse
      type: object
      properties:
        subscriberInformation:
          allOf:
          - $ref: '#/components/schemas/SubscriberInformation'
          - description: Subscriber with the activate service
      description: Service status with activate instance
    SubscriberInformation:
      title: 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'
          description: ''
        videoService:
          type: array
          items:
            $ref: '#/components/schemas/ServiceStatusItem'
          description: ''
        voiceService:
          type: array
          items:
            $ref: '#/components/schemas/ServiceStatusItem'
          description: ''
      description: Subscriber with the activate service
    ServiceStatusItem:
      title: ServiceStatusItem
      type: object
      properties:
        status:
          allOf:
          - $ref: '#/components/schemas/Status1'
          - description: The status description of the service
            example: SUB_ASSOC_WAITING_FOR_CPE
        usoc:
          type: string
          description: Uniform Service Order Code.
          example: 7030Z759
        type:
          allOf:
          - $ref: '#/components/schemas/Type'
          - description: Type of service tier or offering.
        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.
          format: int32
          example: 100
        upSpeed:
          type: integer
          description: Upstream Speed for data services, in Mbps.
          format: int32
          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:

            - Cable

            - Fiber

            - Wireless


            This 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:

            - Residential

            - Business


            This 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.


            When this flag is not set explicitly:
              - If any of service activation parameters is defined, eg. VLAN or voice service parameters, this service
                instance is considered as for service activation purposes automatically
              - If none of service activation parameters is defined, this service instance is considered as for billing
                purposes only
        sVlan:
          type: integer
          description: The vlan to be used for activating service. When set to 0, it is considered as priority tagged
          format: int32
        cVlan:
          type: integer
          description: The c-vlan to be used for activating service
          format: int32
        ceVlan:
          type: integer
          description: Vlan tag between RG and ONT
          format: int32
        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:
          allOf:
          - $ref: '#/components/schemas/VoiceServiceType'
          - description: Chose voice service type between SIP,H248,H.248,MGCP or 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
          items:
            $ref: '#/components/schemas/VoiceInterface'
          description: Interface specific voice service details. This is a mandatory parameter for voice service
        staticHostMode:
          allOf:
          - $ref: '#/components/schemas/StaticHostMode'
          - description: L2 or L3 mode. Applicable to data and video services only
        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
          items:
            $ref: '#/components/schemas/MemberPort'
          description: List of ont-ethernet ports to be added to FB
        _id:
          type: string
          description: The auto-generated id of the subscriber record
          example: 8de4a9e2-430c-474c-865d-14fd8affcf14
    ServiceRetrievalResponse:
      title: ServiceRetrievalResponse
      type: object
      properties:
        _id:
          type: string
          description: The auto-generated id of the subscriber record
          example: 8de4a9e2-430c-474c-865d-14fd8affcf14
        usoc:
          type: string
          description: Uniform Service Order Code.
          example: 7030Z759
        type:
          allOf:
          - $ref: '#/components/schemas/Type'
          - description: Type of service tier or offering.
        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.
          format: int32
          example: 100
        upSpeed:
          type: integer
          description: Upstream Speed for data services, in Mbps.
          format: int32
          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:

            - Cable

            - Fiber

            - Wireless


            This 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:

            - Residential

            - Business


            This 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.


            When this flag is not set explicitly:
              - If any of service activation parameters is defined, eg. VLAN or voice service parameters, this service
                instance is considered as for service activation purposes automatically
              - If none of service activation parameters is defined, this service instance is considered as for billing
                purposes only
        sVlan:
          type: integer
          description: The vlan to be used for activating service. When set to 0, it is considered as priority tagged
          format: int32
        cVlan:
          type: integer
          description: The c-vlan to be used for activating service
          format: int32
        ceVlan:
          type: integer
          description: Vlan tag between RG and ONT
          format: int32
        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:
          allOf:
          - $ref: '#/components/schemas/VoiceServiceType'
          - description: Chose voice service type between SIP,H248,H.248,MGCP or 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
          items:
            $ref: '#/components/schemas/VoiceInterface'
          description: Interface specific voice service details. This is a mandatory parameter for voice service
        staticHostMode:
          allOf:
          - $ref: '#/components/schemas/StaticHostMode'
          - description: L2 or L3 mode. Applicable to data and video services only
        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
          items:
            $ref: '#/components/schemas/MemberPort'
          description: List of ont-ethernet ports to be added to FB
    DeviceData:
      title: 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:
      title: SubscriberInfo
      type: object
      properties:
        _id:
          type: string
          description: The auto-generated id of the subscriber record
          example: e41bea4f-8d76-47e8-a2dd-22aa8f3afdb0
        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`.'
          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`.'
          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:
          allOf:
          - $ref: '#/components/schemas/BillingStatus'
          - description: >-
              Billing status of the subscriber. Possible values:
                * `Active` - Subscriber is an active user and current on bill payments. Subscribed broadband service is enabled and functional.
                * `Disconnected` - Subscriber has been disconnected and no service is available.
                * `Suspended` - This status represents a subscriber that has their services suspended due to lack of payment.
                * `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.

              **Note**: These flags are for tracking purposes only and each of the above actions has to be taken separately in the relevant system.
        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.
          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.
          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:
          allOf:
          - $ref: '#/components/schemas/CustomerType'
          - description: Indicates if this is a Business or Residential subscriber.
        attainableRate:
          type: integer
          description: Attainable Data Rate. For example the max DS train rate for a DSL line.
          format: int32
        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
        services:
          type: array
          items:
            $ref: '#/components/schemas/ServiceRetrievalResponse'
          description: List of service(s) that are deployed at this subscriber location
        devices:
          type: array
          items:
            type: string
          description: >-
            List of device(s) that are associated with this subscriber location.


            Each device id string that identifies a CPE device. Could be an SN/FSAN, a MAC address, or a Calix Registration ID

            - SN/FSAN device id strings, for example 'CXNK00112233', will be converted to all upper case when storing in the DB

            - 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

            - Calix Registration ID strings are alphanumberic strings with 1 to 10 chars/digits, and will be stored in the DB as is


            In 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
    SubscriberInfoFull:
      title: SubscriberInfoFull
      type: object
      properties:
        _id:
          type: string
          description: The auto-generated id of the subscriber record
          example: e41bea4f-8d76-47e8-a2dd-22aa8f3afdb0
        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`.'
          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`.'
          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:
          allOf:
          - $ref: '#/components/schemas/BillingStatus'
          - description: >-
              Billing status of the subscriber. Possible values:
                * `Active` - Subscriber is an active user and current on bill payments. Subscribed broadband service is enabled and functional.
                * `Disconnected` - Subscriber has been disconnected and no service is available.
                * `Suspended` - This status represents a subscriber that has their services suspended due to lack of payment.
                * `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.

              **Note**: These flags are for tracking purposes only and each of the above actions has to be taken separately in the relevant system.
        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.
          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.
          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:
          allOf:
          - $ref: '#/components/schemas/CustomerType'
          - description: Indicates if this is a Business or Residential subscriber.
        attainableRate:
          type: integer
          description: Attainable Data Rate. For example the max DS train rate for a DSL line.
          format: int32
        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
        services:
          type: array
          items:
            $ref: '#/components/schemas/ServiceRetrievalResponse'
          description: List of service(s) that are deployed at this subscriber location
        devices:
          type: array
          items:
            type: string
          description: >-
            List of device(s) that are associated with this subscriber location.


            Each device id string that identifies a CPE device. Could be an SN/FSAN, a MAC address, or a Calix Registration ID

            - SN/FSAN device id strings, for example 'CXNK00112233', will be converted to all upper case when storing in the DB

            - 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

            - Calix Registration ID strings are alphanumberic strings with 1 to 10 chars/digits, and will be stored in the DB as is


            In 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
        deviceData:
          type: array
          items:
            $ref: '#/components/schemas/DeviceData'
          description: The details of each associated device if `includeDeviceData==true`.
    SubscriberInfoRequest:
      title: 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`.'
          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`.'
          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:
          allOf:
          - $ref: '#/components/schemas/BillingStatus'
          - description: >-
              Billing status of the subscriber. Possible values:
                * `Active` - Subscriber is an active user and current on bill payments. Subscribed broadband service is enabled and functional.
                * `Disconnected` - Subscriber has been disconnected and no service is available.
                * `Suspended` - This status represents a subscriber that has their services suspended due to lack of payment.
                * `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.

              **Note**: These flags are for tracking purposes only and each of the above actions has to be taken separately in the relevant system.
        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.
          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.
          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:
          allOf:
          - $ref: '#/components/schemas/CustomerType'
          - description: Indicates if this is a Business or Residential subscriber.
        attainableRate:
          type: integer
          description: Attainable Data Rate. For example the max DS train rate for a DSL line.
          format: int32
        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:
      title: SubscriberBulkQueryResponse
      type: object
      properties:
        metadata:
          allOf:
          - $ref: '#/components/schemas/Metadata'
          - 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'
        records:
          type: array
          items:
            $ref: '#/components/schemas/SubscriberInfo'
          description: ''
      description: Paginated Response for Subscriber Queries
    Id:
      title: 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:
      title: Unauthorized1
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 401
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage'
      description: Unauthorized Request due to missing/invalid apiKey
    InvalidRequest1:
      title: InvalidRequest1
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 400
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage1'
      description: The error to be returned for illegal/invalid test server POST/PUT requests
    InvalidServiceRequest:
      title: InvalidServiceRequest
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 400
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage2'
      description: Invalid Service POST/PUT requests
    SubscriberLocationIdConflict:
      title: SubscriberLocationIdConflict
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 409
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage3'
    ServiceDefinitionConflict:
      title: ServiceDefinitionConflict
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 409
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage4'
    DeviceConflict:
      title: DeviceConflict
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 409
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage5'
    InternalServerError1:
      title: InternalServerError1
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 500
        errorMessage:
          type: string
          example: Internal Server Error
    SubscriberNotFound:
      title: SubscriberNotFound
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 404
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage6'
    SubscriberOrAppServiceNotFound:
      title: SubscriberOrAppServiceNotFound
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 404
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage7'
    ServiceNotFound:
      title: ServiceNotFound
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 404
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage8'
      description: No service found due to either invalid subscriber location id or service instance id
    ServiceDefinitionNotFound:
      title: ServiceDefinitionNotFound
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode'
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage9'
    Metadata:
      title: 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.
          format: int32
          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*
          format: int32
          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'
    FccIdentifier:
      title: 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.
          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.
          example: A-800098678
      description: This object defines the payload of FCC identifier creation/update requests
    FccSubscriberIdConflict:
      title: FccSubscriberIdConflict
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 409
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage10'
    FccIdentifierNotFound:
      title: FccIdentifierNotFound
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 404
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage11'
    ArloServiceGet:
      title: ArloServiceGet
      type: object
      properties:
        email:
          type: string
        planCode:
          allOf:
          - $ref: '#/components/schemas/PlanCode'
          - description: The plan code of Arlo Service, e.g. `PARTNER_REGULAR`
        2kCameras:
          type: integer
          description: Max Number of 2K Cameras. -1 will be returned when plan is not `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.
          format: int32
      description: Arlo Service Result.
      example:
        email: john.doe@example.com
        2kCameras: 4
        planCode: PARTNER_REGULAR
    ArloServicePost:
      title: ArloServicePost
      type: object
      properties:
        email:
          type: string
        planCode:
          allOf:
          - $ref: '#/components/schemas/PlanCode'
          - description: The plan code of Arlo Service, e.g. `PARTNER_REGULAR`
        2kCameras:
          type: integer
          description: Max Number of 2K Cameras. This is only required when plan is `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.
          format: int32
      description: Arlo Service parameters during creation.
      example:
        email: john.doe@example.com
        2kCameras: 4
        planCode: PARTNER_REGULAR
    ArloServicePut:
      title: ArloServicePut
      type: object
      properties:
        planCode:
          allOf:
          - $ref: '#/components/schemas/PlanCode2'
          - description: The plan code of Arlo Smart, e.g. `PARTNER_REGULAR`
        2kCameras:
          type: integer
          description: Max Number of 2K Cameras. This is only required when plan is `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.
          format: int32
      description: Arlo Service parameters during update.
      example:
        2kCameras: 4
        planCode: PARTNER_REGULAR
    NoArloFoundError:
      title: NoArloFoundError
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode'
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage12'
    ArloServicePostErrorBadRequest:
      title: ArloServicePostErrorBadRequest
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode2'
        errorMessage:
          type: string
          example: Email is in use by another Arlo Account
      description: Bad Arlo Service post request
    ArloServicePostInternalError:
      title: ArloServicePostInternalError
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode3'
        errorMessage:
          type: string
          example: Failed to create Arlo Service because of Arlo Service error.
      description: Failed to create Arlo Service because of Arlo Service error.
    ArloServicePutErrorBadRequest:
      title: ArloServicePutErrorBadRequest
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode2'
        errorMessage:
          type: string
          example: Email is in used by another Arlo Account
      description: Bad Arlo Service Put request
    ArloServicePutInternalError:
      title: ArloServicePutInternalError
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode3'
        errorMessage:
          type: string
          example: Failed to update Arlo Service because of Arlo Service error.
      description: Failed to update Arlo Service because of Arlo Service error.
    ServifyCareGet:
      title: ServifyCareGet
      type: object
      properties:
        email:
          type: string
          description: Servify account email
          example: test@test.com
        planCode:
          allOf:
          - $ref: '#/components/schemas/PlanCode3'
          - description: plan code
            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:
          $ref: '#/components/schemas/PlanChange'
        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:
      title: 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:
          allOf:
          - $ref: '#/components/schemas/PlanCode4'
          - description: Plan code when creating a ServifyCare contract
            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:
      title: NoServifyFoundError
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode'
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage13'
    ServifyContractPostErrorBadRequest:
      title: ServifyContractPostErrorBadRequest
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode2'
        errorMessage:
          type: string
          example: Email is in use by another Servify Account
      description: Bad Servify Contract Post request
    ServifyContractPostInternalError:
      title: ServifyContractPostInternalError
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode3'
        errorMessage:
          type: string
          example: Failed to create Servify Contract because of Servify error.
      description: Failed to create Servify Contract because of Servify error.
    SmartTownWiFiSubMembership:
      title: SmartTownWiFiSubMembership
      type: object
      properties:
        enable:
          type: boolean
          example: true
        communities:
          type: array
          items:
            $ref: '#/components/schemas/SmartTownWiFiCommunity'
          description: SmartTown Wi-Fi Community/Microsite
      description: Subscriber Community membership
    NoSmartTownWiFiFoundError:
      title: NoSmartTownWiFiFoundError
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode'
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage14'
    SmartTownWiFiInternalError:
      title: SmartTownWiFiInternalError
      type: object
      properties:
        errorCode:
          $ref: '#/components/schemas/ErrorCode3'
        errorMessage:
          type: string
          example: Failed to create SmartTown Wi-Fi Subscriber Membership.
      description: Cannot create/update Subscriber Membership
    SSID:
      title: 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:
          $ref: '#/components/schemas/FreqBand'
        BeaconType:
          $ref: '#/components/schemas/BeaconType'
        BasicEncryptionModes:
          type: string
        BasicAuthenticationMode:
          type: string
        WPAEncryptionModes:
          type: string
        IEEE11iEncryptionModes:
          type: string
        IEEE11iAuthenticationMode:
          type: string
        KeyPassphrase:
          type: string
        PRConfig:
          allOf:
          - $ref: '#/components/schemas/SSIDPRConfig'
          - description: SSID configuration provision record
            example:
              id: SSID1
              Enable: true
              SSID: 2.4G Primary
              SSIDAdvertisementEnabled: true
              BeaconType: WPAand11i
              BasicEncryptionModes: None
              BasicAuthenticationMode: None
              WPAEncryptionModes: AESEncryption
              IEEE11iEncryptionModes: AESEncryption
              IEEE11iAuthenticationMode: PSKAuthentication
              KeyPassphrase: ATCadb#?!?_
        isInL2Bridge:
          type: boolean
      example:
        id: SSID1
        Enable: true
        SSID: 2.4G Primary
        SSIDAdvertisementEnabled: true
        BeaconType: WPAand11i
        BasicEncryptionModes: None
        BasicAuthenticationMode: None
        WPAEncryptionModes: AESEncryption
        IEEE11iEncryptionModes: AESEncryption
        IEEE11iAuthenticationMode: PSKAuthentication
        KeyPassphrase: ATCadb#?!?_
        freqBand: 2.4GHz
        PRConfig:
          Enable: true
          SSID: 2.4G Primary
          SSIDAdvertisementEnabled: true
          BeaconType: WPAand11i
          BasicEncryptionModes: None
          BasicAuthenticationMode: None
          WPAEncryptionModes: AESEncryption
          IEEE11iEncryptionModes: AESEncryption
          IEEE11iAuthenticationMode: PSKAuthentication
          KeyPassphrase: ATCadb#?!?_
        isInL2Bridge: false
    SSIDPRConfig:
      title: SSIDPRConfig
      type: object
      properties:
        Enable:
          type: boolean
        SSID:
          type: string
        SSIDAdvertisementEnabled:
          type: boolean
        BeaconType:
          $ref: '#/components/schemas/BeaconType'
        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:
      title: 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:
          $ref: '#/components/schemas/BeaconType'
        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:
      title: SSIDPutResponse
      type: object
      properties:
        result:
          type: string
          example: OK
    SecondaryNetworkAvailability:
      title: SecondaryNetworkAvailability
      type: object
      properties:
        maxUnifiedAvailable:
          type: integer
          format: int32
        maxBand24Available:
          type: integer
          format: int32
        maxBand5Available:
          type: integer
          format: int32
        maxBand6Available:
          type: integer
          format: int32
        smartQosAllowed:
          type: boolean
    SecondaryNetwork:
      title: SecondaryNetwork
      type: object
      properties:
        eventId:
          type: string
        eventName:
          type: string
        isIndefinite:
          type: boolean
        duration:
          $ref: '#/components/schemas/Duration'
        ssid:
          type: string
        password:
          type: string
        encryptionType:
          type: integer
          format: int32
        type:
          type: integer
          format: int32
        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:
      title: SecondaryNetworkPostRequest
      type: object
      properties:
        ssid:
          type: string
        password:
          type: string
        encryptionType:
          type: integer
          format: int32
        type:
          type: integer
          format: int32
        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:
          allOf:
          - $ref: '#/components/schemas/Duration1'
          - 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:
      title: SecondaryNetworkPostResponse
      type: object
      properties:
        ssid:
          type: string
        eventId:
          type: string
        encryptionType:
          type: integer
          format: int32
        type:
          type: integer
          format: int32
        isolated:
          type: boolean
        smartQos:
          type: boolean
        eventName:
          type: string
        isIndefinite:
          type: boolean
        duration:
          $ref: '#/components/schemas/Duration'
      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:
      title: SecondaryNetworkPutRequest
      type: object
      properties:
        eventId:
          type: string
        ssid:
          type: string
        password:
          type: string
        encryptionType:
          type: integer
          format: int32
        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:
          allOf:
          - $ref: '#/components/schemas/Duration1'
          - 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:
      title: SecondaryNetworkPutResponse
      type: object
      properties:
        eventId:
          type: string
        ssid:
          type: string
        encryptionType:
          type: integer
          format: int32
        isolated:
          type: boolean
        smartQos:
          type: boolean
        band24Admin:
          type: boolean
        band5Admin:
          type: boolean
        band6Admin:
          type: boolean
        eventName:
          type: string
        isIndefinite:
          type: boolean
        duration:
          $ref: '#/components/schemas/Duration'
      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:
      title: E2EServiceDefinition
      required:
      - name
      type: object
      properties:
        name:
          type: string
          description: The name of the service definition.
        tierName:
          type: string
          description: The name of the bandwidth tier to be used.
        serviceTemplateName:
          type: string
          description: The name of the service template to be used.
        tagAction:
          type: string
          description: tag action
        napNodeId:
          type: string
          description: The id of the nap node under which a service definition will be implemented.
        ouiMatchListName:
          type: string
          description: Name of the oui list for oui list matching in full-bridge service
        description:
          type: string
          description: Description of service definition
        multicastVlanName:
          type: string
          description: The name of the multicast VLAN Profile for SD.
        multicastRangeName:
          type: string
          description: The name of the multicast Range Filter Profile for SD.
      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.
    ArloServiceGetDeprecated:
      title: ArloServiceGetDeprecated
      type: object
      properties:
        email:
          type: string
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan'
          - description: The plan code of Arlo Service, e.g. `PARTNER_REGULAR`
        2kCameras:
          type: integer
          description: Max Number of 2K Cameras. -1 will be returned when plan is not `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.
          format: int32
      description: Arlo Service Result.
      example:
        email: john.doe@example.com
        2kCameras: 4
        plan: PARTNER_REGULAR
    ArloServicePostDeprecated:
      title: ArloServicePostDeprecated
      type: object
      properties:
        email:
          type: string
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan'
          - description: The plan code of Arlo Service, e.g. `PARTNER_REGULAR`
        2kCameras:
          type: integer
          description: Max Number of 2K Cameras. This is only required when plan is `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.
          format: int32
      description: Arlo Service parameters during creation.
      example:
        email: john.doe@example.com
        2kCameras: 4
        plan: PARTNER_REGULAR
    ArloServicePutDeprecated:
      title: ArloServicePutDeprecated
      type: object
      properties:
        plan:
          allOf:
          - $ref: '#/components/schemas/Plan2'
          - description: The plan code of Arlo Smart, e.g. `PARTNER_REGULAR`
        2kCameras:
          type: integer
          description: Max Number of 2K Cameras. This is only required when plan is `PARTNER_REGULAR` or `PARTNER_REGULAR_CANADA`.
          format: int32
      description: Arlo Service parameters during update.
      example:
        2kCameras: 4
        plan: PARTNER_REGULAR
    ServifyCareGetDeprecated:
      title: ServifyCareGetDeprecated
      type: object
      properties:
        email:
          type: string
          description: Servify account email
          example: test@test.com
        planCode:
          allOf:
          - $ref: '#/components/schemas/PlanCode3'
          - description: plan code
            example: SERVIFYCAREBRONZE
        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:
          $ref: '#/components/schemas/PlanChange'
        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:
      title: 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:
          allOf:
          - $ref: '#/components/schemas/PlanCode4'
          - description: Plan code when creating a ServifyCare contract
            example: SERVIFYCAREBRONZE
        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:
      title: RequiredParamsMissing
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 400
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage15'
    NoSystemFoundError:
      title: NoSystemFoundError
      type: object
      properties:
        errorCode:
          type: integer
          format: int32
          example: 404
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage16'
    E2EUnauthorizedError:
      title: E2EUnauthorizedError
      type: object
      properties:
        errorMessage:
          type: string
          description: Message indicating the error encountered
        errorCode:
          type: integer
          description: HTTP status code
          format: int32
      description: Unauthorized Request due to missing/invalid apiKey
    E2EError:
      title: E2EError
      type: object
      properties:
        errorMessage:
          type: string
          description: Message indicating the error encountered
        errorCode:
          type: integer
          description: HTTP status code
          format: int32
    ErrorResponse:
      title: ErrorResponse
      type: object
      properties:
        error_message:
          type: string
      description: Error Response
    UsageRecord:
      title: 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
    AccountAddResp:
      title: AccountAddResp
      type: object
      properties:
        userId:
          type: string
          description: Unique account identifier
          example: 7388f43a-4de0-4310-adaa-08a66b7e366b
        firstName:
          type: string
          description: First name of customer
          example: John
        lastName:
          type: string
          description: Last name of customer
          example: Doe
        email:
          type: string
          description: Email address of customer
          example: john.doe@calix.com
    AccountLoginResp:
      title: AccountLoginResp
      type: object
      properties:
        token:
          type: string
          description: Token for Authorize header
          example: Calix issued token
        email:
          type: string
          description: Email address of customer
          example: john.doe@calix.com
        userId:
          type: string
          description: Unique account identifier
          example: 7388f43a-4de0-4310-adaa-08a66b7e366b
    AppName:
      title: AppName
      enum:
      - ProtectIQ
      - ExperienceIQ
      type: string
    appServiceName:
      title: appServiceName
      enum:
      - ProtectIQ
      - ExperienceIQ
      type: string
    BadRequestError1:
      title: BadRequestError1
      type: object
      properties:
        error:
          type: string
          example: INVALID_DATE
        message:
          type: string
          example: Invalidate date string '202112'
    BadRequestError111:
      title: BadRequestError111
      type: object
      properties:
        errorType:
          type: string
          example: '400'
        errorDesc:
          type: string
          example: Invalid parameter
    BeaconType:
      title: BeaconType
      enum:
      - Basic
      - 11i
      - WPAand11i
      type: string
    BillingSubscribersAppServicesRequest:
      title: BillingSubscribersAppServicesRequest
      required:
      - subscribe
      type: object
      properties:
        subscribe:
          type: boolean
    BillingSupportOperatorSecondarynetworkRequest:
      title: BillingSupportOperatorSecondarynetworkRequest
      type: object
      properties:
        eventId:
          type: string
    BillingStatus:
      title: BillingStatus
      enum:
      - Active
      - Disconnected
      - Suspended
      - Deactivated
      type: string
      description: >-
        Billing status of the subscriber. Possible values:
          * `Active` - Subscriber is an active user and current on bill payments. Subscribed broadband service is enabled and functional.
          * `Disconnected` - Subscriber has been disconnected and no service is available.
          * `Suspended` - This status represents a subscriber that has their services suspended due to lack of payment.
          * `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.

        **Note**: These flags are for tracking purposes only and each of the above actions has to be taken separately in the relevant system.
    billingStatus1:
      title: billingStatus1
      enum:
      - Active
      - Disconnected
      - Suspended
      - Deactivated
      type: string
    ConflictAccountResp1:
      title: ConflictAccountResp1
      type: object
      properties:
        errorType:
          type: string
          example: '409'
        errorDesc:
          type: string
          example: account is already registered
    country:
      title: country
      enum:
      - US
      - Canada
      - All
      type: string
    CustomerType:
      title: CustomerType
      enum:
      - Residential
      - Business
      type: string
      description: Indicates if this is a Business or Residential subscriber.
    Duration:
      title: Duration
      type: object
      properties:
        startTime:
          type: integer
          format: int32
        endTime:
          type: integer
          format: int32
    Duration1:
      title: Duration1
      type: object
      properties:
        startTime:
          type: integer
          format: int32
        endTime:
          type: integer
          format: int32
      description: only for guest type
    Error:
      title: Error
      enum:
      - Unauthorized
      type: string
    Error1:
      title: Error1
      enum:
      - Missing mandatory parameter(s)
      - Invalid Parameter Name(s)
      - Invalid Parameter Value(s)
      type: string
    Error2:
      title: Error2
      enum:
      - Cannot create new test since there is already an existing test for the same name
      type: string
    Error3:
      title: Error3
      enum:
      - Tests are read only once started
      type: string
    Error4:
      title: Error4
      enum:
      - Test is already suspended
      - Completed Test cannot be suspended
      type: string
    Error5:
      title: Error5
      enum:
      - Test is not currently suspended
      - Completed Test cannot be resumed
      type: string
    ErrorCode:
      title: ErrorCode
      enum:
      - 404
      type: integer
    ErrorCode2:
      title: ErrorCode2
      enum:
      - 400
      type: integer
    ErrorCode3:
      title: ErrorCode3
      enum:
      - 500
      type: integer
    ErrorMessage:
      title: ErrorMessage
      enum:
      - Unauthorized
      type: string
    ErrorMessage1:
      title: ErrorMessage1
      enum:
      - Missing mandatory parameter(s)
      - Invalid Parameter Name(s)
      - Invalid Parameter Value(s)
      - Subscriber ID must not be empty
      type: string
    ErrorMessage2:
      title: ErrorMessage2
      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
      type: string
    ErrorMessage3:
      title: ErrorMessage3
      enum:
      - Cannot create new subscriber due to subscriberLocationId Conflict
      type: string
    ErrorMessage4:
      title: ErrorMessage4
      enum:
      - Existing Service Definition Found with same usoc and techType and customerType
      type: string
    ErrorMessage5:
      title: ErrorMessage5
      enum:
      - Cannot associate device to subscriber location since this device is associated with another subscriber location
      type: string
    ErrorMessage6:
      title: ErrorMessage6
      enum:
      - No Subscriber Found by the Given Subscriber Location Id
      type: string
    ErrorMessage7:
      title: ErrorMessage7
      enum:
      - No Subscriber Found by the Given Subscriber Location Id
      - No App Service Found by the Given Subscriber Location Id and App Service Name
      type: string
    ErrorMessage8:
      title: ErrorMessage8
      enum:
      - No Subscriber Found by the Given Subscriber Location Id
      - No Service Instance Found by the Given Service Id
      type: string
    ErrorMessage9:
      title: ErrorMessage9
      enum:
      - No Service Definition Found by the Given Service Definition Id
      type: string
    ErrorMessage10:
      title: ErrorMessage10
      enum:
      - Found An Existing FCC Identifier with Same Subscriber Id
      type: string
    ErrorMessage11:
      title: ErrorMessage11
      enum:
      - FCC Identifier Not Found
      type: string
    ErrorMessage12:
      title: ErrorMessage12
      enum:
      - No Arlo Service Found
      type: string
    ErrorMessage13:
      title: ErrorMessage13
      enum:
      - No ServifyCare Service Found
      type: string
    ErrorMessage14:
      title: ErrorMessage14
      enum:
      - No SmartTown Wi-Fi Subscriber Service Found
      type: string
    ErrorMessage15:
      title: ErrorMessage15
      enum:
      - param serialNumber is required
      type: string
    ErrorMessage16:
      title: ErrorMessage16
      enum:
      - No system found with the given query filter!
      type: string
    FreqBand:
      title: FreqBand
      enum:
      - 5GHz
      - 2.4GHz
      type: string
    InternalServerError21:
      title: InternalServerError21
      type: object
      properties:
        error:
          type: string
          example: CONNECTION_FAILED
        message:
          type: string
          example: Failed to connect data source.
    InternalServerError111:
      title: InternalServerError111
      type: object
      properties:
        errorType:
          type: string
          example: '500'
        errorDesc:
          type: string
          example: Internal Server Error
    InvalidTokenError1:
      title: InvalidTokenError1
      type: object
      properties:
        errorType:
          type: string
          example: '498'
        errorDesc:
          type: string
          example: Invalid Token
    MapV1MobileAccountAddRequest:
      title: MapV1MobileAccountAddRequest
      type: object
      properties:
        firstName:
          type: string
          description: First name of subscriber
          example: John
        lastName:
          type: string
          description: Last name of subscriber
          example: Doe
        email:
          type: string
          description: Email address of subscriber
          example: john.doe@calix.com
        password:
          type: string
          description: Password of email address
          example: changeme
      description: Account Creation Request
    MapV2MobileAccountLoginRequest:
      title: MapV2MobileAccountLoginRequest
      type: object
      properties:
        email:
          type: string
          description: Email address of subscriber
          example: john.doe@calix.com
        password:
          type: string
          description: Password of email address
          example: changeme
      description: Partner Registration Request
    MemberPort:
      title: MemberPort
      enum:
      - g1
      - g2
      - g3
      - g4
      type: string
      description: ONT ETH port
    NotFoundError11:
      title: NotFoundError11
      type: object
      properties:
        errorType:
          type: string
          example: '404'
        errorDesc:
          type: string
          example: Not found
    Plan:
      title: Plan
      enum:
      - PARTNER_REGULAR
      - PARTNER_UNLIMITED
      - PARTNER_UNLIMITED_PLUS
      - PARTNER_REGULAR_CANADA
      - PARTNER_UNLIMITED_CANADA
      - PARTNER_UNLIMITED_PLUS_CANADA
      type: string
      description: The plan code of Arlo Service, e.g. `PARTNER_REGULAR`
    Plan2:
      title: Plan2
      enum:
      - PARTNER_REGULAR
      - PARTNER_UNLIMITED
      - PARTNER_UNLIMITED_PLUS
      - PARTNER_REGULAR_CANADA
      - PARTNER_UNLIMITED_CANADA
      - PARTNER_UNLIMITED_PLUS_CANADA
      type: string
      description: The plan code of Arlo Smart, e.g. `PARTNER_REGULAR`
    PlanChange:
      title: 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
    PlanCode:
      title: PlanCode
      enum:
      - PARTNER_REGULAR
      - PARTNER_UNLIMITED
      - PARTNER_UNLIMITED_PLUS
      - PARTNER_REGULAR_CANADA
      - PARTNER_UNLIMITED_CANADA
      - PARTNER_UNLIMITED_PLUS_CANADA
      type: string
      description: The plan code of Arlo Service, e.g. `PARTNER_REGULAR`
    PlanCode2:
      title: PlanCode2
      enum:
      - PARTNER_REGULAR
      - PARTNER_UNLIMITED
      - PARTNER_UNLIMITED_PLUS
      - PARTNER_REGULAR_CANADA
      - PARTNER_UNLIMITED_CANADA
      - PARTNER_UNLIMITED_PLUS_CANADA
      type: string
      description: The plan code of Arlo Smart, e.g. `PARTNER_REGULAR`
    PlanCode3:
      title: PlanCode3
      enum:
      - SERVIFYCAREBRONZE
      - SERVIFYCARESILVER
      - SERVIFYCAREGOLD
      - SERVIFYCAREPLATINUM
      type: string
      description: plan code
      example: SERVIFYCAREBRONZE
    PlanCode4:
      title: PlanCode4
      enum:
      - SERVIFYCAREBRONZE
      - SERVIFYCARESILVER
      - SERVIFYCAREGOLD
      - SERVIFYCAREPLATINUM
      type: string
      description: Plan code when creating a ServifyCare contract
      example: SERVIFYCAREBRONZE
    planCode7:
      title: planCode7
      enum:
      - SERVIFYCAREBRONZE
      - SERVIFYCARESILVER
      - SERVIFYCAREGOLD
      - SERVIFYCAREPLATINUM
      type: string
    serviceType:
      title: serviceType
      enum:
      - DATA
      - VOICE
      - VIDEO
      type: string
    SmartTownWiFiCommunity:
      title: SmartTownWiFiCommunity
      type: object
      properties:
        micrositeId:
          type: string
          example: 5ed11c29-efe0-45e5-a64a-8dc70d5285d2
    StaticHostMode:
      title: StaticHostMode
      enum:
      - L2
      - L3
      type: string
      description: L2 or L3 mode. Applicable to data and video services only
    Status:
      title: Status
      enum:
      - Scheduled
      - Suspended
      - In Progress
      - Completed
      type: string
      description: Status of the test
    Status1:
      title: Status1
      enum:
      - SUB_ASSOC_INIT
      - SUB_ASSOC_IN_PROGRESS
      - SUB_ASSOC_SUCCESS
      - DEPROVISONED
      - SUB_ASSOC_WAITING_FOR_CPE
      type: string
      description: The status description of the service
      example: SUB_ASSOC_WAITING_FOR_CPE
    Timezone:
      title: Timezone
      enum:
      - America/Los_Angeles
      - America/Denver
      - America/Chicago
      - America/New_York
      type: string
      description: ID String of the timezone used for the test. Must be one of the following timezone IDs.
      example: America/Chicago
    TokenRequiredError1:
      title: TokenRequiredError1
      type: object
      properties:
        errorType:
          type: string
          example: '499'
        errorDesc:
          type: string
          example: Token required
    Type:
      title: Type
      enum:
      - data
      - video
      - voice
      - other
      type: string
      description: Type of service tier or offering.
    VoiceServiceType:
      title: VoiceServiceType
      enum:
      - SIP
      - H248
      - H.248
      - MGCP
      - X_000631_TDMGW
      type: string
      description: Chose voice service type between SIP,H248,H.248,MGCP or X_000631_TDMGW
tags:
- name: Call Outcome
  description: API to retrieve extref data
- name: Reports
  description: Specifically crafted Report APIs
- name: Access_Logs
  description: ''
- name: Subscriber
  description: ''
- name: Subscriber - Devices
  description: ''
- name: Subscriber - FCC Identifier
  description: ''
- name: Subscriber - Services
  description: ''
- name: Subscriber - App Services
  description: ''
- name: Subscriber - Arlo Service - Deprecated
  description: ''
- name: Subscriber - Servify Contract - Deprecated
  description: ''
- name: Managed Service - Arlo
  description: ''
- name: Managed Service - Servify
  description: ''
- name: Subscriber - SmartTown Wi-Fi
  description: ''
- name: Service Definitions
  description: ''
- name: SSID
  description: ''
- name: E2E Service Definition Template
  description: ''
- name: Account
  description: ''
