openapi: 3.0.0
info:
  title: Customer Experience Gateway
  description: "## Get Started\n\nCustomer Experience Gateway is a REST API which provides third-party systems data on the state of a customer/subscriber so that aspects of that customer/subscriber can be managed in the third-party system. By providing some of the data BroadHub has about a customer/subscriber, third-party systems can eliminate some of the reasons a customer/subscriber would call or look for help online and provide a more personalized experience to them while reducing the number of calls that need to get to a customer service representative (CSR). API enables the ability to perform some BroadHub actions such as rescheduling and canceling work orders and refreshing equipment. \n\n## Features\nThe API will need to provide data for the following data points in BroadHub when requested by a third-party integrator. REST will need to be used for the data communication:\n\n- Subscriber Lookup\n- Customer/Subscriber Information\n  - Payment Information\n  - Promise-to-Pay (PTP) Information  \n  - Equipment Information  \n  - Soft-Disconnect Information  \n- Home Lookup\n- Homes Passed Information\n- Equipment Actions\n- Work Order Information\n- Work Order Rescheduling/Canceling\n- Outage Information\n- Outage Actions (Create, Update, and Cancel)\n\n## Authentication\nCustomer Experience Gateway uses Basic Authentication. Basic authentication is a simple authentication scheme built into the HTTP protocol. The client sends HTTP requests with the Authorization header that contains the word Basic followed by a space and a base64-encoded string username:password. For example, to authorize as demo / p@55w0rd the client would send\n\n```json\nAuthorization: Basic ZGVtbzpwQDU1dzByZA==\n```\n\nNote: Because base64 is easily decoded, HTTPS/SSL must be used.\n\n## Use Case Diagrams\n\n[Diagrams](https://www.glds.com/files/ceg_diagrams.pdf)\n\n## Date and Time Formats\n\n- date – full-date notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6), for example, 2017-07-21\n- date-time – the date-time notation as defined by [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6), for example, 2017-07-21T17:32:28Z"
  contact:
    name: ''
    url: https://www.glds.com/contact/
    email: support@glds.com
  version: 'v1.0'
servers:
- url: https://bhas.glds.com:15920/customer-experience-gateway/v1
  variables: {}
