openapi: 3.0.0
info:
  title: ECG Addison Module API
  description: Documentation for addison module
  version: '1.0'
  contact: {}
servers:
  - url: https://addison.ecg-api.com
tags: []
paths:
  /api/subscribers:
    post:
      operationId: SubscribersController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSubscriberDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Adds the Subscriber.
      tags:
        - Subscribers
    get:
      operationId: SubscribersController_getAll
      parameters:
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: searchTerm
          required: false
          in: query
          description: Search on the basis of callName, timezoneId or locale
          schema:
            type: string
        - name: sort_by
          required: false
          in: query
          description: 'Default value : subscriberId'
          schema:
            example: subscriberId
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SubscriberDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists all the available Subscribers.
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}:
    get:
      operationId: SubscribersController_getById
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: mode
          required: true
          in: query
          schema:
            default: subscriberId
            enum:
              - subscriberId
              - hardwareId
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Gets the Subscriber information.
      tags:
        - Subscribers
    delete:
      operationId: SubscribersController_deleteById
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Subscriber information.
      tags:
        - Subscribers
    patch:
      operationId: SubscribersController_updateSubscriberById
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonPatchDocumentItemDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Subscriber information by updating the items they were
        provided.
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/favorite-color:
    post:
      operationId: SubscribersController_addFavoriteColor
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddColorDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Save user color choices
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/settings:
    patch:
      operationId: SubscribersController_updateSubscriberSettings
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSubscriberSettingsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: update/append subscriber settings information
      tags:
        - Subscribers
    post:
      operationId: SubscribersController_subscriberSettings
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSubscriberSettingsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Adds/Updates the Subscriber Settings Information.
      tags:
        - Subscribers
    get:
      operationId: SubscribersController_listSettings
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SubscriberSettingsDto'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists the Addison Subscriber Settings.
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/batch-settings:
    patch:
      operationId: SubscribersController_batchUpdateSubscriberSettings
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonPatchDocumentItemDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Batch update subscriber settings using JSON Patch format - For ADDI use
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/info:
    post:
      operationId: SubscribersController_saveInfo
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: field
          required: true
          in: query
          schema:
            enum:
              - first-name
              - last-name
              - nick-name
              - phone-number
              - date-of-birth
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPersonalInfoDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Saving User's personal information.
      tags:
        - Subscribers
    get:
      operationId: SubscribersController_getInfo
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: field
          required: true
          in: query
          schema:
            enum:
              - first-name
              - last-name
              - nick-name
              - phone-number
              - date-of-birth
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberPersonalInfoDto'
      security:
        - bearer: []
      summary: Gets the Subscriber personal information.
      tags:
        - Subscribers
    patch:
      operationId: SubscribersController_patchInfo
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Update Subscriber's personal information
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/info/media:
    get:
      operationId: SubscribersController_getInfoMedia
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: voiceId
          required: false
          in: query
          schema:
            example: dbd2bfd3-a177-4fe5-b294-876b75ae5797
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPollyFilesUrlDto'
      security:
        - bearer: []
      summary: Gets the Subscriber's media file url.
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/verification-modes:
    post:
      operationId: SubscribersController_addVerificationMode
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriberVerificationModeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Adds the Addison Subscriber's Verification Mode.
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/disable-calls:
    post:
      operationId: SubscribersController_addDisableCalls
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriberDisableCallSettingsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Adds the Addison Subscriber's Disable Call Settings.
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/re-sync:
    post:
      operationId: SubscribersController_reSyncSubscriber
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: ReSyncs the Addison Subscriber information from the Organizations API.
      tags:
        - Subscribers
  /api/subscribers/re-sync:
    post:
      operationId: SubscribersController_reSyncAll
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        ReSyncs All the Addison Subscribers information from the Organizations
        API.
      tags:
        - Subscribers
  /api/subscribers/master-keys:
    post:
      operationId: SubscribersController_generateMasterKeyForAll
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Generates the Master Key for all the Subscribers in the system.
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/master-keys:
    post:
      operationId: SubscribersController_generateMasterKey
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Generates the Master Key for the Given Subscriber if not Exists.
      tags:
        - Subscribers
  /api/subscribers/{subscriberId}/addison-consoles:
    post:
      operationId: SubscriberConsolesController_createSubscriberConsole
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSubscriberConsoleDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberConsoleDisplayModel'
      security:
        - bearer: []
      summary: create Addison console record.
      tags:
        - SubscriberConsoles
  /api/subscribers/{subscriberId}/addison-consoles/{consoleId}/activate:
    post:
      operationId: SubscriberConsolesController_activateAddisonConsole
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: consoleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate Addison console record.
      tags:
        - SubscriberConsoles
  /api/subscribers/{subscriberId}/addison-consoles/{consoleId}/deactivate:
    post:
      operationId: SubscriberConsolesController_deactivateAddisonConsole
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: consoleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate Addison console record.
      tags:
        - SubscriberConsoles
  /api/subscribers/{subscriberId}/addison-consoles/{consoleId}/archive:
    post:
      operationId: SubscriberConsolesController_archiveAddisonConsole
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: consoleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archive Addison console record.
      tags:
        - SubscriberConsoles
  /api/subscribers/{subscriberId}/addison-consoles/{consoleId}/restore:
    post:
      operationId: SubscriberConsolesController_restoreAddisonConsole
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: consoleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restore Addison console record.
      tags:
        - SubscriberConsoles
  /api/subscribers/{subscriberId}/addison-consoles/{hardwareIdentifier}/reset-pairing:
    post:
      operationId: SubscriberConsolesController_resetPairing
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: hardwareIdentifier
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Reset console pairing
      tags:
        - SubscriberConsoles
  /api/subscribers/{subscriberId}/heartbeats:
    get:
      operationId: ConsoleHeartbeatsController_listHeartbeats
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: hardwareIds
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
        - name: take
          required: true
          in: query
          schema:
            default: 25
            type: string
        - name: dateRangeType
          required: true
          in: query
          schema:
            default: custom
            enum:
              - custom
              - this-year
              - last-year
              - today
              - this-week
              - last-week
              - this-month
              - last-month
              - this-quarter
              - last-quarter
            type: string
        - name: from
          required: false
          in: query
          schema:
            example: '2026-03-04T17:43:24.855Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            example: '2026-03-04T17:43:24.855Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListConsoleHeartbeatsDisplayModel'
      security:
        - bearer: []
      summary: Lists the Console Heartbeats for a given SubscriberId
      tags:
        - Heartbeats
  /api/addison-consoles/{hardwareIdentifier}/codes:
    get:
      operationId: SubscriberAccessCodesController_createAccessCode
      parameters:
        - name: hardwareIdentifier
          required: true
          in: path
          schema:
            type: string
        - name: channel
          required: false
          in: query
          description: 'Default value: email'
          schema:
            enum:
              - sms
              - email
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Get the Subscriber Access Code.
      tags:
        - SubscriberAccessCodes
  /api/addison-consoles/{hardwareIdentifier}/verify-access-code:
    post:
      operationId: SubscriberAccessCodesController_verifyAccessCode
      parameters:
        - name: hardwareIdentifier
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyAccessCodeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Verify Subscriber Access Code.
      tags:
        - SubscriberAccessCodes
  /api/user-interactions:
    post:
      operationId: UserInteractionController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddUserInteractionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInteractionDisplayModel'
      security:
        - bearer: []
      summary: Adds the User Interaction Information.
      tags:
        - UserInteractions
  /api/subscribers/{subscriberId}/face-detection:
    post:
      operationId: BiometricsController_faceDetectionForSubscriber
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BiometricsFaceImageDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: face-detection for given subscriber
      tags:
        - Biometrics
  /api/subscribers/{subscriberId}/face-recognition:
    post:
      operationId: BiometricsController_faceRecognitionForSubscriber
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BiometricsFaceImageDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Facial recognition for given subscriber.
      tags:
        - Biometrics
  /api/biometrics/face-detection:
    post:
      operationId: BiometricsController_faceDetection
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BiometricsFaceImageDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetectionTestDisplayModel'
      security:
        - bearer: []
      summary: Addison Face Detection Test
      tags:
        - Biometrics
  /api/biometrics/{biometricId}/face-recognition:
    post:
      operationId: BiometricsController_faceRecognition
      parameters:
        - name: biometricId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BiometricsFaceImageDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Addison Face Recognition Test
      tags:
        - Biometrics
  /healthcheck:
    get:
      operationId: HealthcheckController_check
      parameters: []
      responses:
        '200':
          description: The Health Check is successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  info:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  error:
                    type: object
                    example: {}
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  details:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
        '503':
          description: The Health Check is not successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: error
                  info:
                    type: object
                    example:
                      database:
                        status: up
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  error:
                    type: object
                    example:
                      redis:
                        status: down
                        message: Could not connect
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
                    nullable: true
                  details:
                    type: object
                    example:
                      database:
                        status: up
                      redis:
                        status: down
                        message: Could not connect
                    additionalProperties:
                      type: object
                      required:
                        - status
                      properties:
                        status:
                          type: string
                      additionalProperties: true
      summary: Checks health of the server
      tags:
        - Health-check
  /api/seed-data/hardware-identifier:
    get:
      operationId: SeedDataController_getOrganizationTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/HardwareIdentifierSeedModel'
      security:
        - bearer: []
      summary: List the hardware Identifiers
      tags:
        - SeedData
  /api/seed-data/weather:
    get:
      operationId: SeedDataController_getHourlyForecast
      parameters:
        - name: zipCode
          required: true
          in: query
          schema:
            example: '94040'
            type: string
        - name: countryCode
          required: true
          in: query
          schema:
            example: US
            type: string
        - name: unit
          required: false
          in: query
          schema:
            default: Kelvin
            enum:
              - Kelvin
              - Celsius
              - Fahrenheit
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeatherForecastDisplayModel'
      security:
        - bearer: []
      summary: List the Weather Forecast Information
      tags:
        - SeedData
  /api/seed-data/weather/coordinates:
    get:
      operationId: SeedDataController_getWeatherCoordinates
      parameters:
        - name: lat
          required: true
          in: query
          description: Latitude (if using coordinates)
          schema:
            example: 40.7128
            type: number
        - name: lon
          required: true
          in: query
          description: Longitude (if using coordinates)
          schema:
            example: -74.006
            type: number
        - name: unit
          required: false
          in: query
          schema:
            default: Kelvin
            enum:
              - Kelvin
              - Celsius
              - Fahrenheit
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WeatherForecastDisplayModel'
      security:
        - bearer: []
      summary: List the Weather Forecast Information based on the co-ordinates
      tags:
        - SeedData
  /api/seed-data/settings:
    get:
      externalDocs:
        url: https://ecg.atlassian.net/wiki/x/CgBQkg
      operationId: SeedDataController_listUserSettings
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/UserSettingsSeedModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the User Settings.
      tags:
        - SeedData
  /api/login/username/{phoneNumber}:
    get:
      operationId: LoginController_LoginRequest
      parameters:
        - name: phoneNumber
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginMobileDtoModel'
      security:
        - bearer: []
      summary: Enter the mobile Number.
      tags:
        - login
  /api/subscribers/{subscriberId}/terms-of-use:
    post:
      operationId: SubscriberTouController_create
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Adds the Addison Subscriber's Terms of Use.
      tags:
        - Terms of Use
    get:
      operationId: SubscriberTouController_getTermsOfUse
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberTouDisplayModel'
      security:
        - bearer: []
      summary: Gets the Addison Subscriber's Terms of Use.
      tags:
        - Terms of Use
    delete:
      operationId: SubscriberTouController_deleteTermsOfUse
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Addison Subscriber's Terms of Use.
      tags:
        - Terms of Use
  /api/subscribers/{subscriberId}/pin-codes:
    post:
      operationId: SubscriberPinCodeController_create
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriberPinCodeDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Adds the Addison Subscriber's Pin Code.
      tags:
        - SubscriberPinCodes
    patch:
      operationId: SubscriberPinCodeController_update
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriberPinCodeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Updates the Addison Subscriber's Pin Code.
      tags:
        - SubscriberPinCodes
    get:
      operationId: SubscriberPinCodeController_getPinCodeStatus
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Gets the Addison Subscriber's Pin Code Status Information.
      tags:
        - SubscriberPinCodes
  /api/subscribers/{subscriberId}/pin-codes/verify:
    post:
      operationId: SubscriberPinCodeController_verifyCode
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriberPinCodeDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Verifies the Addison Subscriber's Pin Code.
      tags:
        - SubscriberPinCodes
  /api/software-versions:
    post:
      operationId: SoftwareVersionsController_addVersions
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSoftwareVersionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareVersionDisplayModel'
      security:
        - bearer: []
      summary: Adds the Addison Software Version.
      tags:
        - Versions
    get:
      operationId: SoftwareVersionsController_listVersions
      parameters:
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: search
          required: false
          in: query
          description: 'Search By: versionNumbers'
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SoftwareVersionDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists the Addison Software Version.
      tags:
        - Versions
  /api/software-versions/{versionId}:
    get:
      operationId: SoftwareVersionsController_getVersions
      parameters:
        - name: versionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareVersionDisplayModel'
      security:
        - bearer: []
      summary: Gets the Addison Software Version.
      tags:
        - Versions
    delete:
      operationId: SoftwareVersionsController_deleteVersions
      parameters:
        - name: versionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Addison Software Version.
      tags:
        - Versions
    patch:
      operationId: SoftwareVersionsController_updateVersions
      parameters:
        - name: versionId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareVersionDisplayModel'
      security:
        - bearer: []
      summary: Patches the Addison Software Version by updating the items.
      tags:
        - Versions
  /api/software-versions/{versionId}/activate:
    post:
      operationId: SoftwareVersionsController_activate
      parameters:
        - name: versionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
        - bearer: []
      summary: Activates the Addison Software Version information.
      tags:
        - Versions
  /api/software-versions/{versionId}/deactivate:
    post:
      operationId: SoftwareVersionsController_deactivate
      parameters:
        - name: versionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
        - bearer: []
      summary: Deactivates the Addison Software Version information.
      tags:
        - Versions
  /api/downloads/user-credentials/{username}:
    get:
      operationId: UserCredentialsController_getCredentials
      parameters:
        - name: username
          required: true
          in: path
          schema:
            example: f0469645-9df9-4c0c-8048-e9971a4260d8
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserCredentialDisplayModel'
      security:
        - bearer: []
      summary: Gets the User Credentials by username.
      tags:
        - UserCredentials
  /api/subscribers/{subscriberId}/call-logs:
    post:
      operationId: CallLogController_create
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCallLogDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallLogDisplayModel'
      security:
        - bearer: []
      summary: Adds the Call Log information for the given Subscriber.
      tags:
        - Call-Logs
    get:
      operationId: CallLogController_list
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: dialedNumber
          required: false
          in: query
          schema:
            type: string
        - name: dateRangeType
          required: false
          in: query
          description: Searches Based on timeOfCall
          schema:
            enum:
              - custom
              - this-year
              - last-year
              - today
              - this-week
              - last-week
              - this-month
              - last-month
              - this-quarter
              - last-quarter
            type: string
        - name: from
          required: false
          in: query
          description: Searches Based on timeOfCall
          schema:
            format: date-time
            example: '2026-03-04T17:43:24.811Z'
            type: string
        - name: to
          required: false
          in: query
          description: Searches Based on timeOfCall
          schema:
            format: date-time
            example: '2026-03-04T17:43:24.811Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/CallLogDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists the Call Log information for the given Subscriber.
      tags:
        - Call-Logs
  /api/device-keys:
    get:
      operationId: DeviceKeyController_getDeviceKey
      parameters:
        - name: hardwareId
          required: true
          in: query
          schema:
            example: 13d1cbc8-5e5e-4794-98f4-82e37e59264a
            type: string
        - name: deviceIdentifier
          required: true
          in: query
          schema:
            example: B42E9969B9B7
            type: string
        - name: deviceIdentifierType
          required: true
          in: query
          schema:
            enum:
              - mac-address
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceKeyDisplayModel'
      security:
        - bearer: []
      summary: Gets the Device Key Information based on the Hardware Identifier
      tags:
        - Device-Keys
  /api/subscribers/{subscriberId}/help-calls:
    post:
      operationId: HelpCallLogsController_addHelpCallLog
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddHelpCallLogDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HelpCallLogDisplayModel'
      security:
        - bearer: []
      summary: Adds the Help Call Log information for a given Subscriber.
      tags:
        - HelpCalls
    get:
      operationId: HelpCallLogsController_listHelpCallLogs
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: organizationId
          required: false
          in: query
          schema:
            type: string
        - name: hardwareIdentifier
          required: false
          in: query
          schema:
            type: string
        - name: rrmsRegion
          required: false
          in: query
          schema:
            enum:
              - east
              - west
            type: string
        - name: dateRangeType
          required: false
          in: query
          description: Searches Based on recordedAt (UTC Date-Time)
          schema:
            enum:
              - custom
              - this-year
              - last-year
              - today
              - this-week
              - last-week
              - this-month
              - last-month
              - this-quarter
              - last-quarter
            type: string
        - name: from
          required: false
          in: query
          description: Searches Based on recordedAt (UTC Date-Time)
          schema:
            example: '2026-03-04T17:43:24.811Z'
            type: string
        - name: to
          required: false
          in: query
          description: Searches Based on recordedAt (UTC Date-Time)
          schema:
            example: '2026-03-04T17:43:24.811Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/HelpCallLogDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        This API serves the purpose of listing the Help Call Logs information
        based on the filters
      tags:
        - HelpCalls
  /rrms-regions:
    get:
      operationId: RrmsRegionController_getVersions
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/RrmsRegionDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      summary: Lists the RRMS Regions.
      tags:
        - Rrms-Regions
  /rrms-regions/switch:
    post:
      operationId: RrmsRegionController_switchRegion
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        This Dummy API serves the purpose of switching the RRMS Region's primary
        status, for testing purpose.
      tags:
        - Rrms-Regions
  /api/rrms-heartbeat-activities:
    post:
      operationId: RrmsHeartbeatActivityController_addRrmsHeartbeatActivity
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        Adds the RRMS Heartbeat Activities and updates the Redis Cache if RRMS
        Region primary status has been changed.
      tags:
        - Rrms-Heartbeat-Activities
    get:
      operationId: RrmsHeartbeatActivityController_listRrmsHeartbeatActivities
      parameters:
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: region
          required: false
          in: query
          description: Searches Based on RRMS Region type
          schema:
            enum:
              - east
              - west
            type: string
        - name: status
          required: false
          in: query
          description: Searches Based on RRMS Status
          schema:
            enum:
              - SUCCESS
              - ERROR
            type: string
        - name: dateRangeType
          required: false
          in: query
          description: Searches Based on timeOfCall
          schema:
            enum:
              - custom
              - this-year
              - last-year
              - today
              - this-week
              - last-week
              - this-month
              - last-month
              - this-quarter
              - last-quarter
            type: string
        - name: from
          required: false
          in: query
          description: Searches Based on timeOfCall
          schema:
            format: date-time
            example: '2026-03-04T17:43:24.811Z'
            type: string
        - name: to
          required: false
          in: query
          description: Searches Based on timeOfCall
          schema:
            format: date-time
            example: '2026-03-04T17:43:24.811Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ListRrmsHeartbeatActivityDto'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the RRMS Heartbeat Activities for both RRMS Regions.
      tags:
        - Rrms-Heartbeat-Activities
  /api/voice-profiles:
    post:
      description: Permissions needed - setup.data.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - AVA | API - ADD
          VOICE PROFILE OPTIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2161311765/AVA+Voice+Profile+Options+in+Addison+API#API---ADD-VOICE-PROFILE-OPTIONS
      operationId: VoiceProfileController_saveVoiceProfile
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddVoiceProfileDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to add the voice profile options for each
        avatar.
      tags:
        - Voice-Profiles
    get:
      description: Permissions needed - setup.data.read,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - AVA | API - LIST
          VOICE PROFILE OPTIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2161311765/AVA+Voice+Profile+Options+in+Addison+API#API---LIST-VOICE-PROFILE-OPTIONS
      operationId: VoiceProfileController_listVoiceProfiles
      parameters:
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: searchTerm
          required: false
          in: query
          description: Searches on the basis of voice-profile Name and Description
          schema:
            type: string
        - name: gender
          required: false
          in: query
          schema:
            enum:
              - male
              - female
            type: string
        - name: locale
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - en-US
                - de-DE
                - es-US
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/VoiceProfileDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to list all the Voice Profiles in the
        paginated form
      tags:
        - Voice-Profiles
  /api/voice-profiles/{voiceId}:
    patch:
      description: Permissions needed - setup.data.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - AVA | API - UPDATE
          VOICE PROFILE OPTIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2161311765/AVA+Voice+Profile+Options+in+Addison+API#API---UPDATE-VOICE-PROFILE-OPTIONS
      operationId: VoiceProfileController_updateVoiceProfile
      parameters:
        - name: voiceId
          required: true
          in: path
          schema:
            example: dbd2bfd3-a177-4fe5-b294-876b75ae5797
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to update the voice profile options for each
        avatar.
      tags:
        - Voice-Profiles
    get:
      description: Permissions needed - setup.data.read,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - AVA | GET VOICE
          PROFILE OPTIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2161311765/AVA+Voice+Profile+Options+in+Addison+API#API---GET-VOICE-PROFILE-OPTIONS
      operationId: VoiceProfileController_getVoiceProfile
      parameters:
        - name: voiceId
          required: true
          in: path
          schema:
            example: dbd2bfd3-a177-4fe5-b294-876b75ae5797
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoiceProfileDisplayModel'
      security:
        - bearer: []
      summary: The purpose of this API is to get the Voice Profile Option
      tags:
        - Voice-Profiles
  /api/voice-profiles/{voiceId}/activate:
    post:
      description: Permissions needed - setup.data.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - AVA | ACTIVATE VOICE
          PROFILE OPTIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2161311765/AVA+Voice+Profile+Options+in+Addison+API#API---ACTIVATE-VOICE-PROFILE-OPTIONS
      operationId: VoiceProfileController_activateVoiceProfile
      parameters:
        - name: voiceId
          required: true
          in: path
          schema:
            example: dbd2bfd3-a177-4fe5-b294-876b75ae5797
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to activate the Voice Profile Option
      tags:
        - Voice-Profiles
  /api/voice-profiles/{voiceId}/deactivate:
    post:
      description: Permissions needed - setup.data.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - AVA | DEACTIVATE
          VOICE PROFILE OPTIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2161311765/AVA+Voice+Profile+Options+in+Addison+API#API---DEACTIVATE-VOICE-PROFILE-OPTIONS
      operationId: VoiceProfileController_deactivateVoiceProfile
      parameters:
        - name: voiceId
          required: true
          in: path
          schema:
            example: dbd2bfd3-a177-4fe5-b294-876b75ae5797
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to deactivate the Voice Profile Option
      tags:
        - Voice-Profiles
  /api/voice-profiles/{voiceId}/re-sync:
    post:
      description: Permissions needed - setup.data.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - AVA | RE-SYNC VOICE
          PROFILE OPTIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2161311765/AVA+Voice+Profile+Options+in+Addison+API#API---RE-SYNC-VOICE-PROFILE-OPTIONS
      operationId: VoiceProfileController_resyncVoiceProfile
      parameters:
        - name: voiceId
          required: true
          in: path
          schema:
            example: dbd2bfd3-a177-4fe5-b294-876b75ae5797
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to re-sync the Voice Profile Option to all
        the different micro-services using the SNS
      tags:
        - Voice-Profiles
  /api/voice-profiles/re-sync:
    post:
      description: Permissions needed - setup.data.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - AVA | RE-SYNC ALL
          VOICE PROFILE OPTIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2161311765/AVA+Voice+Profile+Options+in+Addison+API#API---RE-SYNC-ALL-VOICE-PROFILE-OPTIONS
      operationId: VoiceProfileController_resyncAllVoiceProfile
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to re-sync ALL the Voice Profile Option to
        all the different micro-services using the SNS
      tags:
        - Voice-Profiles
  /api/organizations/{organizationId}/service-settings:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | API - ADD
          Organization Service Settings
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251325691/ADDISRV+Organization+Service+Settings+API+Specifications#POST---ADD-Organization-Service-Settings
      operationId: OrganizationServiceSettingController_create
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddOrganizationServiceSettingDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The API is designed to facilitate the addition of service settings
        information for an organization
      tags:
        - Organization Service Settings
    get:
      description: Permissions needed - organizations.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | API - GET
          Program Service for an Organization
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251325691/ADDISRV+Organization+Service+Settings+API+Specifications#GET---GET-Program-Service-for-an-Organization
      operationId: OrganizationServiceSettingController_get
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationServiceSettingDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to get the service settings information for a
        given organization
      tags:
        - Organization Service Settings
    patch:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | API -
          UPDATE Service Settings for an Organization
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251325691/ADDISRV+Organization+Service+Settings+API+Specifications#PATCH---UPDATE-Service-Settings-for-an-Organization
      operationId: OrganizationServiceSettingController_update
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to update the service settings information
        for a given organization
      tags:
        - Organization Service Settings
  /api/organizations/{organizationId}/subscribers/{subscriberId}/service-requests:
    post:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Subscriber
          Program Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251817003/ADDISRV+Subscriber+Service+Request+API+Specifications#POST---ADD-Subscriber-Service-Request-for-an-Organization
      operationId: SubscriberServiceRequestController_create
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: bf8b100a-c54f-4066-90b2-490de9f66ec9
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: b8dfbe3e-a477-4140-8142-0735cf2bcd4f
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSubscriberServiceRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberServiceRequestDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to add the Subscriber Service Request for an
        Organization.
      tags:
        - Subscriber Service Request
    get:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Subscriber
          Program Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251817003/ADDISRV+Subscriber+Service+Request+API+Specifications#GET---LIST-Subscriber-Service-Requests-for-an-Organization
      operationId: SubscriberServiceRequestController_list
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: bf8b100a-c54f-4066-90b2-490de9f66ec9
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: b8dfbe3e-a477-4140-8142-0735cf2bcd4f
            type: string
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: searchTerm
          required: false
          in: query
          description: >-
            Search on the basis of title, code and description of program
            service
          schema:
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - subscriber
                - program-service
                - service-delivery-rule
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/SubscriberServiceRequestDisplayModel
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        The purpose of this API to list all Subscriber Service Requests for an
        Organization.
      tags:
        - Subscriber Service Request
  /api/organizations/{organizationId}/service-requests:
    get:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Subscriber
          Program Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251817003/ADDISRV+Subscriber+Service+Request+API+Specifications#GET---LIST-Subscriber-Service-Requests-for-an-Organization
      operationId: SubscriberServiceRequestController_listRequests
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 333dbee7-beee-4a52-a8a0-3a4384aab498
            type: string
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: searchTerm
          required: false
          in: query
          description: >-
            Search on the basis of title, code and description of program
            service
          schema:
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - subscriber
                - program-service
                - service-delivery-rule
        - name: subscriberIds
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/SubscriberServiceRequestDisplayModel
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        The purpose of this API to list all Subscriber Service Requests for an
        Organization.
      tags:
        - Subscriber Service Request
  /api/organizations/{organizationId}/subscribers/{subscriberId}/service-requests/{requestId}:
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Subscriber
          Program Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251817003/ADDISRV+Subscriber+Service+Request+API+Specifications#GET---GET-Subscriber-Service-Request-for-an-Organization-by-ID
      operationId: SubscriberServiceRequestController_getById
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: bf8b100a-c54f-4066-90b2-490de9f66ec9
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: b8dfbe3e-a477-4140-8142-0735cf2bcd4f
            type: string
        - name: requestId
          required: true
          in: path
          schema:
            example: eb80bcb9-dc15-4f69-81bd-f31e276d923c
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - subscriber
                - program-service
                - service-delivery-rule
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberServiceRequestDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to get the information for subscriber service
        request by Id
      tags:
        - Subscriber Service Request
    patch:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Subscriber
          Program Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251817003/ADDISRV+Subscriber+Service+Request+API+Specifications#PATCH---UPDATE-Subscriber-Service-Request-for-an-Organization
      operationId: SubscriberServiceRequestController_update
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: bf8b100a-c54f-4066-90b2-490de9f66ec9
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: b8dfbe3e-a477-4140-8142-0735cf2bcd4f
            type: string
        - name: requestId
          required: true
          in: path
          schema:
            example: eb80bcb9-dc15-4f69-81bd-f31e276d923c
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to update the Subscriber Service Request for an
        Organization.
      tags:
        - Subscriber Service Request
  /api/organizations/{organizationId}/subscribers/{subscriberId}/service-requests/{requestId}/re-sync:
    post:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Subscriber
          Program Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251817003/ADDISRV+Subscriber+Service+Request+API+Specifications#POST---RESYNC-Subscriber-Service-Requests-for-an-Organization
      operationId: SubscriberServiceRequestController_resync
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: bf8b100a-c54f-4066-90b2-490de9f66ec9
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: b8dfbe3e-a477-4140-8142-0735cf2bcd4f
            type: string
        - name: requestId
          required: true
          in: path
          schema:
            example: eb80bcb9-dc15-4f69-81bd-f31e276d923c
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to resync the Subscriber Service Request for an
        Organization.
      tags:
        - Subscriber Service Request
  /api/organizations/{organizationId}/subscribers/{subscriberId}/service-requests/{requestId}/activate:
    post:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Subscriber
          Program Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251817003/ADDISRV+Subscriber+Service+Request+API+Specifications#POST---ACTIVATE-Subscriber-Service-Requests-for-an-Organization
      operationId: SubscriberServiceRequestController_activate
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: bf8b100a-c54f-4066-90b2-490de9f66ec9
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: b8dfbe3e-a477-4140-8142-0735cf2bcd4f
            type: string
        - name: requestId
          required: true
          in: path
          schema:
            example: eb80bcb9-dc15-4f69-81bd-f31e276d923c
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to activate the Subscriber Service Request for
        an Organization.
      tags:
        - Subscriber Service Request
  /api/organizations/{organizationId}/subscribers/{subscriberId}/service-requests/{requestId}/deactivate:
    post:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Subscriber
          Program Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251817003/ADDISRV+Subscriber+Service+Request+API+Specifications#POST---DEACTIVATE-Subscriber-Service-Requests-for-an-Organization
      operationId: SubscriberServiceRequestController_deactivate
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: bf8b100a-c54f-4066-90b2-490de9f66ec9
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: b8dfbe3e-a477-4140-8142-0735cf2bcd4f
            type: string
        - name: requestId
          required: true
          in: path
          schema:
            example: eb80bcb9-dc15-4f69-81bd-f31e276d923c
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to deactivate the Subscriber Service Request for
        an Organization.
      tags:
        - Subscriber Service Request
  /api/organizations/{organizationId}/program-services:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#POST---ADD-Program-Service-for-an-Organization
      operationId: ProgramServiceController_addProgramService
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddProgramServiceItemsDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ProgramServiceDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        The purpose of this API to add the program service information for an
        Organization.
      tags:
        - Program-Services
    get:
      description: Permissions needed - organizations.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#GET---LIST-Program-Service-for-an-Organization
      operationId: ProgramServiceController_listProgramServices
      parameters:
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: searchTerm
          required: false
          in: query
          description: Searches the text based on the “title”, “code“, “description”
          schema:
            type: string
        - name: locale
          required: false
          in: query
          description: >-
            Retrieves translated text based on the provided locale in the query
            parameter. If the locale is not specified, it defaults to locale set
            while adding program service
          schema:
            enum:
              - en-US
              - de-DE
              - es-US
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - service-delivery-rules
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ProgramServiceDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        The purpose of this API to list all program services for an
        Organization.
      tags:
        - Program-Services
  /api/organizations/{organizationId}/program-services/{serviceId}/translations:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#POST---ADD-TRANSLATION-for-Program-Service-for-an-Organization
      operationId: ProgramServiceController_addProgramServiceTranslation
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddProgramServiceTranslationItemsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to add the program service translation
        information for an Organization based on the locale.
      tags:
        - Program-Services
    patch:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#PATCH---UPDATE-TRANSLATION-for-Program-Service-for-an-Organization
      operationId: ProgramServiceController_updateProgramServiceTranslation
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProgramServiceTranslationDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to update the program service translation
        information for an Organization based on the locale.
      tags:
        - Program-Services
  /api/organizations/{organizationId}/program-services/{serviceId}:
    get:
      description: Permissions needed - organizations.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#GET---GET-Program-Service-By-ID-for-an-Organization
      operationId: ProgramServiceController_getById
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - service-delivery-rules
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProgramServiceDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to get program service by id for an
        Organization.
      tags:
        - Program-Services
    delete:
      description: Permissions needed - organizations.admin
      operationId: ProgramServiceController_deleteProgramService
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to delete the program service for an
        Organization.
      tags:
        - Program-Services
    patch:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#PATCH---UPDATE-Program-Services-for-an-Organization
      operationId: ProgramServiceController_updateProgramService
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to update the program service for an
        Organization.
      tags:
        - Program-Services
  /api/organizations/{organizationId}/program-services/{serviceId}/activate:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#POST---ACTIVATE-Program-Services-for-an-Organization
      operationId: ProgramServiceController_activate
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to activate the program service for an
        Organization.
      tags:
        - Program-Services
  /api/organizations/{organizationId}/program-services/{serviceId}/deactivate:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#POST---DEACTIVATE-Program-Services-for-an-Organization
      operationId: ProgramServiceController_deactivate
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to deactivate the program service for an
        Organization.
      tags:
        - Program-Services
  /api/organizations/{organizationId}/program-services/{serviceId}/preview:
    post:
      description: Permissions needed - organizations.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Program
          Service API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2251391124/ADDISRV+Program+Service+API+Specifications#POST---PREVIEW-Program-Service-for-an-Organization-New
      operationId: ProgramServiceController_previewProgramService
      parameters:
        - name: voiceId
          required: false
          in: query
          schema:
            example: 1180f625-9923-425e-8b52-56c9b9a6b682
            type: string
        - name: locale
          required: false
          in: query
          description: >-
            Retrieves media preview on the provided locale in the query
            parameter. If the locale is not specified, it defaults to locale set
            while adding program service
          schema:
            enum:
              - en-US
              - de-DE
              - es-US
            type: string
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProgramServiceMediaInfoDto'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to preview program service by id for an
        Organization.
      tags:
        - Program-Services
  /api/organizations/{organizationId}/program-services/{serviceId}/delivery-rules:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Service
          Delivery Rules API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2262433989/IN+PROGRESS+ADDISRV+Service+Delivery+Rules+API+Specifications#POST---ADD-Service-Delivery-Rule
      operationId: ServiceDeliveryRuleController_create
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: e77745d5-d81e-4517-9b2e-84961c06d9fd
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            example: 0141ad00-da96-4435-a643-b167d17b98d6
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddServiceDeliveryRuleDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDeliveryRuleDisplayModel'
      security:
        - bearer: []
      summary: >-
        The API is designed to facilitate the addition of service delivery rule
        information
      tags:
        - Service Delivery Rules
    get:
      description: Permissions needed - organizations.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Service
          Delivery Rules API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2262433989/IN+PROGRESS+ADDISRV+Service+Delivery+Rules+API+Specifications#GET---LIST-Service-Delivery-Rules
      operationId: ServiceDeliveryRuleController_list
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: e77745d5-d81e-4517-9b2e-84961c06d9fd
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            example: 0141ad00-da96-4435-a643-b167d17b98d6
            type: string
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: deliveryType
          required: false
          in: query
          schema:
            enum:
              - email
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ServiceDeliveryRuleDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to list the information for service delivery
        rules.
      tags:
        - Service Delivery Rules
  /api/organizations/{organizationId}/program-services/{serviceId}/delivery-rules/{deliveryId}:
    get:
      description: Permissions needed - organizations.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Service
          Delivery Rules API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2262433989/IN+PROGRESS+ADDISRV+Service+Delivery+Rules+API+Specifications#GET---GET-Service-Delivery-Rule-by-ID
      operationId: ServiceDeliveryRuleController_getById
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: e77745d5-d81e-4517-9b2e-84961c06d9fd
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            example: 0141ad00-da96-4435-a643-b167d17b98d6
            type: string
        - name: deliveryId
          required: true
          in: path
          schema:
            example: 176ac581-958a-4505-ab97-293f58d8df7f
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceDeliveryRuleDisplayModel'
      security:
        - bearer: []
      summary: The purpose of this API is to get the service delivery rule information
      tags:
        - Service Delivery Rules
    patch:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Service
          Delivery Rules API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2262433989/IN+PROGRESS+ADDISRV+Service+Delivery+Rules+API+Specifications#PATCH---UPDATE-Service-Delivery-Rule
      operationId: ServiceDeliveryRuleController_update
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: e77745d5-d81e-4517-9b2e-84961c06d9fd
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            example: 0141ad00-da96-4435-a643-b167d17b98d6
            type: string
        - name: deliveryId
          required: true
          in: path
          schema:
            example: 176ac581-958a-4505-ab97-293f58d8df7f
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The API is designed to  to update the service delivery rule information
      tags:
        - Service Delivery Rules
    delete:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - ADDISRV | Service
          Delivery Rules API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2262433989/IN+PROGRESS+ADDISRV+Service+Delivery+Rules+API+Specifications#DELETE---DELETE-Service-Delivery-Rule
      operationId: ServiceDeliveryRuleController_delete
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: e77745d5-d81e-4517-9b2e-84961c06d9fd
            type: string
        - name: serviceId
          required: true
          in: path
          schema:
            example: 0141ad00-da96-4435-a643-b167d17b98d6
            type: string
        - name: deliveryId
          required: true
          in: path
          schema:
            example: 176ac581-958a-4505-ab97-293f58d8df7f
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The API is designed to facilitate the deletion of service delivery rule
        information
      tags:
        - Service Delivery Rules
  /api/ai-prompts/{promptCode}:
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - AI PROMPT | AI
          Prompt API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2630680577/AI+PROMPT+API+Specifications#GET---GET-AI-Prompts-by-code
      operationId: AiPromptController_getByCode
      parameters:
        - name: promptCode
          required: true
          in: path
          schema:
            example: general-chat
            type: string
        - name: subscriberId
          required: false
          in: query
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AiPromptDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to return a system prompt based on the
        provided prompt code, personalized with the users nickname or first
        name.
      tags:
        - AI-Prompts
    patch:
      description: Permissions needed - setup.data.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - AI PROMPT | AI
          Prompt API Specifications
        url: https://ecg.atlassian.net/wiki/x/AQDNn
      operationId: AiPromptController_update
      parameters:
        - name: promptCode
          required: true
          in: path
          schema:
            example: general-chat
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAiPromptDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to update the ai prompt based on the prompt
        code
      tags:
        - AI-Prompts
  /api/ai-prompts:
    post:
      description: Permissions needed - setup.data.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - AI PROMPT | AI
          Prompt API Specifications
        url: https://ecg.atlassian.net/wiki/x/AQDNn
      operationId: AiPromptController_add
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAiPromptDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to add the ai prompt based in the system
      tags:
        - AI-Prompts
  /api/subscribers/{subscriberId}/reward-collections:
    post:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Reward
          Collection API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2946138163/REW+STORY+-+Reward+Collections
      operationId: RewardCollectionController_createRewardCollection
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddRewardCollectionItemsDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/RewardCollectionDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: The purpose of this API is to add a new Reward Collection
      tags:
        - Reward-Collections
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Reward
          Collections
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2946138163/REW+STORY+-+Reward+Collections
      operationId: RewardCollectionController_list
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - reward-category
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: Reward Name'
          schema:
            type: string
        - name: rewardCategoryIds
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
        - name: dateRangeType
          required: false
          in: query
          description: Based on "Claimed At"
          schema:
            default: custom
            enum:
              - custom
              - this-year
              - last-year
              - today
              - this-week
              - last-week
              - this-month
              - last-month
              - this-quarter
              - last-quarter
            type: string
        - name: from
          required: false
          in: query
          schema:
            example: '2026-03-04T17:43:25.200Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            example: '2026-03-04T17:43:25.200Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/RewardCollectionDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: The purpose of this API is to view all Reward Collections
      tags:
        - Reward-Collections
  /api/subscribers/{subscriberId}/reward-collections/{rewardCollectionId}:
    delete:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Reward
          Collection API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2946138163/REW+STORY+-+Reward+Collections
      operationId: RewardCollectionController_deleteById
      parameters:
        - name: rewardCollectionId
          required: true
          in: path
          schema:
            example: 6d15bb20-9ccb-4ecc-8385-287bea2b7249
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API will delete the Reward Collection.
      tags:
        - Reward-Collections
  /api/event-points/{eventId}:
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Event Point
          Mapping API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2934374438/REW+STORY+-+Event+Point+Mapping
      operationId: EventPointMappingController_getById
      parameters:
        - name: eventId
          required: true
          in: path
          schema:
            example: 1502a839-b6fd-4981-bea0-7d443acbafb6
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventPointMappingDisplayModel'
      security:
        - bearer: []
      summary: This API will get the Event Point Mapping details
      tags:
        - Event Point Mappings
  /api/event-points:
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Event Point
          Logs
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2934374438/REW+STORY+-+Event+Point+Mapping
      operationId: EventPointMappingController_list
      parameters:
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: title or code'
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/EventPointMappingDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: The purpose of this API is to view all Event Point Logs
      tags:
        - Event Point Mappings
  /api/reward-categories:
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Reward
          Category
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2934734866/REW+STORY+-+Reward+Categories  
      operationId: RewardCategoryController_list
      parameters:
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: title, code'
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/RewardCategoryDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: The purpose of this API is to view Reward Categories
      tags:
        - Reward Categories
  /api/subscribers/{subscriberId}/event-audits:
    post:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Subscriber
          Event Audit API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2947743758/REW+STORY+-+Subscriber+Event+Audits
      operationId: SubscriberEventAuditController_add
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSubscriberEventAuditItemsDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/SubscriberEventAuditDisplayModel
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: The purpose of this API is to add a new Subscriber Event Audit
      tags:
        - Subscriber Event Audits
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Subscriber
          Event Audit
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2947743758/REW+STORY+-+Subscriber+Event+Audits
      operationId: SubscriberEventAuditController_list
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - event-id
        - name: eventId
          required: false
          in: query
          description: 'Search By: eventIds'
          schema:
            type: string
        - name: dateRangeType
          required: false
          in: query
          schema:
            default: custom
            enum:
              - custom
              - this-year
              - last-year
              - today
              - this-week
              - last-week
              - this-month
              - last-month
              - this-quarter
              - last-quarter
            type: string
        - name: from
          required: false
          in: query
          schema:
            example: '2026-03-04T17:43:25.221Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            example: '2026-03-04T17:43:25.221Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/SubscriberEventAuditDisplayModel
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: The purpose of this API is to view all Subscriber Event Audit Mappings
      tags:
        - Subscriber Event Audits
  /api/subscribers/{subscriberId}/event-audits/{subscriberEventAuditId}:
    delete:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Subscriber
          Event Audit API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2947743758/REW+STORY+-+Subscriber+Event+Audits
      operationId: SubscriberEventAuditController_deleteById
      parameters:
        - name: subscriberEventAuditId
          required: true
          in: path
          schema:
            example: 53a7ed7d-1cff-433d-bf34-f950136beb18
            type: string
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API will delete the Subscriber Event Audit.
      tags:
        - Subscriber Event Audits
  /api/subscribers/{subscriberId}/reward-pools:
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: Visit the confluence story for more information - PART | Reward Pool
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/edit-v2/2946531394?draftShareId=6582a938-0d58-4827-8324-5144e1f41ea2
      operationId: RewardPoolController_list
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: skip
          required: false
          in: query
          description: 'Number of Pages to skip, Default value : 0'
          schema:
            default: 0
            type: number
        - name: take
          required: false
          in: query
          description: 'Number of Records per page, Default value : 10'
          schema:
            default: 10
            type: number
        - name: rewardCategoryIds
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - reward-category
        - name: dateRangeType
          required: false
          in: query
          schema:
            default: custom
            enum:
              - custom
              - this-year
              - last-year
              - today
              - this-week
              - last-week
              - this-month
              - last-month
              - this-quarter
              - last-quarter
            type: string
        - name: from
          required: false
          in: query
          schema:
            example: '2026-03-04T17:43:25.204Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            example: '2026-03-04T17:43:25.204Z'
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: Reward Category title or code'
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/RewardPoolDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: The purpose of this API is to view Reward Pools
      tags:
        - Reward Pools
  /api/subscribers/{subscriberId}/reward-pools/statistics:
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: Visit the confluence story for more information - PART | Reward Pool
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/edit-v2/2946531394?draftShareId=6582a938-0d58-4827-8324-5144e1f41ea2
      operationId: RewardPoolController_statistics
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/RewardPoolStatisticsDisplayModel
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to view Reward Pool Statistics data for a
        given Subscriber.
      tags:
        - Reward Pools
  /api/subscribers/{subscriberId}/custom-attempts:
    post:
      description: Permissions needed - subscribers.phi.admin
      externalDocs:
        description: Visit the confluence story for more information - PART | Reward Pool
        url: https://ecg.atlassian.net/wiki/x/CYB9vQ
      operationId: RewardPoolController_customAttempts
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            example: 964b9dea-26d9-4cbe-89c1-95027b0cc638
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomAttemptItemsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to allow custom attempts to be set for
        individual subscriber against specific Reward Categories.
      tags:
        - Reward Pools
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
  schemas:
    UpdateSubscriberDto:
      type: object
      properties:
        callName:
          type: string
          example: string
        timezoneId:
          type: string
          example: string
        locale:
          type: string
          example: string
        activityDurationStart:
          type: object
          example: '00:00:00'
        activityDurationEnd:
          type: object
          example: '24:00:00'
        contactEmailAddress:
          type: string
          example: string@gmail.com
        twilioVoipNumber:
          type: string
          example: string
        preferredVoiceId:
          type: string
          example: string
        rewardsOptedOut:
          type: boolean
          example: false
          description: When true, disables the reward system for this subscriber.
      required:
        - callName
        - activityDurationStart
        - activityDurationEnd
        - contactEmailAddress
    JsonPatchDocumentDto:
      type: object
      properties:
        value:
          example: new_value
          anyOf:
            - type: string
            - type: 'null'
            - type: number
            - type: boolean
            - type: object
            - type: array
              items:
                anyOf:
                  - type: string
                  - type: number
                  - type: boolean
        path:
          type: string
          example: /path
        op:
          type: string
          example: replace
          enum:
            - replace
            - add
            - remove
      required:
        - value
        - path
        - op
    JsonPatchDocumentItemDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/JsonPatchDocumentDto'
      required:
        - items
    AddActivityDateRangeDto:
      type: object
      properties:
        From:
          type: object
          example: '00:00:00'
        To:
          type: object
          example: '24:00:00'
    AddSubscriberDto:
      type: object
      properties:
        subscriberId:
          type: string
          example: a1e65685-c7d1-41d4-ac07-8fcc008affaa
        organizationId:
          type: string
          example: ad137f60-5ac7-41a6-bda7-40a82199ba7c
        callName:
          type: string
          example: string
        timezoneId:
          type: string
          example: string
        locale:
          type: string
          example: string
        activityDateRange:
          $ref: '#/components/schemas/AddActivityDateRangeDto'
        contactEmailAddress:
          type: string
          example: string@gmail.com
        preferredVoiceId:
          type: string
          example: ee4c1f78-b102-4349-a9d4-37485997a532
      required:
        - subscriberId
        - callName
        - activityDateRange
        - contactEmailAddress
    SubscriberSettingsDto:
      type: object
      properties:
        title:
          type: string
          enum:
            - ChatGPT Version
            - Verification Mode
            - Disable Call Settings
            - Favorite Color
            - Reminder Clock
            - Reminder Sound
            - Subtitle Size Code
            - Was Already In Medication Management
            - Button Label Font Size
            - Voice Audio Level
            - Music Audio Level
            - Effect Audio Level
            - Is Nickname Preferred
            - User Nickname
            - Is Verification Setup Finished
            - Completed UI Introduction
            - FAE Completed
            - Last Opened Screen Name
            - Saved Clothes
            - Reminder Clock Setup
            - Is Face Verification Setup Finished
            - Environment Name
            - Font Size
            - Avatar Name
            - UI Effect Audio Level
            - Selected Decorations
            - Sleep Mode Start Time
            - Sleep Mode End Time
            - Game Audio Level
            - Webcam Device Name
            - User Name Type
            - Wake Word
            - Game Music Audio Level
            - Reward System Start Date
            - Idle Screen Type
        code:
          type: string
          enum:
            - chatGptVersion
            - verificationMode
            - disableCallSettings
            - favoriteColor
            - reminderClock
            - reminderSound
            - subtitleSizeCode
            - wasAlreadyInMedicationManagement
            - buttonLabelFontSize
            - voiceAudioLevel
            - musicAudioLevel
            - effectAudioLevel
            - isNicknamePreferred
            - userNickname
            - IsVerificationSetupFinished
            - completedUIIntroduction
            - faeCompleted
            - lastOpenedScreenName
            - savedClothes
            - reminderClockSetup
            - IsFaceVerificationSetupFinished
            - environmentName
            - fontSize
            - avatarName
            - uiEffectAudioLevel
            - selectedDecorations
            - sleepModeStartTime
            - sleepModeEndTime
            - gameAudioLevel
            - webcamDeviceName
            - userNameType
            - wakeWord
            - gameMusicAudioLevel
            - rewardSystemStartDate
            - idleScreenType
        value:
          example: string
          oneOf:
            - type: string
            - type: array
              items:
                type: string
        date:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.653Z'
        isGlobal:
          type: boolean
          example: false
          default: false
      required:
        - title
        - code
        - value
        - date
    ArchiveInfoDto:
      type: object
      properties:
        archived:
          type: boolean
          example: false
        archivedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.650Z'
      required:
        - archived
        - archivedAt
    AuditInfoDto:
      type: object
      properties:
        createdAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.648Z'
        createdBy:
          type: string
          example: 1d938536-88b1-43a0-aeca-31b418c7748f
        updatedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.649Z'
        updatedBy:
          type: string
          example: e1965167-eec9-490e-bf19-e3e7b6a1e375
      required:
        - createdAt
        - createdBy
        - updatedAt
        - updatedBy
    ActiveInfoDto:
      type: object
      properties:
        active:
          type: boolean
          example: true
        deactivatedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.650Z'
      required:
        - active
        - deactivatedAt
    MediaInfoDto:
      type: object
      properties:
        audioURL:
          type: string
          example: string
        ssmlURL:
          type: string
          example: string
        locale:
          type: string
          example: string
        voiceId:
          type: string
          example: string
      required:
        - audioURL
        - ssmlURL
        - locale
    SubscriberMediaInfoDto:
      type: object
      properties:
        firstName:
          $ref: '#/components/schemas/MediaInfoDto'
        fullName:
          $ref: '#/components/schemas/MediaInfoDto'
        nickName:
          $ref: '#/components/schemas/MediaInfoDto'
    SubscriberDisplayModel:
      type: object
      properties:
        subscriberId:
          type: string
          example: 616d95b0-52ea-4257-a721-4213dd69988c
        organizationId:
          type: string
          example: a81398ff-d78b-4c6d-ba0e-49f033449e22
        callName:
          type: string
          example: string
        timezoneId:
          type: string
          example: string
        locale:
          type: string
          example: string
        activityDurationStart:
          type: string
          example: string
        activityDurationEnd:
          type: string
          example: string
        contactEmailAddress:
          type: string
          example: string@gmail.com
        settings:
          type: array
          items:
            $ref: '#/components/schemas/SubscriberSettingsDto'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        nickName:
          type: string
          example: string
        phoneNumber:
          type: string
          example: string
        dateOfBirth:
          type: string
          example: string
        faceUrl:
          type: string
          example: string
        media:
          $ref: '#/components/schemas/SubscriberMediaInfoDto'
        twilioVoipNumber:
          type: string
          example: string
        rrmsXmitId:
          type: string
          example: string
        preferredVoiceId:
          type: string
          example: 405213ad-533f-48a9-8745-a7db84fbf427
        rewardsOptedOut:
          type: boolean
          example: false
          description: >-
            When true, the reward system is disabled for this subscriber. No new
            points are accumulated.
      required:
        - subscriberId
        - callName
        - activityDurationStart
        - activityDurationEnd
        - contactEmailAddress
        - settings
        - archiveInfo
        - auditInfo
        - activeInfo
        - firstName
        - lastName
        - nickName
        - phoneNumber
        - dateOfBirth
        - faceUrl
    BoolResult:
      type: object
      properties:
        value:
          type: boolean
          example: true
      required:
        - value
    AddColorDto:
      type: object
      properties:
        favoriteColor:
          type: string
          example: string
      required:
        - favoriteColor
    UpdateSubscriberSettingsDto:
      type: object
      properties:
        settingName:
          type: string
          example: favoriteColor
          enum:
            - chatGptVersion
            - verificationMode
            - disableCallSettings
            - favoriteColor
            - reminderClock
            - reminderSound
            - subtitleSizeCode
            - wasAlreadyInMedicationManagement
            - buttonLabelFontSize
            - voiceAudioLevel
            - musicAudioLevel
            - effectAudioLevel
            - isNicknamePreferred
            - userNickname
            - IsVerificationSetupFinished
            - completedUIIntroduction
            - faeCompleted
            - lastOpenedScreenName
            - savedClothes
            - reminderClockSetup
            - IsFaceVerificationSetupFinished
            - environmentName
            - fontSize
            - avatarName
            - uiEffectAudioLevel
            - selectedDecorations
            - sleepModeStartTime
            - sleepModeEndTime
            - gameAudioLevel
            - webcamDeviceName
            - userNameType
            - wakeWord
            - gameMusicAudioLevel
            - rewardSystemStartDate
            - idleScreenType
        settingValue:
          type: string
          example: red
      required:
        - settingName
        - settingValue
    AddSubscriberSettingsDto:
      type: object
      properties:
        code:
          type: string
          example: string
          enum:
            - chatGptVersion
            - verificationMode
            - disableCallSettings
            - favoriteColor
            - reminderClock
            - reminderSound
            - subtitleSizeCode
            - wasAlreadyInMedicationManagement
            - buttonLabelFontSize
            - voiceAudioLevel
            - musicAudioLevel
            - effectAudioLevel
            - isNicknamePreferred
            - userNickname
            - IsVerificationSetupFinished
            - completedUIIntroduction
            - faeCompleted
            - lastOpenedScreenName
            - savedClothes
            - reminderClockSetup
            - IsFaceVerificationSetupFinished
            - environmentName
            - fontSize
            - avatarName
            - uiEffectAudioLevel
            - selectedDecorations
            - sleepModeStartTime
            - sleepModeEndTime
            - gameAudioLevel
            - webcamDeviceName
            - userNameType
            - wakeWord
            - gameMusicAudioLevel
            - rewardSystemStartDate
            - idleScreenType
        value:
          type: string
          example: string
      required:
        - code
        - value
    AddPersonalInfoDto:
      type: object
      properties:
        value:
          type: string
          example: string
      required:
        - value
    SubscriberPersonalInfoDto:
      type: object
      properties:
        value:
          type: string
          example: string
      required:
        - value
    Urls:
      type: object
      properties:
        audioUrl:
          type: string
        ssmlUrl:
          type: string
        voiceId:
          type: string
      required:
        - audioUrl
        - ssmlUrl
    GetPollyFilesUrlDto:
      type: object
      properties:
        firstName:
          $ref: '#/components/schemas/Urls'
        fullName:
          $ref: '#/components/schemas/Urls'
        nickName:
          $ref: '#/components/schemas/Urls'
      required:
        - firstName
        - fullName
        - nickName
    SubscriberVerificationModeDto:
      type: object
      properties:
        mode:
          type: string
          default: face-recognition
          enum:
            - face-recognition
            - pin-code
      required:
        - mode
    SubscriberDisableCallSettingsDto:
      type: object
      properties:
        value:
          type: string
          enum:
            - 'true'
            - 'false'
      required:
        - value
    AddSubscriberConsoleDto:
      type: object
      properties:
        hardwareIdentifier:
          type: string
          example: 827944a4-d36a-4ddb-9944-f687b7fd60f2
        deviceLabel:
          type: string
          example: string
      required:
        - hardwareIdentifier
        - deviceLabel
    SubscriberConsoleDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: cdecb46d-0471-4533-85af-b011d268c4cb
        subscriberId:
          type: string
          example: a20ac6ed-511e-4201-ac55-21a73bd5a307
        hardwareIdentifier:
          type: string
          example: 6a191341-c3bc-4591-8855-660c8eb3b5cf
        deviceLabel:
          type: string
          example: string
        provisionedAt:
          format: date-time
          type: string
          example: timestamp without time zone
        provisionedBy:
          type: string
          example: string
        paired:
          type: boolean
          example: boolean
        pairedAt:
          format: date-time
          type: string
          example: timestamp without time zone
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - subscriberId
        - deviceLabel
        - provisionedAt
        - provisionedBy
        - paired
        - archiveInfo
        - auditInfo
        - activeInfo
    ConsoleHeartbeatsDisplayModel:
      type: object
      properties:
        hardwareIdentifier:
          type: string
          example: 122c8eff-f388-4370-ae10-db276941aafb
        createdAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.854Z'
      required:
        - hardwareIdentifier
        - createdAt
    HeartbeatsDisplayModel:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ConsoleHeartbeatsDisplayModel'
        totalPages:
          type: number
          example: 0
        totalRecords:
          type: number
          example: 0
        recordsPerPage:
          type: number
          example: 0
        currentPageNumber:
          type: number
          example: 0
      required:
        - items
        - totalPages
        - totalRecords
        - recordsPerPage
        - currentPageNumber
    DateRangeModel:
      type: object
      properties:
        from:
          format: date-time
          type: string
        to:
          format: date-time
          type: string
      required:
        - from
        - to
    ListConsoleHeartbeatsDisplayModel:
      type: object
      properties:
        dateRange:
          $ref: '#/components/schemas/DateRangeModel'
        heartbeats:
          $ref: '#/components/schemas/HeartbeatsDisplayModel'
      required:
        - dateRange
        - heartbeats
    VerifyAccessCodeDto:
      type: object
      properties:
        accessCode:
          type: string
          example: '000000'
      required:
        - accessCode
    AddUserInteractionDto:
      type: object
      properties:
        subscriberId:
          type: string
          example: f895c627-06bd-4a34-8c7c-33997bb3f96e
        hardwareIdentifier:
          type: string
          example: ed498be0-a16c-47d8-ba1a-f4f46cad1baf
        action:
          type: string
          enum:
            - button.click
            - voice.command
        actionTarget:
          type: string
          enum:
            - login-button
            - login-command
        voiceCommandFile:
          type: string
          example: string
        actionAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.091Z'
      required:
        - subscriberId
        - hardwareIdentifier
        - action
        - actionTarget
    UserInteractionDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 30417df0-a894-4ede-8734-fdf2946c9eb5
        subscriberId:
          type: string
          example: c1da746b-7adc-428c-98ea-97323dd524f6
        hardwareIdentifier:
          type: string
          example: 189fb272-0177-44ed-901a-73f8a6ee6b5b
        action:
          type: string
          example: string
        actionTarget:
          type: string
          example: string
        voiceCommandFile:
          type: string
          example: string
        actionAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.091Z'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - subscriberId
        - action
        - archiveInfo
        - auditInfo
        - activeInfo
    BiometricsFaceImageDto:
      type: object
      properties:
        faceData:
          type: string
          example: string
      required:
        - faceData
    DetectionTestDisplayModel:
      type: object
      properties:
        biometricId:
          type: string
          example: 848122d2-a9cb-41b2-ac4e-b92686fd9a08
      required:
        - biometricId
    UserSettingsSeedModel:
      type: object
      properties:
        title:
          type: string
          example: string
          enum:
            - ChatGPT Version
            - Verification Mode
            - Disable Call Settings
            - Favorite Color
            - Reminder Clock
            - Reminder Sound
            - Subtitle Size Code
            - Was Already In Medication Management
            - Button Label Font Size
            - Voice Audio Level
            - Music Audio Level
            - Effect Audio Level
            - Is Nickname Preferred
            - User Nickname
            - Is Verification Setup Finished
            - Completed UI Introduction
            - FAE Completed
            - Last Opened Screen Name
            - Saved Clothes
            - Reminder Clock Setup
            - Is Face Verification Setup Finished
            - Environment Name
            - Font Size
            - Avatar Name
            - UI Effect Audio Level
            - Selected Decorations
            - Sleep Mode Start Time
            - Sleep Mode End Time
            - Game Audio Level
            - Webcam Device Name
            - User Name Type
            - Wake Word
            - Game Music Audio Level
            - Reward System Start Date
            - Idle Screen Type
        code:
          type: string
          example: string
          enum:
            - chatGptVersion
            - verificationMode
            - disableCallSettings
            - favoriteColor
            - reminderClock
            - reminderSound
            - subtitleSizeCode
            - wasAlreadyInMedicationManagement
            - buttonLabelFontSize
            - voiceAudioLevel
            - musicAudioLevel
            - effectAudioLevel
            - isNicknamePreferred
            - userNickname
            - IsVerificationSetupFinished
            - completedUIIntroduction
            - faeCompleted
            - lastOpenedScreenName
            - savedClothes
            - reminderClockSetup
            - IsFaceVerificationSetupFinished
            - environmentName
            - fontSize
            - avatarName
            - uiEffectAudioLevel
            - selectedDecorations
            - sleepModeStartTime
            - sleepModeEndTime
            - gameAudioLevel
            - webcamDeviceName
            - userNameType
            - wakeWord
            - gameMusicAudioLevel
            - rewardSystemStartDate
            - idleScreenType
        allowedValues:
          type: array
          items:
            type: string
        default:
          anyOf:
            - type: string
            - type: 'null'
            - type: number
            - type: boolean
        category:
          type: string
          example: interface
          enum:
            - user-identification
            - interface
            - sound
            - setup
        valueType:
          type: string
          example: enum
          enum:
            - text
            - time
            - enum
            - scale
            - boolean
            - date
            - array
      required:
        - title
        - code
        - category
        - valueType
    HardwareIdentifierSeedModel:
      type: object
      properties:
        name:
          type: string
          example: name
        email:
          type: string
          example: string@gmail.com
        hardwareIdentifier:
          type: string
          example: ec27263f-548f-480a-a4af-417e00522b04
      required:
        - name
        - email
        - hardwareIdentifier
    WeatherNodeDisplayModel:
      type: object
      properties:
        id:
          type: number
          description: Weather condition id
          example: 100
        main:
          type: string
          description: Group of weather parameters (Rain, Snow, Extreme etc.)
          example: Clouds
        description:
          type: string
          description: Weather condition within the group.
          example: overcast clouds
        icon:
          type: string
          description: Weather icon id
          example: 04n
      required:
        - id
        - main
        - description
        - icon
    TemperatureDisplayModel:
      type: object
      properties:
        forecastedAt:
          type: string
          description: Time of data forecasted, UTC
          example: '2026-03-04T17:43:25.015Z'
        temperature:
          type: number
          description: Temperature
          example: 289.16
        minTemp:
          type: number
          description: Minimum temperature at the moment of calculation.
          example: 289.16
        maxTemp:
          type: number
          description: Maximum temperature at the moment of calculation.
          example: 289.16
        pressure:
          type: number
          description: Atmospheric pressure on the sea level by default, hPa
          example: 1013
        humidity:
          type: number
          description: Humidity, %
          example: 78
      required:
        - forecastedAt
        - temperature
        - minTemp
        - maxTemp
        - pressure
        - humidity
    WeatherForecastDisplayModel:
      type: object
      properties:
        city:
          type: string
          description: City name
          example: London
        country:
          type: string
          description: Country code
          example: GB
        timezone:
          type: number
          description: Shift in seconds from UTC
          example: 0
        sunrise:
          type: string
          description: Sunrise time, UTC
          example: '2026-03-04T17:43:25.015Z'
        sunset:
          type: string
          description: Sunset time, UTC
          example: '2026-03-04T17:43:25.015Z'
        weather:
          type: array
          items:
            $ref: '#/components/schemas/WeatherNodeDisplayModel'
        data:
          $ref: '#/components/schemas/TemperatureDisplayModel'
      required:
        - city
        - country
        - timezone
        - sunrise
        - sunset
        - weather
        - data
    LoginMobileDtoModel:
      type: object
      properties:
        userName:
          type: string
          example: xyz@company.com
      required:
        - userName
    SubscriberTouDisplayModel:
      type: object
      properties:
        acceptedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.059Z'
        subscriber:
          $ref: '#/components/schemas/SubscriberDisplayModel'
      required:
        - acceptedAt
        - subscriber
    SubscriberPinCodeDto:
      type: object
      properties:
        code:
          type: string
          example: '0000'
      required:
        - code
    AddSoftwareVersionDto:
      type: object
      properties:
        versionNumber:
          type: string
          example: v1.1
        downloadLocation:
          type: string
          example: https://something.com/v1.1
        availableAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.024Z'
        releaseNotes:
          type: string
          example: contains HTML or Markdown of release notes
      required:
        - versionNumber
        - downloadLocation
        - availableAt
    SoftwareVersionDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: d8574544-c057-43eb-ba19-8dca6fc7ec8c
        versionNumber:
          type: string
          example: v1.1
        downloadLocation:
          type: string
          example: https://something.com/v1.1
        availableAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.025Z'
        releaseNotes:
          type: string
          example: contains HTML or Markdown of release notes
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - versionNumber
        - downloadLocation
        - availableAt
        - auditInfo
        - activeInfo
    UserCredentialDisplayModel:
      type: object
      properties:
        username:
          type: string
          example: f83bbc09-ac62-4bcb-bb8d-e2359d39511c
        passwordReference:
          type: string
          example: string
        secretsManagerArn:
          type: string
          example: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - username
        - passwordReference
        - secretsManagerArn
        - auditInfo
    AddCallLogDto:
      type: object
      properties:
        callDuration:
          type: string
          example: '12:00:00'
        dialedNumber:
          type: string
          example: '987654321'
        timeOfCall:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.810Z'
        transcript:
          type: string
          example: string
      required:
        - callDuration
        - dialedNumber
        - timeOfCall
    CallLogDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 91437d77-b6ca-4ed4-a8e4-f25e598beb7e
        subscriber:
          type: string
          example: 19e287a1-2e93-49eb-b020-92bc01b7b985
        callDuration:
          type: string
          example: '12:00:00'
        dialedNumber:
          type: string
          example: '987654321'
        timeOfCall:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.810Z'
        transcript:
          type: string
          example: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - subscriber
        - callDuration
        - dialedNumber
        - timeOfCall
        - auditInfo
    DeviceKeyDisplayModel:
      type: object
      properties:
        deviceKey:
          type: string
          example: 8a12362c-572b-4347-b370-a76a96114685
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - deviceKey
        - auditInfo
    AddHelpCallLogDto:
      type: object
      properties:
        organizationId:
          type: string
          example: 82a38ecc-be43-413e-be3f-cf9f7263ee61
        hardwareIdentifier:
          type: string
          example: 52a8d442-32bc-4031-aa6b-5effcdef311c
        recordedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.965Z'
      required:
        - hardwareIdentifier
        - recordedAt
    RrmsApiResponseDto:
      type: object
      properties:
        ErrorNum:
          type: number
          example: 1
        ErrorMessage:
          type: string
          example: some error message
      required:
        - ErrorNum
    HelpCallLogDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 2b850f53-5780-4587-b3c2-cc3ce34d72fd
        subscriberId:
          type: string
          example: be59736e-e549-4d9b-9b4a-78d114561c38
        organizationId:
          type: string
          example: b21e5178-c2a9-488f-89a0-e5e687378cd7
        hardwareId:
          type: string
          example: 9d040104-5af8-4c66-bba7-201e9a9a2eaf
        createdAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.965Z'
        createdBy:
          type: string
          example: e8db463f-c317-484c-b92e-8b81d5978bb6
        rrmsRegion:
          type: string
          example: string
        rrmsResponse:
          $ref: '#/components/schemas/RrmsApiResponseDto'
        recordedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:24.965Z'
      required:
        - id
        - subscriberId
        - hardwareId
        - createdAt
        - recordedAt
    RrmsRegionDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: b41602ba-e693-494d-b6ee-55d17eadd69c
        name:
          type: string
          example: string
          description: Contains the region name
        code:
          type: string
          example: string
          description: Contains the region code
        healthy:
          type: boolean
          example: true
          description: >-
            A field that identifies the health status: true - healthy and false
            - unhealthy
        primary:
          type: boolean
          example: true
          description: >-
            A field that identifies the primary designation: true - is
            designated as a primary and false - is not a primary
      required:
        - id
        - name
        - code
        - healthy
        - primary
    ListRrmsHeartbeatActivityDto:
      type: object
      properties:
        date:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.004Z'
        regionCode:
          type: string
          enum:
            - east
            - west
          description: Contains the region code
        success:
          type: boolean
          example: true
        errorMessage:
          type: string
          example: some error message
      required:
        - date
        - regionCode
        - success
    UpdateVoiceProfileDto:
      type: object
      properties:
        language:
          type: string
          example: English, US
        pollyVoice:
          type: string
          example: Salli
        description:
          type: string
          example: description
        gender:
          type: string
          enum:
            - male
            - female
        locale:
          type: string
          enum:
            - en-US
            - de-DE
            - es-US
        ssmlTag:
          type: string
          example: >-
            <speak><prosody rate='+10%'
            pitch='+15%'>INSERT_TEXT_HERE</prosody></speak>
        isDefault:
          type: boolean
          example: false
      required:
        - language
        - pollyVoice
        - gender
        - locale
    AddVoiceProfileDto:
      type: object
      properties:
        name:
          type: string
          example: Ashton
          description: Addison Avatar name should be unique
        language:
          type: string
          example: English, US
        pollyVoice:
          type: string
          example: Salli
        description:
          type: string
          example: description
        gender:
          type: string
          enum:
            - male
            - female
        locale:
          type: string
          enum:
            - en-US
            - de-DE
            - es-US
        ssmlTag:
          type: string
          example: >-
            <speak><prosody rate='+10%'
            pitch='+15%'>INSERT_TEXT_HERE</prosody></speak>
        isDefault:
          type: boolean
          example: false
      required:
        - name
        - language
        - pollyVoice
        - gender
        - locale
    VoiceProfileDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 5c149b0a-169f-45dc-9789-e7ac78cc1024
        name:
          type: string
          example: Ashton
        language:
          type: string
          example: English, US
        pollyVoice:
          type: string
          example: Salli
        description:
          type: string
          example: description
        gender:
          type: string
          enum:
            - male
            - female
        locale:
          type: string
          enum:
            - en-US
            - de-DE
            - es-US
        ssmlTag:
          type: string
          example: >-
            <speak><prosody rate='+10%'
            pitch='+15%'>INSERT_TEXT_HERE</prosody></speak>
        isDefault:
          type: boolean
          example: false
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - name
        - language
        - pollyVoice
        - gender
        - locale
        - auditInfo
        - activeInfo
    AddOrganizationServiceSettingDto:
      type: object
      properties:
        status:
          type: string
          default: disabled
          description: |2-

                  status: enabled indicates "enabled",
                  status: disabled indicates "disabled"
                  
      required:
        - status
    OrganizationServiceSettingDisplayModel:
      type: object
      properties:
        status:
          type: string
          enum:
            - enabled
            - disabled
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - status
        - auditInfo
    MessageDeliveryInfoDto:
      type: object
      properties:
        deliveryType:
          type: string
          example: c8cd484f-fce2-447e-ba8e-638c35fa7a94
        messageDeliveryId:
          type: string
          example: 02b20c82-6f82-4eae-abf8-46313106862a
          description: id of message devlivery from quick send API
        deliveryRuleId:
          type: string
          example: 21317952-b004-4974-8427-6575eee61cb4
          description: id of service delivery rule
    SubscriberServiceRequestDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 7ea1c885-e1ff-4eb4-9a71-d9772f397bc4
        subscriber:
          oneOf:
            - $ref: '#/components/schemas/SubscriberInfoDisplayModel'
            - type: string
        organizationId:
          type: string
          example: c77970bd-3337-40ac-8a04-a6c2c3fe469a
        programService:
          oneOf:
            - $ref: '#/components/schemas/ProgramServiceDisplayModel'
            - type: string
        status:
          type: string
          enum:
            - new
            - in-progress
            - completed
            - canceled
        notes:
          type: string
          example: string
        serviceRequestDate:
          type: string
          example: '2026-03-04T17:43:25.048Z'
        serviceCompletedDate:
          type: string
          example: '2026-03-04T17:43:25.048Z'
        messageDeliveryInfo:
          type: array
          items:
            $ref: '#/components/schemas/MessageDeliveryInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - subscriber
        - organizationId
        - programService
        - status
        - activeInfo
        - auditInfo
    SubscriberInfoDisplayModel:
      type: object
      properties:
        subscriberId:
          type: string
          example: 95ed1642-64e7-4112-b1cf-a004175d820b
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
      required:
        - subscriberId
        - firstName
        - lastName
    AddSubscriberServiceRequestDto:
      type: object
      properties:
        serviceId:
          type: string
          example: 94b4e739-a626-4a4a-8c35-5aa862072e3f
        notes:
          type: string
          example: string
        serviceRequestDate:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.047Z'
      required:
        - serviceId
    ProgramServiceMediaInfoDto:
      type: object
      properties:
        locale:
          type: string
          enum:
            - en-US
            - de-DE
            - es-US
        audioUrl:
          type: string
          example: string
        ssmlUrl:
          type: string
          example: string
        voiceId:
          type: string
          example: string
      required:
        - locale
        - audioUrl
        - ssmlUrl
    ProgramServiceDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 2a6674ed-0050-40a3-baba-f775fbb05a94
        organizationId:
          type: string
          example: 87d7c13b-d012-49ad-ba9e-0fb114d3047f
        title:
          type: string
          example: title
        description:
          type: string
          example: description
        code:
          type: string
          example: code
        locale:
          type: string
          enum:
            - en-US
            - de-DE
            - es-US
          default: en-US
        media:
          type: array
          items:
            $ref: '#/components/schemas/ProgramServiceMediaInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        serviceDeliveryRules:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/ServiceDeliveryRuleDisplayModel'
      required:
        - id
        - organizationId
        - title
        - code
        - locale
        - auditInfo
        - activeInfo
    AddProgramServiceDto:
      type: object
      properties:
        title:
          type: string
          example: title
        description:
          type: string
          example: description
        code:
          type: string
          example: code
        locale:
          type: string
          enum:
            - en-US
            - de-DE
            - es-US
          default: en-US
      required:
        - title
        - code
    AddProgramServiceItemsDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AddProgramServiceDto'
      required:
        - items
    ProgramServiceTranslationDto:
      type: object
      properties:
        title:
          type: string
          example: title
        description:
          type: string
          example: description
        locale:
          type: string
          enum:
            - en-US
            - de-DE
            - es-US
          default: en-US
      required:
        - title
        - locale
    AddProgramServiceTranslationItemsDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ProgramServiceTranslationDto'
      required:
        - items
    EmailBodyDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - text/plain
            - text/html
        value:
          type: string
          example: string
    EmailDto:
      type: object
      properties:
        email:
          type: string
          example: string
        name:
          type: string
          example: string
      required:
        - email
    EmailSettingRecipientsDto:
      type: object
      properties:
        to:
          type: array
          items:
            $ref: '#/components/schemas/EmailDto'
        cc:
          type: array
          items:
            $ref: '#/components/schemas/EmailDto'
        bcc:
          type: array
          items:
            $ref: '#/components/schemas/EmailDto'
      required:
        - to
    EmailSettingDto:
      type: object
      properties:
        subject:
          type: string
          example: string
        preHeader:
          type: string
          example: string
        body:
          $ref: '#/components/schemas/EmailBodyDto'
        recipients:
          $ref: '#/components/schemas/EmailSettingRecipientsDto'
      required:
        - recipients
    ServiceDeliveryRuleDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: cfc8df52-b9f1-4709-bc7a-22dae8b66c86
        serviceId:
          type: string
          example: 39612645-df1d-42a9-b793-acc3a924421d
        deliveryType:
          type: string
          enum:
            - email
        emailSetting:
          $ref: '#/components/schemas/EmailSettingDto'
        smsSetting:
          type: object
          description: for V2 version not to be implemented yet
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - serviceId
        - deliveryType
        - auditInfo
    AddServiceDeliveryRuleDto:
      type: object
      properties:
        deliveryType:
          type: string
          enum:
            - email
        emailSetting:
          $ref: '#/components/schemas/EmailSettingDto'
      required:
        - deliveryType
        - emailSetting
    AiPromptDisplayModel:
      type: object
      properties:
        value:
          type: string
          example: string
          description: Will be removed once confirmed, for backward compatibility
        id:
          type: string
          example: 2fe67be5-4d48-4e5f-a3ec-00edc44f0fca
        promptCode:
          type: string
          example: general-chat
        promptText:
          type: string
          example: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - value
        - id
        - promptCode
        - promptText
        - auditInfo
    AddAiPromptDto:
      type: object
      properties:
        promptCode:
          type: string
          example: general-chat
        promptText:
          type: string
          example: string
      required:
        - promptCode
        - promptText
    UpdateAiPromptDto:
      type: object
      properties:
        promptText:
          type: string
          example: string
      required:
        - promptText
    RewardCollectionDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 5ec6b793-ed08-442b-96a7-e5cefb4df414
        subscriberId:
          type: string
          example: 4c3b833f-6760-4d66-91fa-502d0faae734
        rewardName:
          type: string
          example: string
        claimedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.196Z'
        rewardCategory:
          oneOf:
            - $ref: '#/components/schemas/RewardCategoryDisplayModel'
            - type: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - subscriberId
        - rewardName
        - auditInfo
    AddRewardCollectionDto:
      type: object
      properties:
        claimedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.198Z'
        rewardCategoryId:
          type: string
          example: d2a86692-3d84-4317-8e5e-3380b1841f09
        rewardName:
          type: string
          example: string
      required:
        - rewardCategoryId
    AddRewardCollectionItemsDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AddRewardCollectionDto'
      required:
        - items
    EventPointMappingDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: f1194636-f444-45b0-a3be-8aabab6daca1
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        points:
          type: number
          example: 40
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - name
        - code
        - points
        - auditInfo
    RewardCategoryDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: be4eb2fc-db35-4764-8204-c4f79eb01bed
        title:
          type: string
          example: string
        code:
          type: string
          example: string
        unlockPoints:
          type: number
          example: 200
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        locale:
          type: string
          enum:
            - en-US
            - de-DE
            - es-US
      required:
        - id
        - title
        - code
        - unlockPoints
        - auditInfo
    SubscriberEventAuditDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 8badbf81-ef51-45ad-891d-6f69659c7a7e
        subscriberId:
          type: string
          example: 2bd87950-22d9-4db7-896b-f91885cad742
        eventId:
          oneOf:
            - $ref: '#/components/schemas/EventPointMappingDisplayModel'
            - type: string
        earnedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.216Z'
      required:
        - id
        - subscriberId
    AddSubscriberEventAuditDto:
      type: object
      properties:
        eventId:
          type: string
          example: ac37ce05-88e4-44bb-929b-e85fbca99701
        earnedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:43:25.219Z'
      required:
        - eventId
        - earnedAt
    AddSubscriberEventAuditItemsDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AddSubscriberEventAuditDto'
      required:
        - items
    AttemptMetadataDto:
      type: object
      properties: {}
    RewardPoolDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: e411b379-5492-4839-81c8-4099e7f88552
        subscriberId:
          type: string
          example: 92af5400-001b-43ae-9ea1-b53452e68365
        rewardCategory:
          oneOf:
            - $ref: '#/components/schemas/RewardCategoryDisplayModel'
            - type: string
        attempts:
          type: number
          example: 2
        attemptMetadata:
          example:
            attempts: 3
            customAttempts: 2
          allOf:
            - $ref: '#/components/schemas/AttemptMetadataDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - subscriberId
        - attempts
        - auditInfo
    RewardPoolStatisticsDisplayModel:
      type: object
      properties:
        rewardCategory:
          $ref: '#/components/schemas/RewardCategoryDisplayModel'
        attempts:
          type: number
          example: 2
        claimedRewards:
          type: number
          example: 2
      required:
        - attempts
        - claimedRewards
    CustomAttemptDto:
      type: object
      properties:
        rewardCategoryId:
          type: string
          example: 54363da2-fc5d-4bd7-b386-512e9655ad4b
        attempts:
          type: number
          example: 2
      required:
        - rewardCategoryId
        - attempts
    CreateCustomAttemptItemsDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/CustomAttemptDto'
      required:
        - items
