# Change Control
# ===============
# Version    Date        Author                 Change Description
# 1.0.0      05/04/2022  Viswanathan Kandasamy  NGN R0 release (NH OAS is taken as base):
#   1. Added query parameter productOffering.name in numberCollection and order GET API
#   2. Added customerOwned parameter in GET numberCollection and POST numberCollectionReservation, added numberCategory in  numberCollectionReservation API.
#   3. Added enum values in productOfferingType and allowedNumberCategory
#   4. Added reservationId in getOrderNumberCollection definition
# 1.0.1     13/06/2022  Viswanathan Kandasamy   numberCollectionActivation changes
#   1. Added tariffId, numberCategory, revenueShareBCN, purchaseOrderNumber, customerOwned, isDirectoryServiceRequired, isDSAddressSameAsEndCustomerAddress and functionalCategory
#   2. Added telephoneNumber, mobileNumber, emailAddress, fax and vatNumber in endCustomerDetails
#   3. Addedd addressProof with child parameters
#   4. Added routingDetails with child parameters
# 1.0.1     26/06/2022  Viswanathan Kandasamy   R1 changes
#   1. Added numberCategory and customerOwned in numberCollectionReservationCancelation
#   2. Added tariffId query parameter in GET numberCollection
#   3. Added routingDetails in GET order response
#   4. Changed the query parametr productOffering.name to productOffering in GET numberCollection and GET order
# 1.0.1     13/07/2022  Viswanathan Kandasamy R1 changes 
#   1. Added optional field noReplyTimer in numberCollectionActivation API
#   2. Added mandatory object resellerContact in activationRelatedPartyType of numberCollectionActivation API
#   3. Removed extra "i" in additionalIinstructions parameter
# 1.0.1     04/08/2022  Viswanathan Kandasamy R1 changes 
#   1. Added orderRef in GET /order response to retrun VOD order Id
# 1.0.1     16/08/2022  Viswanathan Kandasamy R1 changes
#   1. Added resellerContact in getOrderRelatedPartyType definition
#   2. Addred addressProofDocumentType object with fileNameType and fileContentType
# 1.0.2     05/09/2022  Viswanathan Kandasamy R2 changes
#   1. Added POST method "numberCollectionUpdateCustomerDetails"
# 1.0.2     31/10/2022  Viswanathan Kandasamy R2 changes
#   1. Removed endCustomerName, firstName, lastName, advertisementFlag, keepCurrentSettings and importAndCease from directoryServicesDetails
#   2. Added cifNIF in endCustomerDetails
# 1.0.2     22/11/2022  Viswanathan Kandasamy R2 changes
#   1. Added "APIKeyAuth" security scheme
# 1.0.3     05/12/2022  Viswanathan Kandasamy R3 changes
#   1. Added "postBox" in address
#   1. Added publicationFormat, publicationArea, publicationDistrict, delocalizedList, firstNameInitialList, antiProspectingList, reverseAntiLookupList in directoryServicesDetails
# 1.0.3     10/01/2023  Viswanathan Kandasamy R3 changes
#   1. Updated the security schemes OAuth to BearerAuth
# 1.0.3     18/01/2023  Viswanathan Kandasamy R3 changes
#   1. Added ddiFlag in numberCollectionActivation request body
#   2. Added example values for parameters
# 1.0.3     18/01/2023  Viswanathan Kandasamy R3 changes
#   1. Added postalCode query parameter in /numberCollectionActivation GET request
# 1.0.3     07/02/2023  Viswanathan Kandasamy R3 changes
#   1. Added tariffId in numberCollectionReservation request
#   2. Changed "date" to "createdDate" and added "updatedDate", "clientId" in /order GET response
# 1.0.3     20/02/2023  Viswanathan Kandasamy R3 changes
#   1. Added locality and county in endCustomerAddress and dsuAddress object
#   2. Updated directoryListingOptionsType with additinal enum values
#   3. Added maxlength and regex for coltCVP and providedCVP
#   4. Added directoryPublishSection and directMarketingPreference
#   5. Added usageType query param in GET /numberCollection
# 1.0.3     30/03/2023  Viswanathan Kandasamy R3 changes
#   1. Added announcementName enum values for R3 countries (AT, CH, DK, SE, PT, IE) and changed the security scheme name reference
# 1.0.3     04/04/2023  Viswanathan Kandasamy R3 changes
#   1. Changed “basicDirectoryEntry”, “directSalesMarketingEntry”, “secretListing” and “directMarketingPreference“ type from “Y/N” to “Yes/No”. Added enum values for "publicationFormat". Added endCustomerName, firstName and lastName in directoryServicesDetailType
#   2. Added announcementName enum values DE
#   3. Removed "Shared resources" enum value in usageType
#   4. Added "routingDetails" object as mandatory in activationNumberCollection definition
# 1.0.3     30/05/2023  Viswanathan Kandasamy R3 changes
#   1. Removed directoryPublishSection
# 1.0.4     08/05/2024 Prodyot Sen ## Usage Type & Subassignment attribute removed due to ES reseller suballocation regulatory project
# 1.0.5     15/05/2024 Sathish Kumar Podishetty EDB AT Changes in R16
#      1. Updated streetNameType length from 70 to 80.
#      2. Updated buildingNumberType length from 10 to 20.
#      3. Added new fields block,stairs and doorNumber in addressSchema type.
#      4. Added new field isFaxNumber in directoryServicesDetailType
#      5. Updated lastNameType length from 120 to 250
#      6. Updated customerNameType length from 120 to 250
#      7. Updated additionalInstructions length from 250 to 500
#      8. Added a new Enumeration value "Mixed" in CustomerType.
# 1.0.6     23/10/2024 Sathish Kumar Podishetty EDB PT Changes in R18
#      1. Added new fields room and unit in addressSchema type
#      2. Updated floorNumber length from 10 to 11
# 1.0.7     04/02/2025 Sathish Kumar Podishetty EDB PT Changes in R18
#      1. Updated room length from 10 to 15
# 1.0.8     13/05/2025 Sathish Kumar Podishetty EDB DK Changes in R20
#      1. Added new field secretOmittedMarking, furtherUsageConsentIndicator and furtherUsageConsentText in directoryServicesDetailType
openapi: 3.0.0
info:
  title: Number Management
  version: 1.0.8
  description: >-
    The Number Management API provides client interface for managing IN voice
    services. The API supports capability to perform number enquiry, number
    reservation, number activation, cancel number reservation, query order
    details etc.
  contact:
    name: Colt Reseller Support Voice
    email: ResellerSupport.Voice@colt.net
servers:
  - url: https://sit.apis.colt.net/numberManagement/inbound/v1
    description: Test server
security:
  - AccessToken: []
  - APIKey: []
tags:
  - name: number collection
  - name: number collection reservation
  - name: number collection reservation cancellation
  - name: number collection activation
  - name: order details
  - name: end customer details