paths:
  /subscriber/search:
    get:
      tags:
      - Subscriber
      summary: SubscriberLookup
      description: Lookup subscriber
      operationId: SubscriberLookup
      parameters:
      - name: ExternalID
        in: query
        description: External ID
        style: form
        explode: true
        schema:
          maxLength: 40
          minLength: 1
          type: string
      - name: PhoneNumber
        in: query
        description: Unformated phone number without country code
        style: form
        explode: true
        schema:
          maxLength: 15
          minLength: 1
          pattern: ^[0-9]+
          type: string
          example: '7606021916'
      - name: DL
        in: query
        description: Driver's license
        style: form
        explode: true
        schema:
          maxLength: 16
          minLength: 1
          pattern: ^[A-Z0-9- ]+
          type: string
      - name: SSN
        in: query
        description: Social security number
        style: form
        explode: true
        schema:
          maxLength: 16
          minLength: 1
          pattern: ^[A-Z0-9- ]+
          type: string
      - name: LookupCode
        in: query
        description: PPV Lookup Code, unique per subscriber record
        style: form
        explode: true
        schema:
          maxLength: 10
          minLength: 1
          type: string
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubscriberSearchResponse'
                description: ''
                example:
                - Account: '123456203'
                  AccountName: Roxanne Hunn
                  ServiceAddress: 721 Kimball Terrace San Ysidro CA 94636-9101
              examples:
                example:
                  value:
                  - Account: '123456203'
                    AccountName: Roxanne Hunn
                    ServiceAddress: 721 Kimball Terrace San Ysidro CA 94636-9101
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}:
    get:
      tags:
      - Subscriber
      summary: GetSubscriber
      description: Get subscriber
      operationId: GetSubscriber
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SubscriberResponse'
                - example:
                    Account: '008316'
                    SubscriberStatus:
                      Code: ACT
                      Name: Active
                      BaseCustStatus: 173
                    SubscriberType:
                      Code: RES
                      Name: Residential Subscriber
                    AccountName: Dan G Falana
                    FirstName: Dan
                    SecondName: G
                    LastName: Falana
                    PhoneNumbers:
                    - PhoneNumber: '9018723602'
                      PhoneNumberType:
                        Code: HOM
                        Name: Home phone
                    - PhoneNumber: '7616035031'
                      PhoneNumberType:
                        Code: VOI
                        Name: VoIP Phone
                    BillingEmail: ''
                    ServiceAddress:
                      FullAddress: 4780 Navy Rd Encinitas, CA 92024
                      City: Encinitas
                      State: CA
                      ZIP: '92024'
                      ZIPPlus4: '92024'
                      BlockFIPS: ''
                      Franchise:
                        Code: '009'
                        Name: Ocean Beach
                      PropertyType:
                        Code: RES
                        Name: Residential
                      HeadEnd:
                        Code: '001'
                        Name: NCTC Member
                      Hub:
                        Code: S_A
                        Name: Scientific Atlanta
                      Node:
                        Code: '005'
                        Name: Blue Lake
                      VoIPRateCenter:
                        Code: DRC
                        Name: Default
                      Wired: true
                      DropConnected: true
                      TechRegion:
                        Code: '001'
                        Name: North
                    Franchise:
                      Code: '009'
                      Name: Ocean Beach
                    CanOrderPPV: false
                    PPVDenyReason:
                      Value: 17
                      Text: Subscriber is not PPV Enabled
                    PINisSet: true
                    TimeZone:
                      ID: 40
                      BIAS: 480
                      Name: Pacific Standard Time
                      Description: (UTC-08:00) Pacific Time (US & Canada)
                    PaymentPlan: Post-paid
                    PaymentTypes:
                    - ID: 255
                      Code: CHG
                      Name: Credit Card Payment
                    - ID: 253
                      Code: CSH
                      Name: Cash Payment
                    InOutageArea: true
                    ActiveOutages:
                    - ID: 9
                      OutageStatus: Open
                      OutageType: Planned
                      Description: Planned Outage Test
                      StartTime: 2020-08-05T23:26:14.096Z
              examples:
                example-008316:
                  value:
                    Account: '008316'
                    SubscriberStatus:
                      Code: ACT
                      Name: Active
                      BaseCustStatus: 173
                    SubscriberType:
                      Code: RES
                      Name: Residential Subscriber
                    AccountName: Dan G Falana
                    FirstName: Dan
                    SecondName: G
                    LastName: Falana
                    PhoneNumbers:
                    - PhoneNumber: '9018723602'
                      PhoneNumberType:
                        Code: HOM
                        Name: Home phone
                    - PhoneNumber: '7616035031'
                      PhoneNumberType:
                        Code: VOI
                        Name: VoIP Phone
                    BillingEmail: ''
                    ServiceAddress:
                      FullAddress: 4780 Navy Rd Encinitas, CA 92024
                      City: Encinitas
                      State: CA
                      ZIP: '92024'
                      ZIPPlus4: '92024'
                      BlockFIPS: ''
                      Franchise:
                        Code: '009'
                        Name: Ocean Beach
                      PropertyType:
                        Code: RES
                        Name: Residential
                      HeadEnd:
                        Code: '001'
                        Name: NCTC Member
                      Hub:
                        Code: S_A
                        Name: Scientific Atlanta
                      Node:
                        Code: '005'
                        Name: Blue Lake
                      VoIPRateCenter:
                        Code: DRC
                        Name: Default
                      Wired: true
                      DropConnected: true
                      TechRegion:
                        Code: '001'
                        Name: North
                    Franchise:
                      Code: '009'
                      Name: Ocean Beach
                    CanOrderPPV: false
                    PPVDenyReason:
                      Value: 17
                      Text: Subscriber is not PPV Enabled
                    PINisSet: true
                    TimeZone:
                      ID: 40
                      BIAS: 480
                      Name: Pacific Standard Time
                      Description: (UTC-08:00) Pacific Time (US & Canada)
                    PaymentPlan: Post-paid
                    PaymentTypes:
                    - ID: 255
                      Code: CHG
                      Name: Credit Card Payment
                    - ID: 253
                      Code: CSH
                      Name: Cash Payment
                    InOutageArea: true
                    ActiveOutages:
                    - ID: 9
                      OutageStatus: Open
                      OutageType: Planned
                      Description: Planned Outage Test
                      StartTime: 2020-08-05T23:26:14.096Z
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/balance:
    get:
      tags:
      - Subscriber
      summary: GetBalance
      description: Get subscriber balance
      operationId: GetBalance
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SubscriberBalanceResponse'
                - example:
                    PaymentPlan: Post-paid
                    LastBillAfterPayments: 0
                    CurrentBalance: 0
                    NewActivity: 0
                    CurrentAging30: 0
                    CurrentAging60: 0
                    CurrentAging90: 0
                    CurrentAging120: 0
                    PastDueAmt: 0
                    LastBillAmount: 243.03
                    LastBillDate: 2021-01-25
                    BillFormIsSet: true
                    LastPaymentAmount: -243.03
                    LastPaymentDate: 2021-02-10
                    MonthlyPPVCreditLimit: 100
                    AvailPPVCreditLimit: 100
                    LatePaymentAmount: 0
              examples:
                example-008316:
                  value:
                    PaymentPlan: Post-paid
                    LastBillAfterPayments: 0
                    CurrentBalance: 0
                    NewActivity: 0
                    CurrentAging30: 0
                    CurrentAging60: 0
                    CurrentAging90: 0
                    CurrentAging120: 0
                    PastDueAmt: 0
                    LastBillAmount: 243.03
                    LastBillDate: 2021-01-25
                    BillFormIsSet: true
                    LastPaymentAmount: -243.03
                    LastPaymentDate: 2021-02-10
                    MonthlyPPVCreditLimit: 100
                    AvailPPVCreditLimit: 100
                    LatePaymentAmount: 0
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/buckets:
    get:
      tags:
      - Subscriber
      summary: GetSubBucketBalances
      description: Used to get pre-pay subscriber buckets. It will return single post-pay bucket for post-pay subscriber.
      operationId: GetSubBucketBalances
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubscriberBucketsResponse'
                description: ''
                example:
                - Code: TVB
                  Description: TV AND DATA
                  Balance: -2.34
                - Code: PHN
                  Description: PHONE
                  Balance: -5678.9
              examples:
                example:
                  value:
                  - Code: TVB
                    Description: TV AND DATA
                    Balance: -2.34
                  - Code: PHN
                    Description: PHONE
                    Balance: -5678.9
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/packages:
    get:
      tags:
      - Subscriber
      summary: GetSubscriberPackages
      description: Get subscriber packages
      operationId: GetSubscriberPackages
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubscriberPackagesResponse'
                description: Packages
                example:
                - PackageCode: TRB
                  PackageName: Retention Discount - -20
                  Price: -20
                - PackageCode: '001'
                  PackageName: 10-Star Digital Basic
                  Price: 54.95
                - PackageCode: '018'
                  PackageName: Hi-Speed Residential
                  Price: 49.95
                - PackageCode: '024'
                  PackageName: Superphone Unlimited
                  Price: 59.95
                - PackageCode: TRC
                  PackageName: Discount Tracking Code
                  Price: -15
              examples:
                example-008316:
                  value:
                  - PackageCode: TRB
                    PackageName: Retention Discount - -20
                    Price: -20
                  - PackageCode: '001'
                    PackageName: 10-Star Digital Basic
                    Price: 54.95
                  - PackageCode: '018'
                    PackageName: Hi-Speed Residential
                    Price: 49.95
                  - PackageCode: '024'
                    PackageName: Superphone Unlimited
                    Price: 59.95
                  - PackageCode: TRC
                    PackageName: Discount Tracking Code
                    Price: -15
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/packages/sis:
    get:
      tags:
      - Subscriber
      summary: GetSIS
      description: Get subscriber service information summary
      operationId: GetSIS
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SubscriberPackagesSisResponse'
                - example:
                    Packages:
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: '001'
                      Name: 10-Star Digital Basic
                      Quantity: 1
                      Price: 24.95
                      Taxes: 0
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: TRC
                      Name: Discount Tracking Code
                      Quantity: 1
                      Price: 0
                      Taxes: 0
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: TRB
                      Name: Retention Discount - -20
                      Quantity: 1
                      Price: 0
                      Taxes: 0
                    - ServiceClass:
                        Code: INT
                        Name: Internet
                      Code: '018'
                      Name: Hi-Speed Residential
                      Quantity: 1
                      Price: 49.95
                      Taxes: 0
                    - ServiceClass:
                        Code: PHN
                        Name: Phone
                      Code: '024'
                      Name: Superphone Unlimited
                      Quantity: 1
                      Price: 59.95
                      Taxes: 5.6
                    - ServiceClass:
                        Code: OTH
                        Name: Other
                      Code: '001'
                      Name: 10-Star Digital Basic
                      Quantity: 1
                      Price: 30
                      Taxes: 0
                    Discounts:
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: TRD
                      Name: Retention Discount - $15
                      Discount: -15
                      Taxes: -1.65
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: TRE
                      Name: Retention Discount - $20
                      Discount: -20
                      Taxes: 0
                    TaxesAndFees:
                    - ServiceClass:
                        Code: '384'
                        Name: Taxes and Fees
                      Code: CI1
                      Name: City Sales Tax
                      Amount: 0.6
                    - ServiceClass:
                        Code: '384'
                        Name: Taxes and Fees
                      Code: FR1
                      Name: Franchise Fee
                      Amount: 1.25
                    - ServiceClass:
                        Code: '384'
                        Name: Taxes and Fees
                      Code: ST1
                      Name: State Sales Tax
                      Amount: 2.1
              examples:
                example-008316:
                  value:
                    Packages:
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: '001'
                      Name: 10-Star Digital Basic
                      Quantity: 1
                      Price: 24.95
                      Taxes: 0
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: TRC
                      Name: Discount Tracking Code
                      Quantity: 1
                      Price: 0
                      Taxes: 0
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: TRB
                      Name: Retention Discount - -20
                      Quantity: 1
                      Price: 0
                      Taxes: 0
                    - ServiceClass:
                        Code: INT
                        Name: Internet
                      Code: '018'
                      Name: Hi-Speed Residential
                      Quantity: 1
                      Price: 49.95
                      Taxes: 0
                    - ServiceClass:
                        Code: PHN
                        Name: Phone
                      Code: '024'
                      Name: Superphone Unlimited
                      Quantity: 1
                      Price: 59.95
                      Taxes: 5.6
                    - ServiceClass:
                        Code: OTH
                        Name: Other
                      Code: '001'
                      Name: 10-Star Digital Basic
                      Quantity: 1
                      Price: 30
                      Taxes: 0
                    Discounts:
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: TRD
                      Name: Retention Discount - $15
                      Discount: -15
                      Taxes: -1.65
                    - ServiceClass:
                        Code: VID
                        Name: Video
                      Code: TRE
                      Name: Retention Discount - $20
                      Discount: -20
                      Taxes: 0
                    TaxesAndFees:
                    - ServiceClass:
                        Code: '384'
                        Name: Taxes and Fees
                      Code: CI1
                      Name: City Sales Tax
                      Amount: 0.6
                    - ServiceClass:
                        Code: '384'
                        Name: Taxes and Fees
                      Code: FR1
                      Name: Franchise Fee
                      Amount: 1.25
                    - ServiceClass:
                        Code: '384'
                        Name: Taxes and Fees
                      Code: ST1
                      Name: State Sales Tax
                      Amount: 2.1
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/packages/summary:
    get:
      tags:
      - Subscriber
      summary: GetSubscriberPackageSummary
      description: Get subscriber package summary
      operationId: GetSubscriberPackageSummary
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/SubscriberPackagesSummaryResponse'
                - example:
                    RecurringCharges: 164.85
                    RecurringDiscounts: -35
                    TimedBilling: 0
                    TimedPromoDiscounts: 0
                    AfterDiscounts: 129.85
                    TotalTaxed: 133.8
              examples:
                example-008316:
                  value:
                    RecurringCharges: 164.85
                    RecurringDiscounts: -35
                    TimedBilling: 0
                    TimedPromoDiscounts: 0
                    AfterDiscounts: 129.85
                    TotalTaxed: 133.8
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/transactions/last/{X}:
    get:
      tags:
      - Subscriber
      summary: GetLastSubscriberTransactions
      description: Get last X transactions
      operationId: GetLastSubscriberTransactions
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: X
        in: path
        description: Last X transactions
        required: true
        style: simple
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubscriberTransactionsLastResponse'
                description: Last X Transactions (X provided by third-party using API)
                example:
                - Type:
                    Code: PAY
                    Name: Payment
                  Date: 2021-02-10
                  Amount: -243.03
                - Type:
                    Code: LAT
                    Name: Late Charge
                  Date: 2021-01-25
                  Amount: 5
                - Type:
                    Code: DIS
                    Name: Discount
                  Date: 2020-12-29
                  Amount: -56.13
                - Type:
                    Code: DIS
                    Name: Discount
                  Date: 2020-12-29
                  Amount: 0
                - Type:
                    Code: PRO
                    Name: ProRated
                  Date: 2020-12-07
                  Amount: 0
                - Type:
                    Code: DIS
                    Name: Discount
                  Date: 2020-12-29
                  Amount: -42.1
                - Type:
                    Code: DIS
                    Name: Discount
                  Date: 2020-12-29
                  Amount: 0
                - Type:
                    Code: DIS
                    Name: Discount
                  Date: 2020-12-29
                  Amount: 0
                - Type:
                    Code: PRO
                    Name: ProRated
                  Date: 2020-12-07
                  Amount: 0
                - Type:
                    Code: DIS
                    Name: Discount
                  Date: 2020-12-29
                  Amount: 0
              examples:
                example-008316:
                  value:
                  - Type:
                      Code: PAY
                      Name: Payment
                    Date: 2021-02-10
                    Amount: -243.03
                  - Type:
                      Code: LAT
                      Name: Late Charge
                    Date: 2021-01-25
                    Amount: 5
                  - Type:
                      Code: DIS
                      Name: Discount
                    Date: 2020-12-29
                    Amount: -56.13
                  - Type:
                      Code: DIS
                      Name: Discount
                    Date: 2020-12-29
                    Amount: 0
                  - Type:
                      Code: PRO
                      Name: ProRated
                    Date: 2020-12-07
                    Amount: 0
                  - Type:
                      Code: DIS
                      Name: Discount
                    Date: 2020-12-29
                    Amount: -42.1
                  - Type:
                      Code: DIS
                      Name: Discount
                    Date: 2020-12-29
                    Amount: 0
                  - Type:
                      Code: DIS
                      Name: Discount
                    Date: 2020-12-29
                    Amount: 0
                  - Type:
                      Code: PRO
                      Name: ProRated
                    Date: 2020-12-07
                    Amount: 0
                  - Type:
                      Code: DIS
                      Name: Discount
                    Date: 2020-12-29
                    Amount: 0
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/equipment:
    get:
      tags:
      - Equipment
      - Subscriber
      summary: GetSubscriberEquipment
      description: Get subscriber equipment
      operationId: GetSubscriberEquipment
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubscriberEquipmentResponse'
                description: List of Equipment on the Customer/Subscriber Account
                example:
                - EquipmentID: '0001094803040206'
                  SecondaryID: ''
                  Serial: M90646FGF529
                  Type:
                    Code: CVT
                    Name: Converter
                  Make:
                    Code: MOT
                    Name: Motorola
                  Model:
                    Code: M70
                    Name: DCT 700 Two-Way RF
                  Status:
                    Code: RES
                    Name: Residential
                  HeadEnd:
                    Code: DAC
                    Name: DAC 6000
                  Hub:
                    Code: D11
                    Name: Location 1 (DAC 6000)
                  Refreshable: true
                  SingleFamilyUnit: true
                - EquipmentID: '0001094803229005'
                  SecondaryID: ''
                  Serial: M90646FGF530
                  Type:
                    Code: CVT
                    Name: Converter
                  Make:
                    Code: MOT
                    Name: Motorola
                  Model:
                    Code: M70
                    Name: DCT 700 Two-Way RF
                  Status:
                    Code: RES
                    Name: Residential
                  HeadEnd:
                    Code: DAC
                    Name: DAC 6000
                  Hub:
                    Code: D11
                    Name: Location 1 (DAC 6000)
                  Refreshable: true
                  SingleFamilyUnit: true
                - EquipmentID: '0001094804017209'
                  SecondaryID: ''
                  Serial: M90646FGF531
                  Type:
                    Code: CVT
                    Name: Converter
                  Make:
                    Code: MOT
                    Name: Motorola
                  Model:
                    Code: M70
                    Name: DCT 700 Two-Way RF
                  Status:
                    Code: RES
                    Name: Residential
                  HeadEnd:
                    Code: DAC
                    Name: DAC 6000
                  Hub:
                    Code: D11
                    Name: Location 1 (DAC 6000)
                  Refreshable: true
                  SingleFamilyUnit: true
                - EquipmentID: 0005CA433DC4
                  SecondaryID: ''
                  Serial: ''
                  Type:
                    Code: CMD
                    Name: Cable Modem
                  Make:
                    Code: MOT
                    Name: Motorola
                  Model:
                    Code: '612'
                    Name: SurfBoard 6121 (Modems)
                  Status:
                    Code: RES
                    Name: Residential
                  HeadEnd:
                    Code: SPG
                    Name: SPG Data and Voice
                  Hub:
                    Code: S51
                    Name: Location 1 (SPG D&V)
                  Refreshable: true
                  SingleFamilyUnit: true
              examples:
                example-008316:
                  value:
                  - EquipmentID: '0001094803040206'
                    SecondaryID: ''
                    Serial: M90646FGF529
                    Type:
                      Code: CVT
                      Name: Converter
                    Make:
                      Code: MOT
                      Name: Motorola
                    Model:
                      Code: M70
                      Name: DCT 700 Two-Way RF
                    Status:
                      Code: RES
                      Name: Residential
                    HeadEnd:
                      Code: DAC
                      Name: DAC 6000
                    Hub:
                      Code: D11
                      Name: Location 1 (DAC 6000)
                    Refreshable: true
                    SingleFamilyUnit: true
                  - EquipmentID: '0001094803229005'
                    SecondaryID: ''
                    Serial: M90646FGF530
                    Type:
                      Code: CVT
                      Name: Converter
                    Make:
                      Code: MOT
                      Name: Motorola
                    Model:
                      Code: M70
                      Name: DCT 700 Two-Way RF
                    Status:
                      Code: RES
                      Name: Residential
                    HeadEnd:
                      Code: DAC
                      Name: DAC 6000
                    Hub:
                      Code: D11
                      Name: Location 1 (DAC 6000)
                    Refreshable: true
                    SingleFamilyUnit: true
                  - EquipmentID: '0001094804017209'
                    SecondaryID: ''
                    Serial: M90646FGF531
                    Type:
                      Code: CVT
                      Name: Converter
                    Make:
                      Code: MOT
                      Name: Motorola
                    Model:
                      Code: M70
                      Name: DCT 700 Two-Way RF
                    Status:
                      Code: RES
                      Name: Residential
                    HeadEnd:
                      Code: DAC
                      Name: DAC 6000
                    Hub:
                      Code: D11
                      Name: Location 1 (DAC 6000)
                    Refreshable: true
                    SingleFamilyUnit: true
                  - EquipmentID: 0005CA433DC4
                    SecondaryID: ''
                    Serial: ''
                    Type:
                      Code: CMD
                      Name: Cable Modem
                    Make:
                      Code: MOT
                      Name: Motorola
                    Model:
                      Code: '612'
                      Name: SurfBoard 6121 (Modems)
                    Status:
                      Code: RES
                      Name: Residential
                    HeadEnd:
                      Code: SPG
                      Name: SPG Data and Voice
                    Hub:
                      Code: S51
                      Name: Location 1 (SPG D&V)
                    Refreshable: true
                    SingleFamilyUnit: true
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/equipment/refresh/all:
    get:
      tags:
      - Equipment
      - Subscriber
      summary: RefreshAllEquipment
      description: Refresh all equipment
      operationId: RefreshAllEquipment
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '204':
          description: Successful Operation.
          headers: {}
          content: {}
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Invalid Subscriber value:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/equipment/refresh:
    post:
      tags:
      - Equipment
      - Subscriber
      summary: RefreshEquipment
      description: Refresh equipment
      operationId: RefreshEquipment
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: List of unformated equipment ID (MAC address), serial or equipment port object.
        content:
          application/json:
            schema:
              type: array
              items:
                oneOf:
                - maxLength: 45
                  type: string
                  example: '0000310770580'
                - $ref: '#/components/schemas/SubscriberEquipmentRefreshRequest'
              description: List of unformated equipment ID (MAC address), serial or equipment port object.
              example:
              - 00A0C914C8291
              - 00A0C914C830
            examples:
              MAC Address list:
                value:
                - 00A0C914C8291
                - 00A0C914C830
              Serial List:
                value:
                - GI1044TAA274
                - GI1044TAA275
              Single Port Refresh:
                value:
                - EquipmentID: ONUCLX1
                  PortTypeCode: DGE
                  PortId: 1
        required: true
      responses:
        '204':
          description: Successful Operation.
          headers: {}
          content: {}
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Invalid Subscriber value:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /equipment/{EQUIPMENTID}/action/{ACTIONCODE}:
    get:
      tags:
      - Equipment
      summary: PerformActionCode
      description: Perform action code
      operationId: PerformActionCode
      parameters:
      - name: EQUIPMENTID
        in: path
        description: Equipment ID
        required: true
        style: simple
        schema:
          maxLength: 45
          type: string
      - name: ACTIONCODE
        in: path
        description: Action Code
        required: true
        style: simple
        schema:
          maxLength: 3
          type: string
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '204':
          description: Successful Operation.
          headers: {}
          content: {}
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Equipment not found:
              schema: {}
            Action code not found:
              schema: {}
            Action code is not enabled for equipment head end:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /home/search:
    get:
      tags:
      - Home
      summary: HomeLookup
      description: Lookup home
      operationId: HomeLookup
      parameters:
      - name: StreetNumber
        in: query
        description: Street Number
        style: form
        explode: true
        schema:
          maxLength: 40
          type: string
      - name: StreetName
        in: query
        description: Street Name
        required: true
        style: form
        explode: true
        schema:
          maxLength: 40
          type: string
      - name: Apartment
        in: query
        description: Apartment
        style: form
        explode: true
        schema:
          maxLength: 40
          type: string
      - name: City
        in: query
        description: City
        required: true
        style: form
        explode: true
        schema:
          maxLength: 40
          type: string
      - name: PostCode
        in: query
        description: Post Code
        style: form
        explode: true
        schema:
          maxLength: 20
          type: string
      - name: State
        in: query
        description: State
        style: form
        explode: true
        schema:
          maxLength: 3
          type: string
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/HomeSearchResponse'
                description: ''
                example:
                - Home: 8339
                  Address: 4780 Navy Rd Encinitas, CA 92024
              examples:
                example-008316:
                  value:
                  - Home: 8339
                    Address: 4780 Navy Rd Encinitas, CA 92024
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Home Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /home/{HOME}:
    get:
      tags:
      - Home
      summary: GetHome
      description: Get homes passed details
      operationId: GetHome
      parameters:
      - name: HOME
        in: path
        description: Home ID
        required: true
        style: simple
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Home'
                - description: Service Address
                  example:
                    FullAddress: 4780 Navy Rd Encinitas, CA 92024
                    City: Encinitas
                    State: CA
                    ZIP: '92024'
                    ZIPPlus4: '92024'
                    BlockFIPS: ''
                    Franchise:
                      Code: '009'
                      Name: Ocean Beach
                    PropertyType:
                      Code: RES
                      Name: Residential
                    HeadEnd:
                      Code: '001'
                      Name: NCTC Member
                    Hub:
                      Code: S_A
                      Name: Scientific Atlanta
                    Node:
                      Code: '005'
                      Name: Blue Lake
                    VoIPRateCenter:
                      Code: DRC
                      Name: Default
                    Wired: true
                    DropConnected: true
                    TechRegion:
                      Code: '001'
                      Name: North
              examples:
                example-008316:
                  value:
                    FullAddress: 4780 Navy Rd Encinitas, CA 92024
                    City: Encinitas
                    State: CA
                    ZIP: '92024'
                    ZIPPlus4: '92024'
                    BlockFIPS: ''
                    Franchise:
                      Code: '009'
                      Name: Ocean Beach
                    PropertyType:
                      Code: RES
                      Name: Residential
                    HeadEnd:
                      Code: '001'
                      Name: NCTC Member
                    Hub:
                      Code: S_A
                      Name: Scientific Atlanta
                    Node:
                      Code: '005'
                      Name: Blue Lake
                    VoIPRateCenter:
                      Code: DRC
                      Name: Default
                    Wired: true
                    DropConnected: true
                    TechRegion:
                      Code: '001'
                      Name: North
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/work-orders/last/{X}:
    get:
      tags:
      - Work Orders
      - Subscriber
      summary: GetLastWorkOrders
      description: Get work orders within last X days
      operationId: GetLastWorkOrders
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: X
        in: path
        description: Last X Days
        required: true
        style: simple
        schema:
          maximum: 15000
          type: integer
          format: int32
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubscriberWorkOrdersLastResponse'
                description: Work Order details for opened and closed within the last X days
                example:
                - WOnumber: '2147486937'
                  WOStatus: Open
                  CreatedBy:
                    Code: CSD
                    Name: Mark Lawman
                  CreatedWhen: 2019-08-24T14:15:22Z
                  WOType:
                    Code: COS
                    Name: Change of Service
                    BaseType:
                      Code: COS
                      Name: Change of Service
                  ScheduledDate: 2019-08-24
                  ScheduledPeriod:
                    Period: 354
                    PeriodStart: 2020-10-30T12:00:00.000Z
                    PeriodEnd: 2020-10-30T17:00:00.000Z
                    PeriodDescription: 12PM-5PM
                  Technician:
                    Code: 1VD
                    Name: John Black
                  ClosedBy:
                    Code: CSD
                    Name: Mark Lawman
                  Reasons:
                  - type: Initial
                    Reason:
                      Code: '201'
                      Name: Too expensive
                  - type: Secondary
                    Reason:
                      Code: '202'
                      Name: Slow Speed
                  - type: Secondary
                    Reason:
                      Code: '203'
                      Name: Can't afford
                  - type: Final
                    Reason:
                      Code: '204'
                      Name: Downgrade
              examples:
                example:
                  value:
                  - WOnumber: '2147486937'
                    WOStatus: Open
                    CreatedBy:
                      Code: CSD
                      Name: Mark Lawman
                    CreatedWhen: 2019-08-24T14:15:22Z
                    WOType:
                      Code: COS
                      Name: Change of Service
                      BaseType:
                        Code: COS
                        Name: Change of Service
                    ScheduledDate: 2019-08-24
                    ScheduledPeriod:
                      Period: 354
                      PeriodStart: 2020-10-30T12:00:00.000Z
                      PeriodEnd: 2020-10-30T17:00:00.000Z
                      PeriodDescription: 12PM-5PM
                    Technician:
                      Code: 1VD
                      Name: John Black
                    ClosedBy:
                      Code: CSD
                      Name: Mark Lawman
                    Reasons:
                    - type: Initial
                      Reason:
                        Code: '201'
                        Name: Too expensive
                    - type: Secondary
                      Reason:
                        Code: '202'
                        Name: Slow Speed
                    - type: Secondary
                      Reason:
                        Code: '203'
                        Name: Can't afford
                    - type: Final
                      Reason:
                        Code: '204'
                        Name: Downgrade
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /work-order/{WONUMBER}/availability:
    get:
      tags:
      - Work Orders
      summary: GetAvailability
      description: Get available time periods for work order rescheduling
      operationId: GetAvailability
      parameters:
      - name: WONUMBER
        in: path
        description: Work Order Number
        required: true
        style: simple
        schema:
          maxLength: 20
          type: string
      - name: Date
        in: query
        description: Selected Date
        style: form
        explode: true
        schema:
          type: string
          format: date
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkOrderPeriod'
                description: ''
                example:
                - Period: 354
                  PeriodStart: 2020-10-30T12:00:00.000Z
                  PeriodEnd: 2020-10-30T17:00:00.000Z
                  PeriodDescription: 12PM-5PM
              examples:
                example:
                  value:
                  - Period: 354
                    PeriodStart: 2020-10-30T12:00:00.000Z
                    PeriodEnd: 2020-10-30T17:00:00.000Z
                    PeriodDescription: 12PM-5PM
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Work Order Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /work-order/{WONUMBER}/reschedule/date/{DATE}/period/{PERIOD}:
    get:
      tags:
      - Work Orders
      summary: RescheduleWorkOrder
      description: Reschedule work order
      operationId: RescheduleWorkOrder
      parameters:
      - name: WONUMBER
        in: path
        description: Work Order Number
        required: true
        style: simple
        schema:
          maxLength: 20
          type: string
      - name: DATE
        in: path
        description: Date
        required: true
        style: simple
        schema:
          type: string
          format: date
      - name: PERIOD
        in: path
        description: Period ID
        required: true
        style: simple
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '204':
          description: Successful Operation.
          headers: {}
          content: {}
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Work Order Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /work-order/{WONUMBER}/cancel:
    get:
      tags:
      - Work Orders
      summary: CancelWorkOrder
      description: Cancel work order
      operationId: CancelWorkOrder
      parameters:
      - name: WONUMBER
        in: path
        description: Work order number
        required: true
        style: simple
        schema:
          maxLength: 20
          type: string
      - name: reason
        in: query
        description: Work order cancel reason, use /reasons/cancel to get available reasons
        required: true
        style: form
        explode: true
        schema:
          maxLength: 3
          minLength: 3
          type: string
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '204':
          description: Successful Operation.
          headers: {}
          content: {}
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Work Order Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /subscriber/{ACCOUNT}/outages/last/{X}:
    get:
      tags:
      - Outages
      - Subscriber
      summary: GetLastOutages
      description: Get outages within last X days
      operationId: GetLastOutages
      parameters:
      - name: ACCOUNT
        in: path
        description: 'Subscriber Account #'
        required: true
        style: simple
        schema:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          example: '123456203'
      - name: X
        in: path
        description: Last X Days
        required: true
        style: simple
        schema:
          maximum: 15000
          type: integer
          format: int32
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OutageDetails'
                description: List of outages within the last X days
                example:
                - ID: 1
                  OutageStatus: Open
                  OutageType: Planned
                  Description: string
                  StartTime: 2019-08-24T14:15:22Z
                  EstCloseTime: 2019-08-24T14:15:22Z
                  ActualEndDate: 2019-08-24T14:15:22Z
                  Resolutions:
                  - Code: '001'
                    Name: Resolution 1
              examples:
                example:
                  value:
                  - ID: 1
                    OutageStatus: Open
                    OutageType: Planned
                    Description: string
                    StartTime: 2019-08-24T14:15:22Z
                    EstCloseTime: 2019-08-24T14:15:22Z
                    ActualEndDate: 2019-08-24T14:15:22Z
                    Resolutions:
                    - Code: '001'
                      Name: Resolution 1
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Subscriber Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /outage:
    put:
      tags:
      - Outages
      summary: CreateOutage
      description: Create outage
      operationId: CreateOutage
      parameters:
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Outage'
        required: true
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/OutageResponse'
                - example:
                    Outage: 100
              examples:
                example:
                  value:
                    Outage: 100
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Invalid Subscriber value:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /outage/{OUTAGE}:
    patch:
      tags:
      - Outages
      summary: UpdateOutage
      description: Update outage
      operationId: UpdateOutage
      parameters:
      - name: OUTAGE
        in: path
        description: Outage ID
        required: true
        style: simple
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Outage'
        required: true
      responses:
        '204':
          description: Successful Operation.
          headers: {}
          content: {}
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Invalid Outage ID:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /outage/{OUTAGE}/cancel:
    delete:
      tags:
      - Outages
      summary: CancelOutage
      description: Cancel outage
      operationId: CancelOutage
      parameters:
      - name: OUTAGE
        in: path
        description: Outage ID
        required: true
        style: simple
        schema:
          type: integer
          format: int32
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '204':
          description: Successful Operation.
          headers: {}
          content: {}
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Invalid Outage ID:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /reasons/{TYPE}:
    get:
      tags:
      - Other
      summary: GetReasons
      description: Get available reason list
      operationId: GetReasons
      parameters:
      - name: TYPE
        in: path
        description: Reason type
        required: true
        style: simple
        schema:
          allOf:
          - $ref: '#/components/schemas/TYPE5'
          - description: Reason type
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReasonsResponse'
                description: ''
                example:
                - Code: '400'
                  Name: Not Home
                - Code: '401'
                  Name: Changed Mind/Competitive
                - Code: '402'
                  Name: Needs to Reschedule
                - Code: '403'
                  Name: 'Non Pay Paid '
                - Code: '404'
                  Name: No Money
                - Code: '405'
                  Name: Account Maintenance
                - Code: '406'
                  Name: Construction Needed
                - Code: '407'
                  Name: Customer Solved
                - Code: '408'
                  Name: Test
                - Code: MAC
                  Name: MBM Auto Cancel
              examples:
                Work order cancel reason:
                  value:
                  - Code: '400'
                    Name: Not Home
                  - Code: '401'
                    Name: Changed Mind/Competitive
                  - Code: '402'
                    Name: Needs to Reschedule
                  - Code: '403'
                    Name: 'Non Pay Paid '
                  - Code: '404'
                    Name: No Money
                  - Code: '405'
                    Name: Account Maintenance
                  - Code: '406'
                    Name: Construction Needed
                  - Code: '407'
                    Name: Customer Solved
                  - Code: '408'
                    Name: Test
                  - Code: MAC
                    Name: MBM Auto Cancel
                Outage reason:
                  value:
                  - Code: '409'
                    Name: No Internet
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Work Order Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
  /service-classes:
    get:
      tags:
      - Other
      summary: GetServiceClassList
      description: Get service class list
      operationId: GetServiceClassList
      parameters:
      - name: Authorization
        in: header
        description: ''
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: Successful Operation.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceClassesResponse'
                description: ''
                example:
                - Code: INT
                  Name: Internet
                - Code: OTH
                  Name: Other
                - Code: PHN
                  Name: Phone
                - Code: VID
                  Name: Video
              examples:
                example:
                  value:
                  - Code: INT
                    Name: Internet
                  - Code: OTH
                    Name: Other
                  - Code: PHN
                    Name: Phone
                  - Code: VID
                    Name: Video
        '400':
          description: The request was malformed
          headers: {}
          content: {}
        '401':
          description: Unauthorized
          headers: {}
          content: {}
        '404':
          description: Not Found
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
            Work Order Not Found:
              schema: {}
        '500':
          description: Internal Server Error
          headers: {}
          content: {}
      deprecated: false
      security:
      - basicAuth: []
components:
  schemas:
    PhoneNumber:
      title: PhoneNumber
      type: object
      properties:
        PhoneNumber:
          maxLength: 20
          type: string
          description: Phone Number
          example: (760) 385-4792
        PhoneNumberType:
          allOf:
          - $ref: '#/components/schemas/PhoneNumberType'
          - description: Phone Number Type
    Home:
      title: Home
      required:
      - Franchise
      - PropertyType
      - HeadEnd
      - Hub
      - VoIPRateCenter
      - Wired
      - DropConnected
      - TechRegion
      type: object
      properties:
        FullAddress:
          maxLength: 765
          type: string
          example: 721 Kimball Terrace San Ysidro CA 94636-9101
        City:
          maxLength: 40
          type: string
          example: San Ysidro
        State:
          maxLength: 3
          type: string
          example: CA
        ZIP:
          maxLength: 20
          type: string
          description: Zip Code
          example: '94636'
        ZIPPlus4:
          maxLength: 20
          type: string
          description: Zip Plus 4
          example: 94636-9101
        BlockFIPS:
          maxLength: 15
          type: string
          description: 15-digit census block FIPS code
          example: '060730176041014'
        Franchise:
          allOf:
          - $ref: '#/components/schemas/Franchise'
          - description: Franchise
        PropertyType:
          allOf:
          - $ref: '#/components/schemas/PropertyType'
          - description: Property Type
        HeadEnd:
          allOf:
          - $ref: '#/components/schemas/HeadEnd'
          - description: Head End
        Hub:
          allOf:
          - $ref: '#/components/schemas/Hub'
          - description: Hub
        Node:
          allOf:
          - $ref: '#/components/schemas/Node'
          - description: Node
        VoIPRateCenter:
          allOf:
          - $ref: '#/components/schemas/VoIPRateCenter'
          - description: VoIP Rate Center
        DropTag:
          maxLength: 10
          type: string
          description: Drop Tag
          example: LM89546
        Wired:
          type: boolean
          description: Wired
        DropConnected:
          type: boolean
          description: Drop Connected
        TechRegion:
          allOf:
          - $ref: '#/components/schemas/TechRegion'
          - description: Tech Region
        SalesArea:
          allOf:
          - $ref: '#/components/schemas/SalesArea'
          - description: Sales Area
        ManagementArea:
          allOf:
          - $ref: '#/components/schemas/ManagementArea'
          - description: Management Area
      description: Service Address
    WorkOrderPeriod:
      title: WorkOrderPeriod
      type: object
      properties:
        Period:
          type: integer
          description: Period ID
          format: int32
          example: 354
        PeriodStart:
          type: string
          description: Scheduled Period Start
          format: date-time
          example: 2020-10-30T12:00:00.000Z
        PeriodEnd:
          type: string
          description: Scheduled Period End
          format: date-time
          example: 2020-10-30T17:00:00.000Z
        PeriodDescription:
          maxLength: 30
          type: string
          description: Scheduled Period Description
          example: 12PM-5PM
    OutageDetails:
      title: OutageDetails
      required:
      - ID
      - OutageStatus
      - OutageType
      - StartTime
      type: object
      properties:
        ID:
          type: integer
          description: Outage ID
          format: int32
          example: 1
        OutageStatus:
          allOf:
          - $ref: '#/components/schemas/OutageStatus'
          - description: Outage Status
        OutageType:
          allOf:
          - $ref: '#/components/schemas/OutageType'
          - description: Outage Type
        Description:
          maxLength: 80
          type: string
          description: Description
        StartTime:
          type: string
          description: Start Date/Time
          format: date-time
        EstCloseTime:
          type: string
          description: Estimated Close Date/Time
          format: date-time
        ActualEndDate:
          type: string
          format: date-time
        Resolutions:
          type: array
          items:
            $ref: '#/components/schemas/Resolution'
          description: Resolution (if status is closed)
    Outage:
      title: Outage
      required:
      - OutageType
      - AffectedServiceClasses
      - AffectedArea
      - StartTime
      - EstCloseTime
      type: object
      properties:
        OutageType:
          allOf:
          - $ref: '#/components/schemas/OutageType'
          - description: Outage Type
        AffectedServiceClasses:
          minItems: 1
          type: array
          items:
            maxLength: 3
            minLength: 3
            type: string
          description: Array of affected service classes, use '/service-classes' to get available
        AffectedArea:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/AffectedArea'
          description: ''
          example:
          - Type: Subscriber
            Values:
            - '000000100'
            - '000013525'
          - Type: Headend
            Values:
            - '000'
            - '001'
          - Type: EquipmentID
            Values:
            - '19195'
            - '987654321000'
          - Type: PhoneNumber
            Values:
            - '17606021916'
            - '17609671001'
        StartTime:
          type: string
          description: Start Date/Time
          format: date-time
        EstCloseTime:
          type: string
          description: Estimated Close Date/Time
          format: date-time
        Description:
          maxLength: 255
          type: string
          description: Outage Public Description
        Reasons:
          type: array
          items:
            maxLength: 3
            minLength: 3
            type: string
          description: List of outage reasons, use '/reasons/outage' to get available reasons
    404Error:
      title: 404Error
      required:
      - errors
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          description: ''
    AffectedArea:
      title: AffectedArea
      required:
      - Type
      - Values
      type: object
      properties:
        Type:
          allOf:
          - $ref: '#/components/schemas/Type'
          - description: 1. Franchise - franchise codes. 2. Headend - head end codes. 3. Hub - hub codes. 4. Node - node codes. 5. Subscriber - subscriber account numbers. 6. EquipmentID and EquipmentSerial - values without masks. 7. PhoneNumber - full phone number including country code.
        Values:
          minItems: 1
          type: array
          items:
            maxLength: 40
            minLength: 3
            type: string
          description: ''
    BaseCustStatus:
      title: BaseCustStatus
      enum:
      - 173
      - 174
      - 177
      - 237
      type: integer
      description: "Value | Description \n ---------|---------- \n173 | Active\n174 | Inactive\n177 | Inactive Written Off\n237 | Inactive Collections"
    BaseType:
      title: BaseType
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: COS
        Name:
          maxLength: 40
          type: string
          example: Change of Service
    ChildAccount:
      title: ChildAccount
      required:
      - Account
      - AccountName
      type: object
      properties:
        Account:
          maxLength: 9
          minLength: 6
          type: string
          description: 'Subscriber Account #'
          example: '123456204'
        AccountName:
          maxLength: 255
          type: string
          description: Account Name (first and last name when residential/the business name when commercial)
          example: Child Account Name
    ClosedBy:
      title: ClosedBy
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: CSD
        Name:
          maxLength: 255
          type: string
          example: Mark Lawman
      description: Closed By
    CreatedBy:
      title: CreatedBy
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: CSD
        Name:
          maxLength: 255
          type: string
          example: Mark Lawman
      description: Created By
    Discount:
      title: Discount
      type: object
      properties:
        ServiceClass:
          $ref: '#/components/schemas/ServiceClass1'
        Code:
          maxLength: 3
          minLength: 3
          type: string
          description: Discount Code
          example: SSS
        Name:
          maxLength: 40
          type: string
          description: Discount Name
          example: HBO VOIP Combo
        Discount:
          type: number
          description: Discount
          example: 1
        Taxes:
          type: number
          description: Tax/Fee Amount
          example: 0.25
        ContractNumber:
          maxLength: 20
          type: string
          description: Contract number
          example: 2020-450-11
        ContractEndDate:
          type: string
          description: Contract end date
          format: date
    Error:
      title: Error
      type: object
      properties:
        status:
          type: string
        errorCode:
          type: string
        errorMessage:
          maxLength: 255
          type: string
    Franchise:
      title: Franchise
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: '001'
        Name:
          maxLength: 40
          type: string
          example: South Park1
      description: Franchise
    HeadEnd:
      title: HeadEnd
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: HTS
        Name:
          maxLength: 40
          type: string
          example: Hits
      description: Head End
    HomeSearchResponse:
      title: HomeSearchResponse
      required:
      - Home
      - Address
      type: object
      properties:
        Home:
          type: integer
          description: Home ID
          format: int32
          example: 100
        Address:
          maxLength: 765
          type: string
          example: 721 Kimball Terrace San Ysidro CA 94636-9101
    Hub:
      title: Hub
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: HTS
        Name:
          maxLength: 40
          type: string
          example: Hits
      description: Hub
    Interface:
      title: Interface
      required:
      - EquipmentID
      - Type
      - Make
      - Model
      - HeadEnd
      - Hub
      - Refreshable
      type: object
      properties:
        EquipmentID:
          maxLength: 45
          type: string
          description: Equipment ID
          example: '0000310770580'
        SecondaryID:
          maxLength: 45
          type: string
          description: Secondary ID
          example: '0000310770581'
        Serial:
          maxLength: 45
          type: string
          description: 'Serial #'
          example: GI1032TB70LO
        Type:
          allOf:
          - $ref: '#/components/schemas/Type2'
          - description: Equipment Type
        Make:
          allOf:
          - $ref: '#/components/schemas/Make'
          - description: Make (MFG Code)
        Model:
          allOf:
          - $ref: '#/components/schemas/Model'
          - description: Model
        HeadEnd:
          allOf:
          - $ref: '#/components/schemas/HeadEnd'
          - description: Head End
        Hub:
          allOf:
          - $ref: '#/components/schemas/Hub'
          - description: Hub
        Refreshable:
          type: boolean
          description: Equipment can be refreshed using refresh command
        Ports:
          type: array
          items:
            $ref: '#/components/schemas/Port'
          description: Equipment ports for MTA and ONT equipment
    Location:
      title: Location
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: LVR
        Name:
          maxLength: 40
          type: string
          example: Living room
      description: Location
    Make:
      title: Make
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: HIT
        Name:
          maxLength: 40
          type: string
          example: Hits
      description: Make (MFG Code)
    ManagementArea:
      title: ManagementArea
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: DFT
        Name:
          maxLength: 40
          type: string
          example: Default Management Area
      description: Management Area
    Model:
      title: Model
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: '041'
        Name:
          maxLength: 40
          type: string
          example: HITS DCT1000 w/ phone return
      description: Model
    Node:
      title: Node
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: '005'
        Name:
          maxLength: 40
          type: string
          example: '005'
      description: Node
    OutageResponse:
      title: OutageResponse
      type: object
      properties:
        Outage:
          type: integer
          description: Outage ID
          format: int32
          example: 100
    OutageStatus:
      title: OutageStatus
      enum:
      - Open
      - Closed
      type: string
      description: Outage Status
    OutageType:
      title: OutageType
      enum:
      - Planned
      - Unplanned
      type: string
      description: Outage Type
    Package:
      title: Package
      type: object
      properties:
        ServiceClass:
          $ref: '#/components/schemas/ServiceClass'
        Code:
          maxLength: 3
          minLength: 3
          type: string
          description: Package Code
          example: '015'
        Name:
          maxLength: 40
          type: string
          description: Package Name
          example: HBO
        Quantity:
          type: number
          description: Quantity
          example: 1
        Price:
          type: number
          description: Price
          example: 10
        Taxes:
          type: number
          description: Tax/Fee Amount
          example: 2.25
        ContractNumber:
          maxLength: 20
          type: string
          description: Contract number
          example: 2020-450-11
        ContractEndDate:
          type: string
          description: Contract end date
          format: date
    ParentAccount:
      title: ParentAccount
      required:
      - Account
      - AccountName
      type: object
      properties:
        Account:
          maxLength: 9
          minLength: 6
          type: string
          description: 'Subscriber Account #'
          example: '123456201'
        AccountName:
          maxLength: 255
          type: string
          description: Account Name (first and last name when residential/the business name when commercial)
          example: Parent Account Name
    PaymentPlan:
      title: PaymentPlan
      enum:
      - Pre-paid
      - Post-paid
      type: string
    PaymentType:
      title: PaymentType
      required:
      - ID
      - Code
      - Name
      type: object
      properties:
        ID:
          type: integer
          format: int32
        Code:
          maxLength: 3
          minLength: 3
          type: string
        Name:
          maxLength: 30
          minLength: 1
          type: string
    PhoneNumberType:
      title: PhoneNumberType
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: HOM
        Name:
          maxLength: 40
          type: string
          example: Home
      description: Phone Number Type
    Port:
      title: Port
      required:
      - PortType
      - PortId
      type: object
      properties:
        PortType:
          allOf:
          - $ref: '#/components/schemas/PortType'
          - description: Port Type
        PortId:
          type: integer
          format: int32
          example: 1
    PortType:
      title: PortType
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: DGE
        Name:
          maxLength: 40
          type: string
          example: DGE Port
      description: Port Type
    PPVDenyReason:
      title: PPVDenyReason
      required:
      - Value
      - Text
      type: object
      properties:
        Value:
          type: integer
          format: int32
          example: 20
        Text:
          type: string
          example: Subscriber's PPV is Temporary disabled
    PropertyType:
      title: PropertyType
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: RES
        Name:
          maxLength: 40
          type: string
          example: Residential
      description: Property Type
    PTP:
      title: PTP
      required:
      - PTPDate
      - PTPAgingCategory
      - PTPAmount
      type: object
      properties:
        PTPDate:
          type: string
          description: PTP Date
          format: date
          example: 2020-12-12
        PTPAgingCategory:
          maxLength: 40
          type: string
          description: PTP Aging Category
          example: 31-60
        PTPAmount:
          type: number
          description: PTP Amount
          example: 10
      description: Promise-to-Pay (PTP) Information
    Reason:
      title: Reason
      type: object
      properties:
        Type:
          allOf:
          - $ref: '#/components/schemas/Type4'
          - description: Reason type
        Reason:
          allOf:
          - $ref: '#/components/schemas/Reason1'
          - description: Reason code
    Reason1:
      title: Reason1
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: '201'
        Name:
          maxLength: 40
          type: string
          example: Too expensive
      description: Reason code
    ReasonsResponse:
      title: ReasonsResponse
      type: object
      properties:
        Code:
          type: string
          description: Reason code
        Name:
          type: string
          description: Reason name
    Resolution:
      title: Resolution
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: '001'
        Name:
          maxLength: 40
          type: string
          example: Resolution 1
    SalesArea:
      title: SalesArea
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: DFT
        Name:
          maxLength: 40
          type: string
          example: Default Sales Area
      description: Sales Area
    SDStatus:
      title: SDStatus
      enum:
      - Active
      - Pending
      type: string
      description: Soft-Disconnect Status
    ServiceClassesResponse:
      title: ServiceClassesResponse
      type: object
      properties:
        Code:
          type: string
          description: Service class code
        Name:
          type: string
          description: Service class name
    ServiceClass:
      title: ServiceClass
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          description: Service Class Code
          example: VID
        Name:
          maxLength: 40
          type: string
          description: Service Class Name
          example: Video
    ServiceClass1:
      title: ServiceClass1
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          description: Service Class Code
          example: VID
        Name:
          maxLength: 40
          type: string
          description: Video
          example: HBO
    SoftDisconnect:
      title: SoftDisconnect
      required:
      - SDStatus
      - SDDate
      type: object
      properties:
        SDStatus:
          allOf:
          - $ref: '#/components/schemas/SDStatus'
          - description: Soft-Disconnect Status
        SDDate:
          type: string
          description: Soft-Disconnect Date
          format: date
          example: 2020-12-12
      description: Soft-Disconnect information
    Status:
      title: Status
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: RES
        Name:
          maxLength: 40
          type: string
          example: Residential
      description: Status
    SubscriberBalanceResponse:
      title: SubscriberBalanceResponse
      type: object
      properties:
        PaymentPlan:
          $ref: '#/components/schemas/PaymentPlan'
        LastBillAfterPayments:
          type: number
          description: Last bill amount after payments, a.k.a balance forward
          example: 13062.13
        CurrentBalance:
          type: number
          description: Current balance, equals to LastBillAfterPayments + NewActivity
          example: 19991.3
        NewActivity:
          type: number
          description: New activity in open cycle
          example: 6929.17
        CurrentAging30:
          type: number
          description: Current aging 30+
          example: 256.37
        CurrentAging60:
          type: number
          description: Current aging 60+
          example: 249.72
        CurrentAging90:
          type: number
          description: Current aging 90+
          example: 236.37
        CurrentAging120:
          type: number
          description: Current aging 120+
          example: 12319.67
        PastDueAmt:
          type: number
          description: Past Due Amount - a sum of  '31-60' + '61-90' +'>90' aging categories. Amount to pay to avoid NPD or Soft Disconnect aka Minimum Payment
          example: 12319.67
        CurrentBillDueDate:
          type: string
          description: Current Bill Due Date
          format: date
          example: 2020-11-01
        LastBillAmount:
          type: number
          description: Last Bill Amount
          example: 14690.5
        LastBillDate:
          type: string
          description: Last Bill Date
          format: date
          example: 2020-10-30
        BillFormIsSet:
          type: boolean
          description: Subscriber billing form is set
        LastCycleCloseDate:
          type: string
          description: Last Cycle Close Date
          format: date
          example: 2020-10-30
        LastPaymentAmount:
          type: number
          description: Last Payment Amount
          example: 99.99
        LastPaymentDate:
          type: string
          description: Last Payment Date
          format: date
          example: 2020-10-30
        LatePaymentAmount:
          type: number
          description: Late Payment Amount
          example: 1628.37
        MonthlyPPVCreditLimit:
          type: number
          description: Monthly PPV credit limit
          example: 100
        AvailPPVCreditLimit:
          type: number
          description: Available PPV credit limit
          example: 10.1
        PTP:
          allOf:
          - $ref: '#/components/schemas/PTP'
          - description: Promise-to-Pay (PTP) Information
    SubscriberBucketsResponse:
      title: SubscriberBucketsResponse
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: TVD
        Description:
          maxLength: 40
          type: string
          example: TV AND DATA
        Balance:
          type: number
          description: Negative value means credit (prepay subscribers/buckets should have enough credit to get services), positive value means debit (that is usual for post-paid subscribers/buckets)
          example: -2.34
    SubscriberEquipmentRefreshRequest:
      title: SubscriberEquipmentRefreshRequest
      required:
      - EquipmentID
      - PortTypeCode
      - PortId
      type: object
      properties:
        EquipmentID:
          type: string
          description: Equipment ID
        PortTypeCode:
          maxLength: 3
          minLength: 3
          type: string
          description: Port type code
          example: DGE
        PortId:
          type: integer
          description: Port ID
          format: int32
      description: Equipment Port object
    SubscriberEquipmentResponse:
      title: SubscriberEquipmentResponse
      required:
      - EquipmentID
      - Type
      - Make
      - Model
      - Status
      - HeadEnd
      - Hub
      - Refreshable
      - SingleFamilyUnit
      type: object
      properties:
        EquipmentID:
          maxLength: 45
          type: string
          description: Equipment ID
          example: '0000310770580'
        SecondaryID:
          maxLength: 45
          type: string
          description: Secondary ID
          example: '0000310770581'
        Serial:
          maxLength: 45
          type: string
          description: 'Serial #'
          example: GI1032TB70LO
        Type:
          allOf:
          - $ref: '#/components/schemas/Type2'
          - description: Equipment Type
        Make:
          allOf:
          - $ref: '#/components/schemas/Make'
          - description: Make (MFG Code)
        Model:
          allOf:
          - $ref: '#/components/schemas/Model'
          - description: Model
        Status:
          allOf:
          - $ref: '#/components/schemas/Status'
          - description: Status
        HeadEnd:
          allOf:
          - $ref: '#/components/schemas/HeadEnd'
          - description: Head End
        Hub:
          allOf:
          - $ref: '#/components/schemas/Hub'
          - description: Hub
        Location:
          allOf:
          - $ref: '#/components/schemas/Location'
          - description: Location
        Refreshable:
          type: boolean
          description: Equipment can be refreshed using refresh command
        SingleFamilyUnit:
          type: boolean
          description: Equipment belongs to single family
        Interfaces:
          type: array
          items:
            $ref: '#/components/schemas/Interface'
          description: Individual Interfaces for Hybrid/Multi-Interface Equipment, where chassis info is at the main object
        Ports:
          type: array
          items:
            $ref: '#/components/schemas/Port'
          description: Equipment ports for MTA and ONT equipment
    SubscriberPackagesResponse:
      title: SubscriberPackagesResponse
      required:
      - PackageCode
      - PackageName
      type: object
      properties:
        PackageCode:
          maxLength: 3
          minLength: 3
          type: string
          description: Package Code
          example: '015'
        PackageName:
          type: string
          description: Package Name
          example: HBO
        Price:
          type: number
          description: Price Including Discount
          example: 10
    SubscriberPackagesSisResponse:
      title: SubscriberPackagesSisResponse
      required:
      - Packages
      - Discounts
      - TaxesAndFees
      type: object
      properties:
        Packages:
          type: array
          items:
            $ref: '#/components/schemas/Package'
          description: ''
        Discounts:
          type: array
          items:
            $ref: '#/components/schemas/Discount'
          description: ''
        TaxesAndFees:
          type: array
          items:
            $ref: '#/components/schemas/TaxesAndFee'
          description: ''
    SubscriberPackagesSummaryResponse:
      title: SubscriberPackagesSummaryResponse
      type: object
      properties:
        RecurringCharges:
          type: number
          description: Recurring charges
        RecurringDiscounts:
          type: number
          description: Recurring discounts
        TimedBilling:
          type: number
          description: Timed billing
        TimedPromoDiscounts:
          type: number
          description: Timed promo discounts
        AfterDiscounts:
          type: number
          description: Monthly after discounts
        TotalTaxed:
          type: number
          description: Monthly with taxes
    SubscriberResponse:
      title: SubscriberResponse
      required:
      - Account
      - SubscriberStatus
      - SubscriberType
      - AccountName
      - Franchise
      type: object
      properties:
        Account:
          maxLength: 9
          minLength: 6
          type: string
          description: 'Subscriber Account #'
          example: '123456203'
        SubscriberStatus:
          allOf:
          - $ref: '#/components/schemas/SubscriberStatus'
          - description: Subscriber Status
        SubscriberType:
          allOf:
          - $ref: '#/components/schemas/SubscriberType'
          - description: Type (residential/commercial)
        AccountName:
          maxLength: 255
          type: string
          description: Account Name (first and last name when residential/the business name when commercial)
          example: Roxanne Hunn
        FirstName:
          maxLength: 40
          type: string
          description: Empty for commercial account type. Field is populated starting from BH v2.5.93.0
          example: Roxanne
        SecondName:
          maxLength: 20
          type: string
          description: Empty for commercial account type. Field is populated starting from BH v2.5.93.0
        LastName:
          maxLength: 80
          type: string
          description: Required for residential account type subscriber, empty for commercial type. Field is populated starting from BH v2.5.93.0
          example: Hunn
        PhoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
          description: ''
        BillingEmail:
          maxLength: 255
          type: string
          description: Billing email
          example: name@provider.com
        ServiceAddress:
          allOf:
          - $ref: '#/components/schemas/Home'
          - description: Service Address
        Franchise:
          allOf:
          - $ref: '#/components/schemas/Franchise'
          - description: Franchise
        TimeZone:
          allOf:
          - $ref: '#/components/schemas/TimeZone'
          - description: Subscriber Time Zone
        PaymentPlan:
          $ref: '#/components/schemas/PaymentPlan'
        PaymentTypes:
          type: array
          items:
            $ref: '#/components/schemas/PaymentType'
          description: Supported Payment Types. Field is populated starting from BH v2.5.93.0
        DOB:
          type: string
          description: DOB of the Subscriber
          format: date
          example: 1975-03-09
        WinScoreRiskFactor:
          type: string
          description: WinScore risk factor
          example: RiskFactor
        ParentAccounts:
          type: array
          items:
            $ref: '#/components/schemas/ParentAccount'
          description: Parent accounts
        ChildAccounts:
          type: array
          items:
            $ref: '#/components/schemas/ChildAccount'
          description: Child accounts
        SoftDisconnect:
          allOf:
          - $ref: '#/components/schemas/SoftDisconnect'
          - description: Soft-Disconnect information
        PINisSet:
          type: boolean
          description: Subscriber has PIN set for IVR access. Use ValidateSubPIN to validate
        CanOrderPPV:
          type: boolean
          description: Can order PPV
        PPVDenyReason:
          $ref: '#/components/schemas/PPVDenyReason'
        InOutageArea:
          type: boolean
          description: In Outage Area
        ActiveOutages:
          type: array
          items:
            $ref: '#/components/schemas/OutageDetails'
          description: Details on each active outage
    SubscriberSearchResponse:
      title: SubscriberSearchResponse
      required:
      - Account
      - AccountName
      - ServiceAddress
      type: object
      properties:
        Account:
          maxLength: 9
          minLength: 6
          pattern: ^[0-9]+
          type: string
          description: 'Subscriber Account #'
          example: '123456203'
        AccountName:
          maxLength: 255
          type: string
          description: Account Name (first and last name when residential/the business name when commercial)
          example: Roxanne Hunn
        ServiceAddress:
          maxLength: 765
          type: string
          description: Service Address
          example: 721 Kimball Terrace San Ysidro CA 94636-9101
    SubscriberTransactionsLastResponse:
      title: SubscriberTransactionsLastResponse
      required:
      - Type
      - Date
      - Amount
      type: object
      properties:
        Type:
          allOf:
          - $ref: '#/components/schemas/Type1'
          - description: Transaction Type
        Date:
          type: string
          description: Transaction Date
          format: date
          example: 2020-12-12
        Amount:
          type: number
          description: Transaction Amount
    SubscriberWorkOrdersLastResponse:
      title: SubscriberWorkOrdersLastResponse
      required:
      - WOnumber
      - WOStatus
      - CreatedBy
      - CreatedWhen
      - WOType
      - ScheduledDate
      type: object
      properties:
        WOnumber:
          maxLength: 20
          type: string
          description: WO number
          example: '2147486937'
        WOStatus:
          allOf:
          - $ref: '#/components/schemas/WOStatus'
          - description: WO Status
        CreatedBy:
          allOf:
          - $ref: '#/components/schemas/CreatedBy'
          - description: Created By
        CreatedWhen:
          type: string
          description: Created Date/Time
          format: date-time
        WOType:
          allOf:
          - $ref: '#/components/schemas/WOType'
          - description: Work Type/Service Type
        ScheduledDate:
          type: string
          description: Scheduled Date
          format: date
        ScheduledPeriod:
          $ref: '#/components/schemas/WorkOrderPeriod'
        Technician:
          allOf:
          - $ref: '#/components/schemas/Technician'
          - description: Technician
        ClosedBy:
          allOf:
          - $ref: '#/components/schemas/ClosedBy'
          - description: Closed By
        Reasons:
          type: array
          items:
            $ref: '#/components/schemas/Reason'
          description: ''
          example:
          - type: Initial
            Reason:
              Code: '201'
              Name: Too expensive
          - type: Secondary
            Reason:
              Code: '202'
              Name: Slow Speed
          - type: Secondary
            Reason:
              Code: '203'
              Name: Can't afford
          - type: Final
            Reason:
              Code: '204'
              Name: Downgrade
    SubscriberStatus:
      title: SubscriberStatus
      required:
      - Code
      - Name
      - BaseCustStatus
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: ACT
        Name:
          maxLength: 40
          type: string
          example: Active
        BaseCustStatus:
          allOf:
          - $ref: '#/components/schemas/BaseCustStatus'
          - description: "Value | Description \n ---------|---------- \n173 | Active\n174 | Inactive\n177 | Inactive Written Off\n237 | Inactive Collections"
      description: Subscriber Status
    SubscriberType:
      title: SubscriberType
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: RES
        Name:
          maxLength: 40
          type: string
          example: Residential
      description: Type (residential/commercial)
    TaxesAndFee:
      title: TaxesAndFee
      type: object
      properties:
        ServiceClass:
          $ref: '#/components/schemas/ServiceClass'
        Code:
          maxLength: 3
          minLength: 3
          type: string
          description: Tax/Fee Code
          example: CTX
        Name:
          maxLength: 40
          type: string
          description: Tax/Fee Name
          example: City Sales Tax
        Amount:
          type: number
          description: Amount
          example: 10
    Technician:
      title: Technician
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: 1VD
        Name:
          maxLength: 255
          type: string
          example: John Black
      description: Technician
    TechRegion:
      title: TechRegion
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: TRD
        Name:
          maxLength: 40
          type: string
          example: Default Tech Region
      description: Tech Region
    TimeZone:
      title: TimeZone
      required:
      - ID
      - BIAS
      - Name
      - Description
      type: object
      properties:
        ID:
          type: integer
          description: Time zone ID
          format: int32
          example: 75
        BIAS:
          type: integer
          description: Time zone BIAS
          format: int32
          example: 480
        Name:
          maxLength: 40
          type: string
          description: Time zone name
          example: Pacific Standard Time (Mexico)
        Description:
          maxLength: 40
          type: string
          description: Time zone description
          example: (UTC-08:00) Baja California
      description: Subscriber Time Zone
    Type:
      title: Type
      enum:
      - Franchise
      - Headend
      - Hub
      - Node
      - Subscriber
      - EquipmentID
      - EquipmentSerial
      - PhoneNumber
      type: string
      description: 1. Franchise - franchise codes. 2. Headend - head end codes. 3. Hub - hub codes. 4. Node - node codes. 5. Subscriber - subscriber account numbers. 6. EquipmentID and EquipmentSerial - values without masks. 7. PhoneNumber - full phone number including country code.
    Type1:
      title: Type1
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: ADJ
        Name:
          maxLength: 40
          type: string
          example: Adjustment
      description: Transaction Type
    Type2:
      title: Type2
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: CVT
        Name:
          maxLength: 40
          type: string
          example: Converter
      description: Equipment Type
    Type4:
      title: Type4
      enum:
      - Initial
      - Secondary
      - Final
      type: string
      description: Reason type
    TYPE5:
      title: TYPE5
      enum:
      - cancel
      - outage
      type: string
    VoIPRateCenter:
      title: VoIPRateCenter
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: DRC
        Name:
          maxLength: 40
          type: string
          example: Default
      description: VoIP Rate Center
    WOStatus:
      title: WOStatus
      enum:
      - Open
      - Closed
      - Suspended
      - Canceled
      type: string
      description: WO Status
    WOType:
      title: WOType
      required:
      - Code
      - Name
      type: object
      properties:
        Code:
          maxLength: 3
          minLength: 3
          type: string
          example: COS
        Name:
          maxLength: 40
          type: string
          example: Change of Service
        BaseType:
          $ref: '#/components/schemas/BaseType'
      description: Work Type/Service Type
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
security: []
tags:
- name: Subscriber
  description: Customer/Subscriber Information