paths:
  /numberCollection:
    get:
      tags:
        - number collection
      description: >-
        API to get list of free numbers and number inventory details (list of
        number, number status)
      parameters:
        - name: APIGWTrackingId
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/APIGWTrackingIdType'
        - name: productOffering
          in: query
          schema:
            $ref: '#/components/schemas/allowedProductOfferingNames'
        - name: customerOwned
          in: query
          schema:
            $ref: '#/components/schemas/booleanType'
        - name: numberType
          in: query
          schema:
            $ref: '#/components/schemas/allowedNumberTypes'
        - name: numberCategory
          in: query
          schema:
            $ref: '#/components/schemas/allowedNumberCategory'
        - name: relatedParty.reseller.serviceProfile
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/serviceProfileType'
        - name: relatedParty.endCustomerDetails.customerReference
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/customerRefType'
        - name: startFullNumber
          in: query
          schema:
            $ref: '#/components/schemas/E164NumberType'
        - name: endFullNumber
          in: query
          schema:
            $ref: '#/components/schemas/E164NumberType'
        - name: blockSize
          in: query
          schema:
            type: integer
            minimum: 1
        - name: quantity
          in: query
          schema:
            type: integer
            minimum: 1
        - name: resourceStatus
          in: query
          schema:
            $ref: '#/components/schemas/numberStatusType'
        - name: order.id
          in: query
          schema:
            $ref: '#/components/schemas/orderIdType'
        - name: areaCode
          in: query
          schema:
            $ref: '#/components/schemas/areaCodeType'
        - name: areaCodeExtension
          in: query
          schema:
            $ref: '#/components/schemas/areaCodeExtnType'
        - name: postalCode
          in: query
          schema:
            $ref: '#/components/schemas/postalZipCodeType'         
        - name: province
          in: query
          schema:
            $ref: '#/components/schemas/provinceType'
        - name: department
          in: query
          schema:
            $ref: '#/components/schemas/departmentBranchType'
        - name: cityTown
          in: query
          schema:
            $ref: '#/components/schemas/cityTownType'
        - name: tariffId
          in: query
          schema:
            $ref: '#/components/schemas/tariffType'
      responses:
        '200':
          description: Success
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/numberCollectionList'
        '400':
          description: Bad Request
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '406':
          description: Not Acceptable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Payload Too Large
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported Media Type
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service Unavailable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Gateway Timeout
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /numberCollectionReservation:
    post:
      tags:
        - number collection reservation
      description: >-
        Allows you to add number in stock without endcustomer assignment nor
        network configuration. Number will be reserved for 90 calendar days, and
        then shift back to free pool
      parameters:
        - name: APIGWTrackingId
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/APIGWTrackingIdType'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/reserveNumberCollection'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/asyncResponseType'
          headers:
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
        '400':
          description: Bad Request
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '406':
          description: Not Acceptable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Payload Too Large
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported Media Type
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service Unavailable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Gateway Timeout
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /numberCollectionReservationCancellation:
    post:
      tags:
        - number collection reservation cancellation
      description: Allows you to return back to Colt reserved number
      parameters:
        - name: APIGWTrackingId
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/APIGWTrackingIdType'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cancelNumberCollection'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/asyncResponseType'
          headers:
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
        '400':
          description: Bad Request
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '406':
          description: Not Acceptable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Payload Too Large
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported Media Type
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service Unavailable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Gateway Timeout
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /numberCollectionActivation:
    post:
      tags:
        - number collection activation
      description: >-
        Allows you to assign number to an endcustomer and activate on Colt
        network
      parameters:
        - name: APIGWTrackingId
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/APIGWTrackingIdType'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/activationNumberCollection'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/asyncResponseType'
          headers:
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
        '400':
          description: Bad Request
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '406':
          description: Not Acceptable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Payload Too Large
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported Media Type
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service Unavailable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Gateway Timeout
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /order/{orderId}:
    get:
      tags:
        - order details
      description: Allows you to get details for a specific order
      parameters:
        - name: orderId
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/orderIdType'
        - name: APIGWTrackingId
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/APIGWTrackingIdType'
        - name: serviceProfile
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/serviceProfileType'
        - name: productOffering
          in: query
          schema:
            $ref: '#/components/schemas/allowedProductOfferingNames'
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getOrderDetailsOrder'
        '400':
          description: Bad Request
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '406':
          description: Not Acceptable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Payload Too Large
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported Media Type
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service Unavailable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Gateway Timeout
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /numberCollectionUpdateCustomerDetails:
    post:
      tags:
        - end customer details
      description: 'To update address of activated numbers '
      parameters:
        - name: APIGWTrackingId
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/APIGWTrackingIdType'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/updateCustomerDetailsNumberCollection'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/asyncResponseType'
          headers:
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
        '400':
          description: Bad Request
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method Not allowed
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '406':
          description: Not Acceptable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Payload Too Large
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported Media Type
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service Unavailable
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Gateway Timeout
          headers:
            Content-Type:
              schema:
                type: string
                enum:
                  - application/json
            APIGWExceptionSystem:
              schema:
                type: string
                enum:
                  - APIGW
            APIGWExceptionCode:
              schema:
                type: string
            APIGWTrackingId:
              description: Id to track the request end to end
              schema:
                $ref: '#/components/schemas/APIGWTrackingIdType'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  securitySchemes:
    AccessToken:
      type: http
      description: JWT Access Token for Authentication
      scheme: bearer
      bearerFormat: JWT
    APIKey:
      type: apiKey
      description: API Key of registered App in API Gateway
      in: header
      name: x-apikey
  schemas:
    APIGWTrackingIdType:
      type: string
      description: Unique identifier for the transaction
      example: abcd456e-d45645-dfaafda-1232345667dd
      pattern: ^[a-zA-Z0-9_.~:@-]{1,255}$
    allowedNumberTypes:
      description: Type of number to indicate geo/non-geo numbers
      type: string
      enum:
        - Geo
        - Non Geo
    allowedNumberCategory:
      type: string
      description: Category of number to VOIP
      enum:
        - IPGEO
        - VOIP
        - Normal
        - IPGEO Single
        - IPGEO Range
        - UK WIDE (Any Users)
        - UK WIDE (Public Services & Not for Profit)
        - Premium Rate
        - Shared Cost
        - Freephone
        - National Rate
        - Full Rate
        - IN Geo
    serviceProfileType:
      type: string
      description: service profile associated with customer request
      maxLength: 5
      example: ASE
    coltOperatingCountryList:
      type: string
      enum:
        - GB
        - ES
        - FR
        - DE
        - AT
        - BE
        - NL
        - IE
        - IT
        - SE
        - DK
        - PT
        - CH
        - CZ
        - 'NO'
        - RO
        - PL
        - FI
        - LU
        - SK
    countryCodeList:
      type: string
      enum:
        - AT
        - BE
        - BG
        - CH
        - CY
        - CZ
        - DE
        - DK
        - EE
        - ES
        - FI
        - FR
        - GB
        - GR
        - HR
        - HU
        - IE
        - IS
        - IT
        - LI
        - LT
        - LU
        - LV
        - MT
        - NL
        - 'NO'
        - PL
        - PT
        - RO
        - SE
        - SI
        - SK
    phoneNumberType:
      type: string
      pattern: ^[+]{1}[0-9]{6,20}$
      example: +442033535807
    vatNumberType:
      type: string
      pattern: ^[A-Z0-9]*$
      minLength: 5
      maxLength: 20
      example: DE123456789
    cifNIFType:
      type: string
      maxLength: 20
      example: B12345678
    coltCVPType:
      type: string
      maxLength: 12
      pattern: ^[78]{2}[0-9]{1}[0-9]{4}[0-9A-Z]{5}$
      example: 87112341A2B3
    providedCVPType:
      type: string
      maxLength: 12
      pattern: (?:^[0-9A-Za-z]{7}[0-9A-Za-z]{4}[0-9]{1}$)
      example: 123456712341      
    companyRegistrationNumberType:
      type: string
      maxLength: 20
      example: BE1234567890
    cvoipPhoneNumberType:
      type: string
      pattern: ^[a-zA-Z0-9]*$
      minLength: 6
      maxLength: 20
      example: CB784657890
    streetTypeSchema:
      type: string
      maxLength: 50
      example: Avenue
    provinceType:
      type: string
      maxLength: 50
      example: Bavaria
    customerRefType:
      type: string
      maxLength: 50
      example: ASG1234567890
    addressExtensionType:
      type: string
      maxLength: 50
      example: 500
    blockType:
      type: string
      maxLength: 3
      example: 2
    stairsType:
      type: string
      maxLength: 3
      example: 2
    doorNumberType:
      type: string
      maxLength: 4
      example: 2
    unitType:
      type: string
      maxLength: 10
      example: 2
    roomType:
      type: string
      maxLength: 15
      example: 2
    localityType:
      type: string
      maxLength: 50
      example: Landungsbruken      
    subLocalityType:
      type: string
      maxLength: 50
      example: Dom Square
    countyType:
      type: string
      maxLength: 15
      example: Bristol      
    asyncResponseType:
      type: object
      properties:
        order:
          type: object
          properties:
            id:
              $ref: '#/components/schemas/orderIdType'
            href:
              type: string
              example: >-
                https://apigw-uat.colt.net/numberCollection/v1/numberCollectionOperation
    clientIdType:
      type: string
      maxLength: 25
      example: C5001
    customerNameType:
      type: string
      maxLength: 250
      example: Peter Scot
    lastNameType:
      type: string
      maxLength: 250
      example: Scot      
    customerTypeSchema:
      type: string
      enum:
        - Business
        - Residential
        - Mixed
    billingAccountNumberType:
      type: string
      maxLength: 255
      example: 465189090
    stringLen16Type:
      type: string
      maxLength: 16
      example: Sample
    stringLen20Type:
      type: string
      maxLength: 20
      example: Sample
    stringLen50Type:
      type: string
      maxLength: 50
      example: Sample
    stringLen100Type:
      type: string
      maxLength: 100
      example: Sample
    stringLen200Type:
      type: string
      maxLength: 200
      example: Sample
    stringLen250Type:
      type: string
      maxLength: 250
      example: Sample
    stringLen255Type:
      type: string
      maxLength: 255
      example: Sample
    stringLen500Type:
      type: string
      maxLength: 500
      example: Sample
    booleanType:
      type: boolean
      example: true
    emailFormat:
      type: string
      example: john.deo@gmail.com
    listingLanguageType:
      type: string
      enum:
        - NL
        - FR
        - DE
        - D
        - F
        - I
        - E
    dlUsageTypeList:
      type: string
      enum:
        - 1-Telephone
        - 2-SemiAutomaticFax
        - 3-AutomaticFax
    yesNoType:
      type: string
      enum:
        - 'Yes'
        - 'No'
    directoryListingOptionsType:
      type: string
      enum:
        - No consent
        - Full Address consent, no Reverse
        - Partial Address consent, no Reverse
        - Full Address consent, with Reverse
        - Partial Address consent, with Reverse
        - Listed
        - Unlisted
        - ExDirectory
    confidentialityFlagType:
      type: string
      enum:
        - n-notconfidential
        - c-totallyconfidential
        - m-confidentialaddress
    confidentialityOtherFlagType:
      type: string
      enum:
        - n-notconfidential
        - c-totallyconfidential
        - m-confidentialaddress
    confidentialityReverseSearchType:
      type: string
      enum:
        - n-not_opposed_reversesearch
        - s-opposed_reversesearch
    subscriptionCategoryIndexType:
      type: string
      enum:
        - 00-PrivateCustomerCategory
        - 01-CompanyCustomerCategory
        - 02-SemiPublicCustomerCategory
        - 03-PublicCustomerCategory
    nameType:
      type: string
      maxLength: 60
      example: Michael
    registeredNameType:
      type: string
      maxLength: 120
      example: Infinite Corp
    addressSchema:
      type: object
      properties:
        floorNumber:
          $ref: '#/components/schemas/floorSuiteType'
        houseNumber:
          $ref: '#/components/schemas/buildingNumberType'
        houseNumberExtension:
          $ref: '#/components/schemas/addressExtensionType'
        block:
          $ref: '#/components/schemas/blockType'
        stairs:
          $ref: '#/components/schemas/stairsType'
        doorNumber:
          $ref: '#/components/schemas/doorNumberType'
        unit:
          $ref: '#/components/schemas/unitType'
        room:
          $ref: '#/components/schemas/roomType'
        buildingName:
          $ref: '#/components/schemas/buildingNameType'
        department:
          $ref: '#/components/schemas/departmentBranchType'
        streetName:
          $ref: '#/components/schemas/streetNameType'
        municipality:
          $ref: '#/components/schemas/municipalityNameType'
        city:
          $ref: '#/components/schemas/cityTownType'
        postalCode:
          $ref: '#/components/schemas/postalZipCodeType'
        postBox:
          $ref: '#/components/schemas/postBoxType'
        streetType:
          $ref: '#/components/schemas/streetTypeSchema'
        locality:
          $ref: '#/components/schemas/localityType'
        subLocality:
          $ref: '#/components/schemas/subLocalityType'
        county:
          $ref: '#/components/schemas/countyType'
        province:
          $ref: '#/components/schemas/provinceType'
        country:
          $ref: '#/components/schemas/countryCodeList'
        addressID:
          $ref: '#/components/schemas/stringLen20Type'
    endCustomerLanguageType:
      type: string
      enum:
        - NL
        - FR
        - DE
        - EN
    floorSuiteType:
      type: string
      maxLength: 11
      example: 10 
    buildingNumberType:
      type: string
      maxLength: 20
      example: A55
    buildingNameType:
      type: string
      maxLength: 55
      example: Lilly Court
    departmentBranchType:
      type: string
      maxLength: 50
      example: Operations
    streetNameType:
      type: string
      maxLength: 80
      example: King Street
    municipalityNameType:
      type: string
      maxLength: 50
      example: Columbus Fort
    cityTownType:
      type: string
      maxLength: 50
      example: Hamburg
    postalZipCodeType:
      type: string
      maxLength: 10
      example: A1V60G
    postBoxType:
      type: string
      maxLength: 5
      example: 1055
    areaCodeType:
      type: string
      pattern: ^[0-9]{1,6}$
      example: 3270
    areaCodeExtnType:
      type: string
      pattern: ^[0-9]{0,6}$
      example: 222
    resellerType:
      type: object
      required:
        - serviceProfile
      properties:
        serviceProfile:
          $ref: '#/components/schemas/serviceProfileType'
    orderResellerType:
      type: object
      required:
        - serviceProfile
      properties:
        serviceProfile:
          $ref: '#/components/schemas/serviceProfileType'
        country:
          $ref: '#/components/schemas/coltOperatingCountryList'
    subResellerType:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/subResellerIDType'
    enqueryRelatedPartyType:
      type: object
      required:
        - reseller
      properties:
        reseller:
          $ref: '#/components/schemas/resellerType'
        subReseller:
          $ref: '#/components/schemas/subResellerType'
        endCustomerDetails:
          $ref: '#/components/schemas/enqueryEndCustomerDetailsType'
    reserveRelatedPartyType:
      type: object
      required:
        - reseller
      properties:
        reseller:
          $ref: '#/components/schemas/resellerType'
        endCustomerDetails:
          $ref: '#/components/schemas/reserveEndCustomerDetailsType'
    cancelRelatedPartyType:
      type: object
      required:
        - reseller
      properties:
        reseller:
          $ref: '#/components/schemas/resellerType'
    activationRelatedPartyType:
      type: object
      required:
        - reseller
        - resellerContact
      properties:
        reseller:
          $ref: '#/components/schemas/resellerType'
        resellerContact:
          $ref: '#/components/schemas/resellerContactType'
        subReseller:
          $ref: '#/components/schemas/subResellerType'
        endCustomerDetails:
          $ref: '#/components/schemas/activationEndCustomerDetailsType'
    getOrderRelatedPartyType:
      type: object
      required:
        - endCustomerDetails
      properties:
        reseller:
          $ref: '#/components/schemas/orderResellerType'
        resellerContact:
          $ref: '#/components/schemas/resellerContactType'
        subReseller:
          $ref: '#/components/schemas/subResellerType'
        endCustomerDetails:
          $ref: '#/components/schemas/orderEndCustomerDetailsType'
    resellerContactType:
      type: object
      required:
        - firstName
        - lastName
        - phoneNumber
        - emailAddress
      properties:
        firstName:
          $ref: '#/components/schemas/nameType'
        lastName:
          $ref: '#/components/schemas/lastNameType'
        phoneNumber:
          $ref: '#/components/schemas/phoneNumberType'
        emailAddress:
          $ref: '#/components/schemas/emailFormat'
    routingDetailsType:
      type: object
      required:
        - routingType
      properties:
        routingType:
          $ref: '#/components/schemas/allowedRoutingType'
        destinationNumber:
          $ref: '#/components/schemas/basicCliDetailsType'
        cvoipNumber:
          $ref: '#/components/schemas/cvoipNumberDetailsType'
        announcementName:
          $ref: '#/components/schemas/announcementNameType'
    allowedRoutingType:
      type: string
      enum:
        - SIP Interconnect
        - Destination
        - Announcement
    fileNameType:
      type: string
      maxLength: 255
      example: TermsAndConditions.pdf
    fileContentType:
      type: string
    E164NumberType:
      type: string
      pattern: ^[+]{1}[0-9]{2,13}$
      example: '+442081324758'
    numberStatusType:
      type: string
      maxLength: 50
      enum:
        - Free
        - Reservation Pending
        - Reserved
        - Allocated
        - Reallocated
        - Activated
        - PortIn_Reserved
        - PortIn_Allocated
        - PortIn_Activated
        - PortOut
        - Returned
        - Quarantined
        - PortIn_Quarantined
        - Transferred
        - PortIn_Reallocated
        - Returned_to_Partner
        - Quarantined_Awaiting_Reservation
        - All
    dateFormat:
      type: string
      format: date
      description: date time in ISO 8601 format
      example: '2019-05-17'
    orderIdType:
      type: string
      pattern: ^[A-Za-z0-9-]{1,36}$
    purchaseOrderNumberType:
      type: string
      pattern: ^[A-Za-z0-9-]{1,36}$
    userNameType:
      type: string
    subResellerIDType:
      type: string
    orderTypeSchema:
      type: string
      enum:
        - New
        - Cease
        - Amend
    directoryServicesDetailType:
      type: object
      properties:
        orderType:
          $ref: '#/components/schemas/orderTypeSchema'
        customerType:
          $ref: '#/components/schemas/customerTypeSchema'
        endCustomerName:
          $ref: '#/components/schemas/customerNameType'
        firstName:
          $ref: '#/components/schemas/nameType'
        lastName:
          $ref: '#/components/schemas/lastNameType'
        businessSuffix:
          $ref: '#/components/schemas/stringLen100Type'
        businessDescription:
          $ref: '#/components/schemas/stringLen100Type'
        subHeader:
          $ref: '#/components/schemas/stringLen50Type'
        subSubHeader:
          $ref: '#/components/schemas/stringLen50Type'
        subSubSubHeader:
          $ref: '#/components/schemas/stringLen50Type'
        qualifier:
          $ref: '#/components/schemas/stringLen50Type'
        dsuAddress:
          $ref: '#/components/schemas/addressSchema'
        telephoneNumber:
          $ref: '#/components/schemas/E164NumberType'
        lineType:
          $ref: '#/components/schemas/allowedLineType'
        entryType:
          $ref: '#/components/schemas/allowedEntryType'
        tariff:
          $ref: '#/components/schemas/tariffType'
        listingCategory:
          $ref: '#/components/schemas/allowedListingCategory'
        typeFace:
          $ref: '#/components/schemas/allowedTypeFaceType'
        priority:
          $ref: '#/components/schemas/allowedPriority'
        listingType:
          $ref: '#/components/schemas/allowedListingType'
        additionalInstructions:
          $ref: '#/components/schemas/stringLen500Type'
        companyRegistrationNumber:
          $ref: '#/components/schemas/companyRegistrationNumberType'
        companyEmailAddress:
          $ref: '#/components/schemas/emailFormat'
        apeOrNAFCode:
          $ref: '#/components/schemas/apeOrNAFCodeType'
        listingLanguage:
          $ref: '#/components/schemas/listingLanguageType'
        usageType:
          $ref: '#/components/schemas/dlUsageTypeList'
        publishInDirectory:
          $ref: '#/components/schemas/yesNoType'
        searchOnTelephoneOnly:
          $ref: '#/components/schemas/yesNoType'
        allowAdvertisingEmails:
          $ref: '#/components/schemas/yesNoType'
        allowAdvertisingCalls:
          $ref: '#/components/schemas/yesNoType'
        basicDirectoryEntry:
          $ref: '#/components/schemas/yesNoType'
        directSalesMarketingEntry:
          $ref: '#/components/schemas/yesNoType'
        secretListing:
          $ref: '#/components/schemas/yesNoType'
        directoryListingOptions:
          $ref: '#/components/schemas/directoryListingOptionsType'
        directMarketingPreference:
          $ref: '#/components/schemas/yesNoType'        
        confidentialityFlag:
          $ref: '#/components/schemas/confidentialityFlagType'
        confidentialityOtherFlag:
          $ref: '#/components/schemas/confidentialityOtherFlagType'
        confidentialityReverseSearch:
          $ref: '#/components/schemas/confidentialityReverseSearchType'
        informationServices:
          $ref: '#/components/schemas/yesNoType'
        subscriptionCategoryIndex:
          $ref: '#/components/schemas/subscriptionCategoryIndexType'
        electronicDirectory:
          $ref: '#/components/schemas/yesNoType'
        numberMasking:
          $ref: '#/components/schemas/yesNoType'
        oldTelephoneNumber:
          $ref: '#/components/schemas/E164NumberType'
        fiscalCode:
          $ref: '#/components/schemas/stringLen16Type'
        amalgamateWithVAT:
          $ref: '#/components/schemas/yesNoType'
        publicationFormat:
          $ref: '#/components/schemas/publicationFormatType'
        publicationArea:
          $ref: '#/components/schemas/publicationAreaType'
        publicationDistrict:
          $ref: '#/components/schemas/publicationDistrictType'
        delocalizedList:
          $ref: '#/components/schemas/yesNoType'
        firstNameInitialList:
          $ref: '#/components/schemas/yesNoType'
        antiProspectingList:
          $ref: '#/components/schemas/yesNoType'
        reverseAntiLookupList:
          $ref: '#/components/schemas/yesNoType'
        isFaxNumber:
          $ref: '#/components/schemas/yesNoType'
        secretOmittedMarking:
          $ref: '#/components/schemas/secretOmittedMarkingType'  
        furtherUsageConsentIndicator:
          $ref: '#/components/schemas/furtherUsageConsentIndicatorType'
        furtherUsageConsentText:
          $ref: '#/components/schemas/stringLen200Type'
    apeOrNAFCodeType:
      type: string
      maxLength: 5
    secretOmittedMarkingType:
      type: string
      enum:
        - NotSecret
        - Omitted
        - NumberSecret
        - AddressSecret
    furtherUsageConsentIndicatorType:
      type: string
      enum:
        - Consented
        - Not Consented
    publicationFormatType:
      type: string
      enum:
        - XX-XX-XX-XX-XX
        - X-XXX-XX-XX-XX
        - X-XXX-XXX-XXX
    publicationAreaType:
      type: string
      maxLength: 5
    publicationDistrictType:
      type: string
      maxLength: 2
    allowedOrderType:
      type: string
      enum:
        - Number Reservation
        - Number Reservation Cancellation
        - Number Activation
        - Number Deactivation
        - Number Reactivation
        - New Port In
        - Cancel Port In
        - Update Port In Date
        - Reactivate Port In
        - Port Out
        - Port Transaction Update
        - Update End Customer Detail
        - Update Directory Services
        - Update Port Out
        - Cancel Port Out
    allowedLineType:
      type: string
      enum:
        - Normal
    allowedEntryType:
      type: string
      enum:
        - DE
        - DQR
        - XD/NC
    tariffType:
      type: string
    allowedListingCategory:
      type: string
      enum:
        - Single
        - Group
    allowedTypeFaceType:
      type: string
      enum:
        - Ordinary
        - Bold
        - Superbold
    allowedPriority:
      type: string
      enum:
        - A
        - S
        - Z
    allowedListingType:
      type: string
      enum:
        - DQMain
        - DQAdditional
        - PB
    allowedOrderStatus:
      type: string
      enum:
        - In Progress
        - Completed
        - Failed
        - Delayed
        - Cancelled
        - Port Not Initiated
        - Confirmed
        - Rejected
        - Port Date Change
        - Customer Feedback Awaited
        - Failed with Error
        - Initiate Port In
        - In-progress
        - Submitted to operator
        - Firm order commitment
        - Updated
        - Porting initiated
        - Activation delayed
        - Porting failed
        - Validation In Progress
        - Awaiting Approval
    notesFormat:
      type: string
      minLength: 0
      maxLength: 2048
    secretCodeType:
      type: string
      maxLength: 22
    productOfferingType:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/allowedProductOfferingNames'
    allowedProductOfferingNames:
      type: string
      enum:
        - Non Geographic Number
    multiLineType:
      type: string
      enum:
        - M
    singleLineType:
      type: string
      enum:
        - S
    enqueryEndCustomerDetailsType:
      type: object
      properties:
        customerReference:
          $ref: '#/components/schemas/customerRefType'
    reserveEndCustomerDetailsType:
      type: object
      properties:
        customerReference:
          $ref: '#/components/schemas/customerRefType'
    activationEndCustomerDetailsType:
      type: object
      required:
        - endCustomerAddress
      properties:
        endCustomerName:
          $ref: '#/components/schemas/customerNameType'
        customerType:
          $ref: '#/components/schemas/customerTypeSchema'
        firstName:
          $ref: '#/components/schemas/nameType'
        lastName:
          $ref: '#/components/schemas/lastNameType'
        registeredName:
          $ref: '#/components/schemas/registeredNameType'
        endCustomerDateOfBirth:
          type: string
        endCustomerLanguage:
          $ref: '#/components/schemas/endCustomerLanguageType'
        telephoneNumber:
          $ref: '#/components/schemas/phoneNumberType'
        mobileNumber:
          $ref: '#/components/schemas/phoneNumberType'
        emailAddress:
          $ref: '#/components/schemas/emailFormat'
        fax:
          $ref: '#/components/schemas/phoneNumberType'
        vatNumber:
          $ref: '#/components/schemas/vatNumberType'
        cifNIF:
          $ref: '#/components/schemas/cifNIFType'
        companyRegistrationNumber:
          $ref: '#/components/schemas/companyRegistrationNumberType'
        customerReference:
          $ref: '#/components/schemas/customerRefType'
        serviceType:
          type: string
        coltCVP:
          $ref: '#/components/schemas/coltCVPType'
        providedCVP:
          $ref: '#/components/schemas/providedCVPType'
        endCustomerAddress:
          $ref: '#/components/schemas/addressSchema'
        addressProof:
          $ref: '#/components/schemas/addressProofType'
    orderEndCustomerDetailsType:
      type: object
      required:
        - endCustomerAddress
      properties:
        clientId:
          $ref: '#/components/schemas/clientIdType'
        endCustomerName:
          $ref: '#/components/schemas/customerNameType'
        customerType:
          $ref: '#/components/schemas/customerTypeSchema'
        firstName:
          $ref: '#/components/schemas/nameType'
        lastName:
          $ref: '#/components/schemas/lastNameType'
        registeredName:
          $ref: '#/components/schemas/registeredNameType'
        endCustomerDateOfBirth:
          type: string
        endCustomerLanguage:
          $ref: '#/components/schemas/endCustomerLanguageType'
        telephoneNumber:
          $ref: '#/components/schemas/phoneNumberType'
        mobileNumber:
          $ref: '#/components/schemas/phoneNumberType'
        emailAddress:
          $ref: '#/components/schemas/emailFormat'
        fax:
          $ref: '#/components/schemas/phoneNumberType'
        vatNumber:
          $ref: '#/components/schemas/vatNumberType'
        cifNIF:
          $ref: '#/components/schemas/cifNIFType'
        endCustomerAddress:
          $ref: '#/components/schemas/addressSchema'
        emergencyAddress:
          $ref: '#/components/schemas/addressSchema'
        companyRegistrationNumber:
          $ref: '#/components/schemas/companyRegistrationNumberType'
        customerReference:
          $ref: '#/components/schemas/customerRefType'
        serviceType:
          type: string
        coltCVP:
          type: string
        providedCVP:
          type: string
    addressProofType:
      type: object
      properties:
        document:
          $ref: '#/components/schemas/addressProofDocumentType'
    addressProofDocumentType:
      type: object
      properties:
        fileName:
          $ref: '#/components/schemas/fileNameType'
        fileContent:
          $ref: '#/components/schemas/fileContentType'
    cliDetailsType:
      type: object
      properties:
        startFullNumber:
          $ref: '#/components/schemas/E164NumberType'
        endFullNumber:
          $ref: '#/components/schemas/E164NumberType'
        singleLine:
          $ref: '#/components/schemas/singleLineType'
        multiLine:
          $ref: '#/components/schemas/multiLineType'
        secretCode:
          $ref: '#/components/schemas/secretCodeType'
        portDate:
          description: Field applicable only for NL
          allOf:
            - $ref: '#/components/schemas/dateFormat'
        blockingCode:
          type: string
        note:
          description: Field applicable only for NL
          type: string
    basicCliDetailsType:
      type: object
      required:
        - startFullNumber
        - endFullNumber
      properties:
        startFullNumber:
          $ref: '#/components/schemas/E164NumberType'
        endFullNumber:
          $ref: '#/components/schemas/E164NumberType'
    cvoipNumberDetailsType:
      type: object
      required:
        - startNumber
        - endNumber
      properties:
        startNumber:
          $ref: '#/components/schemas/cvoipPhoneNumberType'
        endNumber:
          $ref: '#/components/schemas/cvoipPhoneNumberType'
    numberCollectionList:
      type: array
      items:
        $ref: '#/components/schemas/enqueryNumberCollectionType'
    enqueryNumberCollectionType:
      type: object
      properties:
        cliList:
          type: array
          items:
            $ref: '#/components/schemas/basicCliDetailsType'
          minItems: 1
          maxItems: 1
        resourceStatus:
          $ref: '#/components/schemas/numberStatusType'
        activationDate:
          $ref: '#/components/schemas/dateFormat'
        reservationExpiryDate:
          $ref: '#/components/schemas/dateFormat'
        quarantineExpiryDate:
          $ref: '#/components/schemas/dateFormat'
        relatedParty:
          $ref: '#/components/schemas/enqueryRelatedPartyType'
        username:
          $ref: '#/components/schemas/userNameType'
    reserveNumberCollection:
      type: object
      required:
        - cliList
        - numberCategory
        - customerOwned
        - relatedParty
        - productOffering
      properties:
        cliList:
          type: array
          items:
            $ref: '#/components/schemas/basicCliDetailsType'
          minItems: 1
          maxItems: 1
        numberCategory:
          $ref: '#/components/schemas/allowedNumberCategory'
        customerOwned:
          $ref: '#/components/schemas/booleanType'
        tariffId:
          $ref: '#/components/schemas/tariffType'          
        relatedParty:
          $ref: '#/components/schemas/reserveRelatedPartyType'
        productOffering:
          $ref: '#/components/schemas/productOfferingType'
    cancelNumberCollection:
      type: object
      required:
        - cliList
        - numberCategory
        - customerOwned
        - relatedParty
        - productOffering
      properties:
        cliList:
          type: array
          items:
            $ref: '#/components/schemas/basicCliDetailsType'
          minItems: 1
          maxItems: 1
        numberCategory:
          $ref: '#/components/schemas/allowedNumberCategory'
        customerOwned:
          $ref: '#/components/schemas/booleanType'
        relatedParty:
          $ref: '#/components/schemas/cancelRelatedPartyType'
        productOffering:
          $ref: '#/components/schemas/productOfferingType'
    activationNumberCollection:
      type: object
      required:
        - cliList
        - numberCategory
        - customerOwned
        - relatedParty
        - productOffering
        - routingDetails
      properties:
        cliList:
          type: array
          items:
            $ref: '#/components/schemas/basicCliDetailsType'
          minItems: 1
          maxItems: 1
        numberCategory:
          $ref: '#/components/schemas/allowedNumberCategory'
        revenueShareBCN:
          $ref: '#/components/schemas/billingAccountNumberType'
        tariffId:
          $ref: '#/components/schemas/tariffType'
        purchaseOrderNumber:
          $ref: '#/components/schemas/purchaseOrderNumberType'
        customerOwned:
          $ref: '#/components/schemas/booleanType'
        isDirectoryServiceRequired:
          $ref: '#/components/schemas/yesNoType'
        isDSAddressSameAsEndCustomerAddress:
          $ref: '#/components/schemas/yesNoType'
        functionalCategory:
          $ref: '#/components/schemas/functionalCategoryType'
        noReplyTimer:
          $ref: '#/components/schemas/noReplyTimerType'
        ddiFlag:
          $ref: '#/components/schemas/yesNoType'          
        relatedParty:
          $ref: '#/components/schemas/activationRelatedPartyType'
        productOffering:
          $ref: '#/components/schemas/productOfferingType'
        directoryServicesDetails:
          $ref: '#/components/schemas/directoryServicesDetailType'
        routingDetails:
          $ref: '#/components/schemas/routingDetailsType'
    getOrderDetailsOrder:
      type: object
      required:
        - id
        - numberCollection
        - status
      properties:
        id:
          $ref: '#/components/schemas/orderIdType'
        href:
          type: string
        orderRef:
          $ref: '#/components/schemas/orderIdType'
        type:
          $ref: '#/components/schemas/allowedOrderType'
        numberCollection:
          $ref: '#/components/schemas/getOrderNumberCollection'
        createdDate:
          $ref: '#/components/schemas/dateFormat'
        updatedDate:
          $ref: '#/components/schemas/dateFormat'
        status:
          $ref: '#/components/schemas/allowedOrderStatus'
        statusDescription:
          type: string
        errorDescription:
          type: string
        reason:
          $ref: '#/components/schemas/notesFormat'
        childOrderList:
          type: array
          items:
            $ref: '#/components/schemas/getOrderChildOrder'
        username:
          $ref: '#/components/schemas/userNameType'
        notes:
          $ref: '#/components/schemas/notesFormat'
    getOrderNumberCollection:
      type: object
      required:
        - RelatedParty
      properties:
        cliList:
          type: array
          items:
            $ref: '#/components/schemas/cliDetailsType'
          maxItems: 250
        numberCategory:
          $ref: '#/components/schemas/allowedNumberCategory'
        customerOwned:
          $ref: '#/components/schemas/booleanType'
        reservationRejectionReason:
          $ref: '#/components/schemas/stringLen255Type'
        reservationId:
          $ref: '#/components/schemas/stringLen255Type'
        revenueShareBCN:
          $ref: '#/components/schemas/billingAccountNumberType'
        tariffId:
          $ref: '#/components/schemas/tariffType'
        purchaseOrderNumber:
          $ref: '#/components/schemas/purchaseOrderNumberType'
        isDirectoryServiceRequired:
          $ref: '#/components/schemas/yesNoType'
        isDSAddressSameAsEndCustomerAddress:
          $ref: '#/components/schemas/yesNoType'
        isEndCustomerAddressChanged:
          $ref: '#/components/schemas/yesNoType'          
        functionalCategory:
          $ref: '#/components/schemas/functionalCategoryType'
        noReplyTimer:
          $ref: '#/components/schemas/noReplyTimerType'
        ddiFlag:
          $ref: '#/components/schemas/yesNoType'          
        RelatedParty:
          $ref: '#/components/schemas/getOrderRelatedPartyType'
        directoryServicesDetails:
          $ref: '#/components/schemas/directoryServicesDetailType'
        routingDetails:
          $ref: '#/components/schemas/routingDetailsType'
    updateCustomerDetailsNumberCollection:
      type: object
      required:
        - cliList
        - customerOwned
        - numberCategory
        - relatedParty
      properties:
        cliList:
          type: array
          items:
            $ref: '#/components/schemas/basicCliDetailsType'
          minItems: 1
          maxItems: 1
        customerOwned:
          $ref: '#/components/schemas/booleanType'
        numberCategory:
          $ref: '#/components/schemas/allowedNumberCategory'
        isEndCustomerAddressChanged:
          $ref: '#/components/schemas/yesNoType'
        isDirectoryServiceRequired:
          $ref: '#/components/schemas/yesNoType'
        isDSAddressSameAsEndCustomerAddress:
          $ref: '#/components/schemas/yesNoType'
        relatedParty:
          $ref: '#/components/schemas/updateCustomerAddressRelatedPartyType'
        productOffering:
          $ref: '#/components/schemas/productOfferingType'
        directoryServicesDetails:
          $ref: '#/components/schemas/directoryServicesDetailType'
    updateCustomerAddressRelatedPartyType:
      type: object
      required:
        - reseller
      properties:
        reseller:
          $ref: '#/components/schemas/resellerType'
        subReseller:
          $ref: '#/components/schemas/subResellerType'
        endCustomerDetails:
          $ref: '#/components/schemas/updateCustomerDetailsEndCustomerDetailsType'
    updateCustomerDetailsEndCustomerDetailsType:
      type: object
      required:
        - endCustomerAddress
      properties:
        endCustomerName:
          $ref: '#/components/schemas/customerNameType'
        customerType:
          $ref: '#/components/schemas/customerTypeSchema'
        firstName:
          $ref: '#/components/schemas/nameType'
        lastName:
          $ref: '#/components/schemas/lastNameType'
        registeredName:
          $ref: '#/components/schemas/registeredNameType'
        endCustomerDateOfBirth:
          type: string
        endCustomerLanguage:
          $ref: '#/components/schemas/endCustomerLanguageType'
        telephoneNumber:
          $ref: '#/components/schemas/phoneNumberType'
        mobileNumber:
          $ref: '#/components/schemas/phoneNumberType'
        emailAddress:
          $ref: '#/components/schemas/emailFormat'
        fax:
          $ref: '#/components/schemas/phoneNumberType'
        vatNumber:
          $ref: '#/components/schemas/vatNumberType'
        cifNIF:
          $ref: '#/components/schemas/cifNIFType'
        companyRegistrationNumber:
          $ref: '#/components/schemas/companyRegistrationNumberType'
        customerReference:
          $ref: '#/components/schemas/customerRefType'
        serviceType:
          type: string
        coltCVP:
          type: string
        providedCVP:
          type: string
        endCustomerAddress:
          $ref: '#/components/schemas/addressSchema'
        addressProof:
          $ref: '#/components/schemas/addressProofType'
    functionalCategoryType:
      type: string
      enum:
        - CA
        - EA
        - EP
        - JE
        - MM
        - MR
        - NP
        - PA
        - RC
        - RT
        - TT
        - XX
        - AN
        - DG
        - TE
        - EM
        - LP
        - GAMES
    announcementNameType:
      type: string
      enum:
        - PUB-Annonce 1-BE
        - PUB-Annonce 2-BE
        - PUB-Annonce 3-BE
        - PUB-Annonce 4-BE
        - PUB-Annonce 5-BE
        - PUB-Annonce 6-BE
        - PUB-Annonce 7-BE
        - PUB-Annonce 8-BE
        - PUB-Annonce 9-BE
        - PUB-Annonce 10-BE
        - PUB-Anuncio 1-ES
        - PUB-Anuncio 2-ES
        - PUB-Anuncio 3-ES
        - PUB-Anuncio 4-ES
        - PUB-Anuncio 5-ES
        - PUB-Anuncio 6-ES
        - PUB-Anuncio 7-ES
        - PUB-Anuncio 8-ES
        - PUB-Anuncio 9-ES
        - PUB-Anuncio 10-ES
        - PUB-Anuncio 11-ES
        - PUB-Anuncio 12-ES
        - PUB-Anuncio 13-ES
        - PUB-Anuncio 14-ES
        - PUB-Anuncio 15-ES
        - PUB-Anuncio 16-ES
        - PUB-Anuncio 17-ES
        - PUB-Annonce brève 1-FR
        - PUB-Annonce brève 2-FR
        - PUB-Annonce brève 3-FR
        - PUB-Annonce brève 4-FR
        - PUB-Annonce brève 5-FR
        - PUB-Annonce brève 6-FR
        - PUB-Annonce brève 7-FR
        - PUB-Annuncio 1-IT
        - PUB-Annuncio 2-IT
        - PUB-Annuncio 3-IT
        - PUB-Annuncio 4-IT
        - PUB-Annuncio 5-IT
        - PUB-Annuncio 6-IT
        - PUB-Annuncio 7-IT
        - PUB-Annuncio 8-IT
        - PUB-Annuncio 9-IT
        - PUB-Annuncio 10-IT
        - PUB-Annuncio 11-IT
        - PUB-Annuncio 12-IT
        - PUB-Aankondiging 1-NL
        - PUB-Aankondiging 2-NL
        - PUB-Aankondiging 3-NL
        - PUB-Aankondiging 4-NL
        - PUB-Aankondiging 5-NL
        - PUB-Aankondiging 6-NL
        - PUB-Aankondiging 7-NL
        - PUB-Announcement 1-UK
        - PUB-Announcement 2-UK
        - PUB-Announcement 3-UK
        - PUB-Announcement 4-UK
        - PUB-Announcement 5-UK
        - PUB-Announcement 6-UK
        - PUB-Announcement 7-UK
        - PUB-Announcement 8-UK
        - PUB-Announcement 9-UK
        - PUB-Announcement 10-UK
        - PUB-Announcement 11-UK
        - PUB-Announcement 12-UK
        - PUB-Announcement 13-UK
        - PUB-Announcement 14-UK
        - PUB-Announcement 15-UK
        - PUB-Announcement 16-UK
        - PUB-Announcement 17-UK
        - PUB-Anúncio 1-PT
        - PUB-Anúncio 2-PT
        - PUB-Anúncio 3-PT
        - PUB-Anúncio 4-PT
        - PUB-Anúncio 5-PT
        - PUB-Anúncio 6-PT
        - PUB-Anúncio 7-PT
        - PUB-Anúncio 8-PT
        - PUB-Anúncio 9-PT
        - PUB-Please enter your PIN.-PT
        - PUB-PIN still wrong.Goodbye-PT
        - PUB-PIN wrong.Please retry-PT
        - PUB-Ansage 1-AT
        - PUB-Ansage 2-AT
        - PUB-Ansage 3-AT
        - PUB-Ansage 4-AT
        - PUB-Ansage 5-AT
        - PUB-Ansage 6-AT
        - PUB-Ansage 7-AT
        - PUB-Ansage 8-AT
        - PUB-Ansage 9-AT
        - PUB-Ansage 10-AT
        - PUB-Ansage 11-AT
        - PUB-Ansage 12-AT
        - PUB-Ansage 13-AT
        - PUB-Ansage 14-AT
        - PUB-Ansage 15-AT
        - PUB-Ansage 16-AT
        - PUB-Ansage 17-AT
        - PUB-Ansage 18-AT
        - PUB-Ansage 19-AT
        - PUB-Ansage 20-AT
        - PUB-Ansage 21-AT
        - PUB-Ansage 22-AT
        - PUB-Ansage 23-AT
        - PUB-INHw10-AT
        - PUB-Ansage 1-CH
        - PUB-Ansage 2-CH
        - PUB-Ansage 3-CH
        - PUB-Ansage 4-CH
        - PUB-Ansage 5-CH
        - PUB-Ansage 6-CH
        - PUB-Ansage 7-CH
        - PUB-Ansage 8-CH
        - PUB-Ansage 9-CH
        - PUB-Ansage 10-CH
        - PUB-Ansage 11-CH
        - PUB-Ansage 12-CH
        - PUB-Ansage 13-CH
        - PUB-Ansage 14-CH
        - PUB-Ansage 15-CH
        - PUB-Ansage 16-CH
        - PUB-Ansage 17-CH
        - PUB-Ansage 18-CH
        - PUB-Ansage 19-CH
        - PUB-Ansage 20-CH
        - PUB-Ansage 21-CH
        - PUB-Ansage 22-CH
        - PUB-Ansage 23-CH
        - PUB-Ansage 24-CH
        - PUB-Ansage 25-CH
        - PUB-Ansage 26-CH
        - PUB-BUSY-CH
        - PUB-Avertere 1-DK
        - PUB-Avertere 2-DK
        - PUB-Avertere 3-DK
        - PUB-Avertere 4-DK
        - PUB-Meddelande 1-SE
        - PUB-Meddelande 2-SE
        - PUB-Meddelande 3-SE
        - PUB-Meddelande 4-SE
        - PUB-PinRequest SE
        - PUB-Announcement 1-IE
        - PUB-Announcement 2-IE
        - PUB-Announcement 3-IE
        - PUB-Announcement 4-IE
        - PUB-Announcement 5-IE
        - PUB-Announcement 6-IE
        - PUB-Announcement 7-IE
        - PUB-Announcement 8-IE
        - PUB-Announcement 9-IE
        - PUB-Announcement 10-IE
        - PUB-Announcement 11-IE
        - PUB-Announcement 12-IE
        - PUB-Please enter your PIN.-IE
        - PUB-PIN still wrong.Goodbye-IE
        - PUB-PIN wrong.Please retry-IE
        - PUB-Ansage 1-DE
        - PUB-Ansage 2-DE
        - PUB-Ansage 3-DE
        - PUB-Ansage 4-DE
        - PUB-Ansage 5-DE
        - PUB-Ansage 6-DE
        - PUB-Ansage 7-DE
        - PUB-Ansage 8-DE
        - PUB-Ansage 9-DE
        - PUB-Ansage 10-DE
        - PUB-Ansage 11-DE
        - PUB-Ansage 12-DE
        - PUB-Ansage 13-DE
        - PUB-Ansage 14-DE
        - PUB-Ansage 15-DE
        - PUB-Ansage 16-DE
        - PUB-Ansage 17-DE
        - PUB-Ansage 18-DE
        - PUB-Ansage 19-DE
        - PUB-Ansage 20-DE
        - PUB-Ansage 21-DE
        - PUB-Ansage 22-DE
        - PUB-Ansage 23-DE
        - PUB-Ansage 24-DE
        - PUB-Ansage 25-DE
        - PUB-Ansage 26-DE
        - PUB-Ansage 27-DE
        - PUB-Ansage 28-DE
        - PUB-Ansage 29-DE
        - PUB-Ansage 30-DE
    noReplyTimerType:
      type: integer
      minimum: 0
      maximum: 120
      description: >-
        Time in seconds beyond which the call will be disconnected if not
        answered
      example: 100
    getOrderChildOrder:
      type: object
      required:
        - id
        - date
        - status
        - username
      properties:
        id:
          $ref: '#/components/schemas/orderIdType'
        href:
          type: string
        createdDate:
          $ref: '#/components/schemas/dateFormat'
        updatedDate:
          $ref: '#/components/schemas/dateFormat'
        status:
          $ref: '#/components/schemas/allowedOrderStatus'
        statusDescription:
          type: string
        errorDescription:
          type: string
        username:
          $ref: '#/components/schemas/userNameType'
        notes:
          $ref: '#/components/schemas/notesFormat'
    contractType:
      type: string
      enum:
        - Early Termination
        - Continuation
    Error:
      description: >-
        Used when an API throws an Error, typically with a HTTP error
        response-code (3xx, 4xx, 5xx)
      type: object
      required:
        - code
        - reason
      properties:
        code:
          type: string
          description: Application relevant detail, defined in the API or a common list.
          example: ERR01
        reason:
          type: string
          description: >-
            Explanation of the reason for the error which can be shown to a
            client user.
        message:
          type: string
          description: >-
            More details and corrective actions related to the error which can
            be shown to a client user.
        status:
          type: string
          description: HTTP Error code extension
          example: 401-02