- name: Equipment
  description: Integrators want to perform actions on equipment that CSR’s can perform in BroadHub to reduce the need of swivel chair for operators that manage subscribers in a CRM or ticketing system, and reduce the need for a subscriber to talk to a CSR to perform the equipment actions when calling into an operators Interactive Voice Response (IVR) system.
- name: Home
  description: Homes Passed Information
- name: Work Orders
  description: Integrators want the ability to reschedule and cancel work orders to reduce the need of swivel chair for operators that manage subscribers in a CRM or ticketing system, and reduce the need for a subscriber to talk to a CSR to reschedule or cancel a work order when calling into an operators IVR system. Work Order types will need to be configurable in BroadHub to which types can be rescheduled and/or canceled via this API.
- name: Outages
  description: 'Integrators want the ability to declare or cancel an outage in BroadHub to reduce the need of swivel chair for operators that manage subscribers in a CRM or ticketing system. Some integrators will be the source of the outage information, so the ability to automatically pass that information to BroadHub eliminates someone manually having to create or cancel an outage in BroadHub. BroadHub will need to be able to create outages based on a subscriber BroadHub account # or list of subscribers BroadHub account #’s and provide a unique identifier for the outage created back to the integrator so that integrator can later update or cancel the outage if needed using the unique identifier.'
- name: Other
  description: Access other data
